2014年計(jì)算機(jī)二級(jí)C單選密押試題及答案

字號(hào):

為大家收集整理了《2014年計(jì)算機(jī)二級(jí)C單選密押試題及答案》供大家參考,希望對(duì)大家有所幫助!?。?BR>    一 單項(xiàng)選擇題
    1.以下程序的輸出結(jié)果是( C )。
    int d=1;
    fun(int p)
    {static int d=5;
    d+=p;
    printf("%d ",D);
    return(D);
    }
    main( )
    { int a=3; printf("%d\n",fun(a+fun(D)));}
    A) 6 9 9
    B) 6 6 9
    C) 6 15 15
    D) 6 6 15
    2.下列程序執(zhí)行后的輸出結(jié)果是( C )。
    void func1(int i);
    void func2(int i);
    char st[ ]="hello,friend!";
    void func1(int i)
    {printf("%c", st[i]);
    if(i<3){i+=2;func2(i);}
    }
    void func2(int i)
    {printf("%c", st[i]);
    if(i<3){i+=2;func1(i);}
    }
    main()
    {int i=0; func1(i); printf("\n");}
    A) hello
    B) hel
    C) hlo
    D) hlm
    3.在調(diào)用函數(shù)時(shí),如果實(shí)參是簡(jiǎn)單變量,它與對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是( B )。
    A) 地址傳遞
    B) 單向值傳遞
    C) 由實(shí)參傳給形參,再由形參傳回實(shí)參
    D) 傳遞方式由用戶指定
    4.以下函數(shù)值的類型是( A )。
    fun( float x )
    {float y;
    y=3*x-4;
    return y;
    }
    A) int
    B) 不確定
    C) void
    D) float
    5.設(shè)有以下函數(shù):
    f( int a)
    {int b=0;
    static int c=3;
    b++; c++;
    return(a+b+C);
    }
    如果在下面的程序中調(diào)用該函數(shù),則輸出結(jié)果是( A )。
    main()
    {int a=2, i;
    for(i=0;i<3;i++) printf("%d\n", f(a));
    }
    A) 7
    B) 7
    C) 7
    D) 7
    8 9 10 7
    9 11 13 7
    6.以下程序的輸出結(jié)果是( B )。
    int a, b;
    void fun()
    {a=100; b=200;}
    main()
    {int a=5, b=7;
    fun();
    printf("%d%d\n", a,
    B);
    }
    A) 100200
    B) 57
    C) 200100
    D) 75
    7.以下所列的各函數(shù)首部中,正確的是( C )。
    A) void play(var a:Integer, var b:Integer)
    B) void play(int a, B)
    C) void play(int a, int B)
    D) Sub play(a as integer, b as integer)
    8.以下程序的輸出結(jié)果是( C )。
    fun(int x, int y, int z)
    {z=x*x+y*y; }
    main()
    {int a=31;
    fun(5, 2, a);
    printf("%d", a);
    }
    A) 0
    B) 29
    C) 31
    D) 無定值}
    9.當(dāng)調(diào)用函數(shù)時(shí),實(shí)參是一個(gè)數(shù)組名,則實(shí)參向形參傳遞的是( B )。
    A) 數(shù)組的長(zhǎng)度
    B) 數(shù)組的首地址
    C) 數(shù)組每一個(gè)元素的地址
    D) 數(shù)組每個(gè)元素中的值
    10.以下程序的輸出結(jié)果是( A )。
    long fun( int n)
    {long s;
    if(n= =1 || n= =2) s=2;
    else s=n-fun(n-1);
    return s;
    }
    main()
    {printf("%ld\n", fun(3)); }
    A) 1
    B) 2
    C) 3
    D) 4
    11.有如下函數(shù)調(diào)用語句:
    func(rec1, rec2+rec3, (rec4, rec5));
    在該函數(shù)調(diào)用語句中,含有的實(shí)參個(gè)數(shù)是( A )。
    A) 3
    B) 4
    C) 5
    D) 有語法錯(cuò)
    12.有如下程序:
    int func(int a,int B)
    {return(a+B);}
    main( )
    {int x=2,y=5,z=8,r;
    r=func(func(x,y),z);
    printf(“%d\n”,r);
    }
    該程序的輸出的結(jié)果是( D )。
    A) 12
    B) 13
    C) 14
    D) 15
    13.以下程序的輸出結(jié)果是( B )。
    long fib(int n)
    {if(n>2) return(fib(n-1)+fib(n-2));
    else return(2);
    }
    main( )
    {printf(“%ld\n”,fib(3));}
    A) 2
    B) 4
    C) 6
    D) 8
    14.在C語言中,變量的隱含存儲(chǔ)類別是( A )。
    A) auto
    B) static
    C) extern
    D) 無存儲(chǔ)類別
    15.在下列的函數(shù)調(diào)用中,不正確的是( D )。
    A) max(a,B);
    B) max(3,a+B);
    C) max(3,5);
    D) int max(a,B);
    16.以下程序的輸出結(jié)果是( C )。
    func(int x, int y)
    {int z;
    z=x+y;
    return z;
    }
    main( )
    {int a=10, b=20, c=30, s;
    s=func((a--, b++, a+B), c--);
    printf(“%d\n”, s);
    }
    A) 30
    B) 40
    C) 60
    D) 50
    17.現(xiàn)有以下程序:
    #include
    inverse(char str[ ])
    {char t;
    int i, j;
    for(i=0, j=strlen(str); i
    {t=str[i];
    str[i]=str[j-1];
    str[j-1]=t;
    }
    }
    main( )
    {char str[100];
    scanf(“%s”, str);
    inverse(str);
    printf(“%s\n”, str);
    }
    如果輸入an anple,該程序的輸出結(jié)果是( D )。
    A) an anple
    B) elpna na
    C) an
    D) na
    18.在下列敘述中,正確的一條是( A )。
    A) puts和gets函數(shù)只能輸入或輸出一個(gè)字符串
    B) 在C語言中,函數(shù)可以遞歸調(diào)用或遞歸定義
    C) 用scanf函數(shù)輸入數(shù)據(jù)時(shí)可以規(guī)定精度,例如scanf(“%7.2f”,&a);
    D) 外部變量只限于本文件中使用
    19.以下程序的輸出結(jié)果是( C )。
    power(int x, int n)
    {int p;
    if(n>0) p=power(x, n-1)*x;
    else p=1;
    return (p);
    }
    main( )
    {int x=2, n=3;
    printf(“%d\n”, power(x, n));
    }
    A) 5
    B) 6
    C) 8
    D) 9
    20.在C語言的函數(shù)中( C )。
    A) 必須有形參
    B) 形參必須是變量名
    C) 可以有也可以沒有形參
    D) 數(shù)組名不能作形參
    一 單項(xiàng)選擇題
    1.以下程序的輸出結(jié)果是( C )。
    int d=1;
    fun(int p)
    {static int d=5;
    d+=p;
    printf("%d ",D);
    return(D);
    }
    main( )
    { int a=3; printf("%d\n",fun(a+fun(D)));}
    A) 6 9 9
    B) 6 6 9
    C) 6 15 15
    D) 6 6 15
    2.下列程序執(zhí)行后的輸出結(jié)果是( C )。
    void func1(int i);
    void func2(int i);
    char st[ ]="hello,friend!";
    void func1(int i)
    {printf("%c", st[i]);
    if(i<3){i+=2;func2(i);}
    }
    void func2(int i)
    {printf("%c", st[i]);
    if(i<3){i+=2;func1(i);}
    }
    main()
    {int i=0; func1(i); printf("\n");}
    A) hello
    B) hel
    C) hlo
    D) hlm
    3.在調(diào)用函數(shù)時(shí),如果實(shí)參是簡(jiǎn)單變量,它與對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是( B )。
    A) 地址傳遞
    B) 單向值傳遞
    C) 由實(shí)參傳給形參,再由形參傳回實(shí)參
    D) 傳遞方式由用戶指定
    4.以下函數(shù)值的類型是( A )。
    fun( float x )
    {float y;
    y=3*x-4;
    return y;
    }
    A) int
    B) 不確定
    C) void
    D) float
    5.設(shè)有以下函數(shù):
    f( int a)
    {int b=0;
    static int c=3;
    b++; c++;
    return(a+b+C);
    }
    如果在下面的程序中調(diào)用該函數(shù),則輸出結(jié)果是( A )。
    main()
    {int a=2, i;
    for(i=0;i<3;i++) printf("%d\n", f(a));
    }
    A) 7
    B) 7
    C) 7
    D) 7
    8 9 10 7
    9 11 13 7
    6.以下程序的輸出結(jié)果是( B )。
    int a, b;
    void fun()
    {a=100; b=200;}
    main()
    {int a=5, b=7;
    fun();
    printf("%d%d\n", a,
    B);
    }
    A) 100200
    B) 57
    C) 200100
    D) 75
    7.以下所列的各函數(shù)首部中,正確的是( C )。
    A) void play(var a:Integer, var b:Integer)
    B) void play(int a, B)
    C) void play(int a, int B)
    D) Sub play(a as integer, b as integer)
    8.以下程序的輸出結(jié)果是( C )。
    fun(int x, int y, int z)
    {z=x*x+y*y; }
    main()
    {int a=31;
    fun(5, 2, a);
    printf("%d", a);
    }
    A) 0
    B) 29
    C) 31
    D) 無定值}
    9.當(dāng)調(diào)用函數(shù)時(shí),實(shí)參是一個(gè)數(shù)組名,則實(shí)參向形參傳遞的是( B )。
    A) 數(shù)組的長(zhǎng)度
    B) 數(shù)組的首地址
    C) 數(shù)組每一個(gè)元素的地址
    D) 數(shù)組每個(gè)元素中的值
    10.以下程序的輸出結(jié)果是( A )。
    long fun( int n)
    {long s;
    if(n= =1 || n= =2) s=2;
    else s=n-fun(n-1);
    return s;
    }
    main()
    {printf("%ld\n", fun(3)); }
    A) 1
    B) 2
    C) 3
    D) 4
    11.有如下函數(shù)調(diào)用語句:
    func(rec1, rec2+rec3, (rec4, rec5));
    在該函數(shù)調(diào)用語句中,含有的實(shí)參個(gè)數(shù)是( A )。
    A) 3
    B) 4
    C) 5
    D) 有語法錯(cuò)
    12.有如下程序:
    int func(int a,int B)
    {return(a+B);}
    main( )
    {int x=2,y=5,z=8,r;
    r=func(func(x,y),z);
    printf(“%d\n”,r);
    }
    該程序的輸出的結(jié)果是( D )。
    A) 12
    B) 13
    C) 14
    D) 15
    13.以下程序的輸出結(jié)果是( B )。
    long fib(int n)
    {if(n>2) return(fib(n-1)+fib(n-2));
    else return(2);
    }
    main( )
    {printf(“%ld\n”,fib(3));}
    A) 2
    B) 4
    C) 6
    D) 8
    14.在C語言中,變量的隱含存儲(chǔ)類別是( A )。
    A) auto
    B) static
    C) extern
    D) 無存儲(chǔ)類別
    15.在下列的函數(shù)調(diào)用中,不正確的是( D )。
    A) max(a,B);
    B) max(3,a+B);
    C) max(3,5);
    D) int max(a,B);
    16.以下程序的輸出結(jié)果是( C )。
    func(int x, int y)
    {int z;
    z=x+y;
    return z;
    }
    main( )
    {int a=10, b=20, c=30, s;
    s=func((a--, b++, a+B), c--);
    printf(“%d\n”, s);
    }
    A) 30
    B) 40
    C) 60
    D) 50
    17.現(xiàn)有以下程序:
    #include
    inverse(char str[ ])
    {char t;
    int i, j;
    for(i=0, j=strlen(str); i
    {t=str[i];
    str[i]=str[j-1];
    str[j-1]=t;
    }
    }
    main( )
    {char str[100];
    scanf(“%s”, str);
    inverse(str);
    printf(“%s\n”, str);
    }
    如果輸入an anple,該程序的輸出結(jié)果是( D )。
    A) an anple
    B) elpna na
    C) an
    D) na
    18.在下列敘述中,正確的一條是( A )。
    A) puts和gets函數(shù)只能輸入或輸出一個(gè)字符串
    B) 在C語言中,函數(shù)可以遞歸調(diào)用或遞歸定義
    C) 用scanf函數(shù)輸入數(shù)據(jù)時(shí)可以規(guī)定精度,例如scanf(“%7.2f”,&a);
    D) 外部變量只限于本文件中使用
    19.以下程序的輸出結(jié)果是( C )。
    power(int x, int n)
    {int p;
    if(n>0) p=power(x, n-1)*x;
    else p=1;
    return (p);
    }
    main( )
    {int x=2, n=3;
    printf(“%d\n”, power(x, n));
    }
    A) 5
    B) 6
    C) 8
    D) 9
    20.在C語言的函數(shù)中( C )。
    A) 必須有形參
    B) 形參必須是變量名
    C) 可以有也可以沒有形參
    D) 數(shù)組名不能作形參
    21.當(dāng)輸入a1b2c3d4e時(shí),以下程序的輸出結(jié)果為( A )。
    #include
    main( )
    {char str[40];
    printf(“請(qǐng)輸入含有四個(gè)數(shù)字字符的字符串:\n”);
    scanf(“%s”,str);
    insert(str);
    }
    insert(char str[ ])
    {int i;
    for(i=strlen(str);i>0;i--)
    {str[2*i]=str[i];
    str[2*i-1]= ‘ ’;
    }
    printf(“\n結(jié)果是:%s”, str);
    }
    A) a 1 b 2 c 3 d 4 e
    B) 1 2 3 4
    C) a 1 b 2
    D) 因輸入錯(cuò)誤,程序出錯(cuò)
    22.在下列敘述中,錯(cuò)誤的一條是( A )。
    A) 主函數(shù)main中定義的變量在整個(gè)文件或程序中有效
    B) 不同函數(shù)中,可以使用相同名字的變量
    C) 函數(shù)中的形式參數(shù)是局部變量
    D) 在一個(gè)函數(shù)內(nèi)部,可在復(fù)合語句中定義變量,這些變量只在本復(fù)合語句中有效
    23.以下程序的輸出結(jié)果是( A )。
    #include
    main( )
    {int i;
    for(i=0; i<2; i++)
    as ( );
    }
    as( )
    {int lv=0;
    static int sv=0;
    printf(“l(fā)v=%d, sv=%d”, lv, sv);
    lv++;
    sv++;
    }
    A) lv=0,sv=0,lv=0,sv=1
    B) lv=0,sv=0,lv=1,sv=1
    C) lv=0,sv=0,lv=0,sv=0
    D) lv=0,sv=1,lv=0,sv=1
    24.在下列敘述中,錯(cuò)誤的一條是( B )。
    A) 全局變量存放在靜態(tài)存儲(chǔ)區(qū)中,在程序開始執(zhí)行時(shí)就給全局變量分配存儲(chǔ)區(qū),程序執(zhí)行完才釋放
    B) 在有參函數(shù)中,形參在整個(gè)程序一開始執(zhí)行時(shí)便分配內(nèi)存單元
    C) 用數(shù)組名作函數(shù)實(shí)參和形參時(shí),應(yīng)在主調(diào)函數(shù)和被調(diào)用函數(shù)中分別定義數(shù)組
    D) 在同一個(gè)源文件中,全局變量與局部變量同名時(shí),在局部變量的作用范圍內(nèi),全局變量不起作用
    25.在下列語句中,不正確的是( D )。
    A) c=2*max(a,B);  B) m=max(a,max(b,C));
    C) printf(“%d”,max(a,B));
    D) int max(int x,int max(int y,int z));
    26.若輸入1.5、2.5,以下程序的輸出結(jié)果為( C )。
    main( )
    {int max(float x, float y);
    float a, b;
    int c;
    scanf(“%f, %f” , &a, &B);
    c=max(a, B);
    printf(“%d”, C);
    }
    max(float x, float y)
    {float z;
    z=x>y ? x : y;
    return(z);
    }
    A) 1
    B) 2.5
    C) 2
    D) 3
    27、下列程序結(jié)構(gòu)中,正確的是( D )。
    A) main()
    {float a,b,c;
    scanf(“%f,%f”,&a,&B);
    c=add(a,B);
    …
    }
    int add(float x,float y)
    { … }
    B) main()
    {float a,b,c;
    scanf(“%f,%f”,&a,&B);
    c=add(a,B);
    …
    }
    float add(float x,float y)
    { … }
    C) float add();
    main()
    {float a,b,c;
    scanf(“%f,%f”,&a,&B);
    c=add(a,B);
    …
    }
    float add(float x,float y)
    { … }
    D) float add(float x,float y)
    { … }
    main()
    {float a,b,c;
    scanf(“%f,%f”,&a,&B);
    c=add(a,B);
    …
    }
    28.在下列敘述中,錯(cuò)誤的一條是( B )。
    A) scanf函數(shù)可以用來輸入任何類型的多個(gè)數(shù)據(jù)
    B) 數(shù)組名作函數(shù)參數(shù)時(shí),也采用“值傳遞”方式
    C) 如果形參發(fā)生改變,不會(huì)改變主調(diào)函數(shù)的實(shí)參值
    D) 函數(shù)的實(shí)參與形參的類型應(yīng)一致
    29.以下程序的輸出結(jié)果是( B )。
    main()
    {int i=1,j=3;
    printf(“%d”,i++);
    {int i=0;
    i+=j*2;
    printf(“%d,%d”,i,j);
    }
    printf(“%d,%d\n”,i,j);
    }
    A) 1,6,3,1,3
    B) 1,6,3,2,3
    C) 1,6,3,6,3
    D) 1,7,3,2,3
    30.C語言中形參的缺省存儲(chǔ)類別是( A )。
    A) 自動(dòng)(auto)
    B) 靜態(tài)(static)
    C) 寄存器(register)
    D) 外部(extern)
    31.設(shè)有如下函數(shù):
    ggg(float x)
    {printf(“\n%d”, x*x);}
    則函數(shù)的類型為( C )。
    A) 與參數(shù)x的類型相同
    B) void
    C) int
    D) 無法確定
    32.C語言規(guī)定,程序中各函數(shù)之間( A )
    A) 既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用
    B) 不允許直接遞歸調(diào)用也不允許間接遞歸調(diào)用
    C) 允許直接遞歸調(diào)用不允許間接遞歸調(diào)用
    D) 不允許直接遞歸調(diào)用允許間接遞歸調(diào)用
    33.下面程序的輸出結(jié)果是( A )。
    main()
    {int i=2,p;
    p=f(i,i+1);
    printf(“%d”,p);
    }
    int f(int a,int B)
    {int c;
    c=a;
    if(a>B) c=1;
    else
    if(a==B) c=0;
    else c=-1;
    return(C);
    }
    A) -1
    B) 0
    C) 1
    D) 2
    34.以下程序的輸出結(jié)果為( B )。
    f(int b[ ], int n)
    {int i, r;
    r=1;
    for(i=0; i<=n; i++) r=r*b[i];
    return(r);
    }
    main()
    {int x, a[ ]={2,3,4,5,6,7,8,9};
    x=f(a, 3);
    printf(“%d\n”, x);
    }
    A) 720
    B) 120
    C) 24
    D) 6
    35.下列程序執(zhí)行后的輸出結(jié)果是( D )。
    f(int a)
    {int b=0;
    static c=3;
    a=c++, b++;
    return(a);
    }
    main( )
    {int a=2, i, k;
    for(i=0;i<2;i++)
    k=f(a++);
    printf(“%d\n”, k);
    }
    A) 3
    B) 0
    C) 5
    D) 4
    36.下列程序執(zhí)行后輸出的結(jié)果是( A )。
    int d=1;
    fun(int p)
    {int d=5;
    d+=p++;
    printf(“%d”, D);
    }
    main( )
    {int a=3;
    fun(a);
    d+=a++;
    printf(“%d\n”, D);
    }
    A) 84
    B) 96
    C) 94
    D) 85
    37.以下程序的輸出結(jié)果是( B )。
    fun(int k)
    {if(k>0) fun(k-1);
    printf(“%d”, k);
    }
    main( )
    {int w=5;
    fun(w);
    }
    A) 54321
    B) 012345
    C) 12345
    D) 543210
    38.以下說法中正確的是( C )。
    A) C語言程序總是從第一個(gè)定義的函數(shù)開始執(zhí)行
    B) 在C語言程序中,被調(diào)用的函數(shù)必須在main()函數(shù)中定義
    C) C語言程序總是從main()函數(shù)開始執(zhí)行
    D) C語言程序中的main()函數(shù)必須放在程序的開始部分
    39.以下程序的輸出結(jié)果是( C )。
    int abc(int u, int v);
    main()
    {int a=24, b=16, c;
    c=abc (a, B);
    printf(“%d\n”, C);
    }
    int abc(int u, int v)
    {int w;
    while(v)
    {w= u%v; u=v; v=w;}
    return u;
    }
    A) 6
    B) 7
    C) 8
    D) 9
    二 填空題
    1.下列程序的輸出結(jié)果是 5 6 。
    int t(int x, int y, int cp, int dp)
    {cp=x*x+y*y;
    dp=x*x-y*y;
    }
    main( )
    {int a=4, b=3, c=5, d=6;
    t(a, b, c, D);
    printf("%d %d\n", c, D);
    }
    2.以下程序的運(yùn)行結(jié)果是 8,17 。
    #include
    main()
    {int k=4, m=1, p;
    p=func(k, m); printf("%d,", p);
    p=func(k, m); printf("%d\n", p);
    }
    func(int a, int B)
    {static int m=0, i=2;
    i+=m+1;
    m=i+a+b;
    return m;
    }
    3.以下程序輸出的最后一個(gè)值是 120 。
    int ff(int n)
    {static int f=l;
    f=f*n;
    return f;
    }
    main()
    {int i;
    for(i=1;i<=5;i++) printf("%d\n",ff(i));
    }
    4.以下函數(shù)的功能是:求x的y次方,請(qǐng)?zhí)羁铡?BR>    double fun(double x, int y)
    {int i;
    double z;
    for(i=1, z=x; i
    return z;
    }
    5.若變量n中的值為24,則prnt函數(shù)共輸出 5 行,最后一行有 4 個(gè)數(shù)。
    void prnt(int n, int aa[ ])
    {int i;
    for(i=1; i<=n; i++)
    {printf("%6d", aa[i]);
    if(!(i%5)) printf("\n");
    }
    printf("\n");
    }
    6.以下程序中,主函數(shù)調(diào)用了LineMax函數(shù),實(shí)現(xiàn)在N行M列的二維數(shù)組中,找出每一行上的值。請(qǐng)?zhí)羁铡?BR>    #define N 3
    #define M 4
    void LineMax(int x[N][M])
    {int i, j, p;
    for(i=0; i
    {p=0;
    for(j=1; j
    if(x[i][p]
    printf("The max value in line %d is %d\n", i, x[i][p] );
    }
    }
    main()
    {int x[N][M]={1,5,7,4,2,6,4,3,8,2,3,1};
    LineMax(x)
    }
    7.函數(shù)pi的功能是根據(jù)以下近似公式求π值:
    (π*π)/6=1+1/(2*2)+1/(3*3)+ … +1/(n*n)
    請(qǐng)?jiān)谙旅娴暮瘮?shù)中填空,完成求π的功能。
    #include “math.h”
    double pi(long n)
    {double s=0.0;
    long i;
    for(i=1;i<=n; i++) s=s+ 1.0/i*i ;
    return(sqrt(6*s));
    }
    8.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請(qǐng)寫出fun函數(shù)的首部 void fun( double b[10][22]) 。要求形參名為b。
    main()
    {double s[10][22];
    int n;
    …
    fun(s);
    …
    }
    9.輸入12時(shí),程序輸出結(jié)果為 12 is not prime number. ;若輸入17,輸出結(jié)果為 17 is prime number. 。
    main()
    {int number;
    scanf(“%d”, &number);
    if(prime(number)) printf(“\n%d is prime number.”, number);
    else printf(“\n%d is not prime number.”, number);
    }
    int prime(int number)
    {int flag=1, n;
    for(n=2; n
    if(number%n= =0) flag=0;
    return(flag);
    }
    10.理解下面的程序,填空完善程序。
    main()
    {int a, b, c;
    scanf(“%d %d”, &a,%b );
    c= max (a,
    B);
    printf(“a=%d b=%d max=%d\n”, a, b,
    C);
    }
    int max(x, y)
    int x,int y ;
    {int z;
    if(x>y) z=x;
    else z=y;
    return z ;
    }
    11.下面程序的輸出結(jié)果是 2,5,1,2,3,-2 。
    main()
    {int a=3, b=2, c=1;
    c-=++b;
    b*=a+c;
    {int b=5, c=12;
    c/=b*2;
    a-=c;
    printf(“%d, %d, %d,”, a, b,
    C);
    a+=--c;
    }
    printf(“%d, %d, %d”, a, b,
    C);
    }
    12.下面的findmax函數(shù)返回?cái)?shù)組s中值為的元素的下標(biāo),數(shù)組中元素的個(gè)數(shù)由t傳人,請(qǐng)?zhí)羁铡?BR>    findmax(int s[ ], int t)
    {int k, p;
    for(p=0, k=p; p
    if(s[p]>s[k]) p=k ;
    return k;
    }
    13.下面程序的輸出結(jié)果是 7 。
    fun(int x)
    {int p;
    if(x= =0||x= =1) return(3);
    p=x-fun(x-2);
    return p;
    }
    main()
    {printf(“%d\n”, fun(9));}
    14.函數(shù)fun的功能是:使一個(gè)字符串按逆序存放,請(qǐng)?zhí)羁铡?BR>    void fun(char str[ ])
    {char m;
    int i, j;
    for(i=0, j=strlen(str); i< strlen(str) ; i++, j--)
    {m=str[i];
    str[i]= str[j-1] ;
    str[j-1]=m;
    }
    printf(“%s\n”, str);
    }
    一、單項(xiàng)選擇題
    1.以下說法中正確的是( D )。
    A) #define和printf都是C語句
    B) #define是C語句,而printf不是
    C) printf是C語句,但#define不是
    D) #define和printf都不是C語句
    2.以下程序的輸出結(jié)果是( C )。
    #define f(x) x*x
    main( )
    {int a=6, b=2, c;
    c=f(a)/f(
    B);
    printf("%d\n", c);
    }
    A) 9
    B) 6
    C) 36
    D) 18
    3.下列程序執(zhí)行后的輸出結(jié)果是( B )。
    #define MA(x) x*(x-1)
    main( )
    {int a=1, b=2; printf("%d\n", MA(1+a+
    B));}
    A) 6
    B) 8
    C) 10
    D) 12
    4.以下程序的輸出結(jié)果是( D )。
    #define M(x, y, z) x*y+z
    main( )
    {int a=1, b=2, c=3;
    printf("%d\n", M(a+b, b+c, c+a));
    }
    A) 19
    B) 17
    C) 15
    D) 12
    5.以下程序的輸出結(jié)果是( B )。
    #define SQR(X) X*X
    main( )
    {int a=16, k=2, m=1;
    a/=SQR(k+m)/SQR(k+m);
    printf("%d\n", a);
    }
    A) 16
    B) 2
    C) 9
    D) 1
    6.有如下程序:
    #define N 2
    #define M N+1
    #define NUM 2*M+1
    main( )
    {int i;
    for(i=1; i<=NUM; i++) printf(“%d\n”, i);
    }《 M=3,NUM=6》
    該程序中的for循環(huán)執(zhí)行的次數(shù)是( B )。
    A) 5
    B) 6
    C) 7
    D) 8
    7.以下程序的輸出結(jié)果是( C )。
    #include
    #define MIN(x, y) (x)< (y)?(x):(y)
    main( )
    {int a, b, c;
    a=20;b=10;
    c=5*MIN(a, B);
    printf(“%d\n”, c);
    }
    A) 20
    B) 200
    C) 10
    D) 50
    8.在下列敘述中,正確的是( C )。
    A) 下面的程序有一個(gè)整型輸出值:
    main( )
    {int a;
    a=pp( );
    printf(“%d”,a);
    }
    void pp( )
    { … }
    B) 以下程序的運(yùn)行結(jié)果為1,3,5,7
    main( )
    {static int a[4]={1,3,5,7};
    printf(“%d,%d,%d,%d\n”,a);
    }
    C) 以下兩個(gè)語句是等價(jià)的
    for(;(c=getchar( ))!=‘\n’;printf(“%c\n”, c));
    for(;(c=getchar( ))!=‘\n’;) printf(“%c\n”, c);
    D) 以下程序中的PRINT()是一個(gè)函數(shù)
    #define PRINT(V) printf(“V=%d\t”, V)
    main( )
    {int a,b;
    a=1;
    b=2;
    PRINT(a);
    PRINT(B);
    }
    9.在下列#include命令中,正確的一條是( D )。
    A) #include[string.h]
    B) #include{math.h}
    C) #include(stdio.h)
    D) #include
    10.宏定義#define PI 3.1415926的作用是:指定用標(biāo)識(shí)符PI來代替一個(gè)( B )。
    A) 單精度數(shù)
    B) 字符串
    C) 雙精度數(shù)
    D) 整數(shù)
    11.如果在用戶的程序中要使用C庫函數(shù)中的數(shù)學(xué)函數(shù)時(shí),應(yīng)在該源文件中使用的include命令是( B )。
    A) #include
    B) #include
    C) #include
    D) #include
    12.若輸入60和13,以下程序的輸出結(jié)果是( D )。
    #define SURPLUS(a,B) ((a)%(B))
    main( )
    {int a,b;
    scanf(“%d,%d”,&a,&B);
    printf(“%d\n”,SURPLUS(a,B));
    }
    A) 60
    B) 13
    C) 73
    D) 8
    13.如果文件1包含文件2,文件2中要用到文件3的內(nèi)容,而文件3中要用到文件4的內(nèi)容,則可在文件1中用三個(gè)#include命令分別包含文件2、文件3和文件4。在下列關(guān)于這幾個(gè)文件包含順序的敘述中,正確的一條是( A )。
    A) 文件4應(yīng)出現(xiàn)在文件3之前,文件3應(yīng)出現(xiàn)在文件2之前
    B) 文件2應(yīng)出現(xiàn)在文件3之前,文件3應(yīng)出現(xiàn)在文件4之前
    C) 文件3應(yīng)出現(xiàn)在文件2之前,文件2應(yīng)出現(xiàn)在文件4之前
    D) 出現(xiàn)的先后順序可以任意
    14.在下面四個(gè)程序中,輸出結(jié)果與其它三個(gè)不同的是( C )。
    A) #define MAX(a,B) ((a)>(B)?(a):(B))
    main( )
    {int a,b,c;
    scanf(“%d,%d,%d”,&a,&b,&c);
    printf(“%d\n”,MAX(MAX(a,B),c));
    }
    B) main( )
    {int a,b,c;
    scanf(“%d,%d,%d”,&a,&b,&c);
    printf(“%d\n”,max(a,b,c));
    }
    max(int x,int y,int z)
    {int t;
    t=(x>y?x:y);
    return(t>z?t:z);
    }
    C) main( )
    {int a,b,c,max;
    scanf(“%d,%d,%d”,&a,&b,&c);
    if(a>b>c) max=a;
    if(b>c>a) max=b;
    if(c>a>B) max=c;
    printf(“%d\n”,max);
    }
    D) main( )
    {int a,b,c,max;
    scanf(“%d,%d,%d”,&a,&b,&c);
    max=a>b?a:b;
    if(c>max) max=c;
    printf(“%d\n”,max);
    }
    15.以下for語句構(gòu)成的循環(huán)執(zhí)行了( C )次。
    #define N 2
    #define M N+1
    #define NUM (M+1)*M/2
    main( )
    {int i, n=0;
    for(i=1; i<=NUM; i++)
    {n++;
    printf(“%d”, n);
    }
    printf(“\n”);
    }
    A) 4
    B) 6
    C) 8
    D) 9
    16.以下程序的輸出結(jié)果是( B )。
    #include
    #define FUDGE(y) 2.84+y
    #define PR(a) printf(“%d”, (int)(a))
    #define PRINT1(a) PR(a); putchar(‘\n’)
    main( )
    {int x=2;
    PRINT1(FUDGE(5)*x);
    }
    A) 11
    B) 12
    C) 13
    D) 15
    17.以下程序的輸出結(jié)果是( A )。
    #define SUB(x, y) (x)*y
    main( )
    {int a=3, b=4;
    printf(“%d\n”, SUB(a++, b++));
    }
    A) 12
    B) 15
    C) 16
    D) 20
    18.設(shè)有以下宏定義:
    #define N 3
    #define Y(n) ((N+1)*n)
    則執(zhí)行語句:z=2*(N+Y(5+1));后,z的值為( C )。
    A) 出錯(cuò)
    B) 42
    C) 48
    D) 54