二、C选择题
1.表达式“(a=4*5, b=a*2), b-a, a+=2”的值是
A2            B20            C22            D42
2.以下是一个自定义函数的头部,其中正确的是 令数组全部的值为0)
Aint fun(int a[ ], b)                Bint fun(int a[ ], int a)
Cint fun(int*a, int b)            Dint fun(char a[ ][ ], int b)
3.以下数组声明语句中正确的是
Aint n, a[n];                    Bint a[ ];
Cint a[2][3]={{l},{2},{3}};        Dint a[ ][3]={{l},{2},{3}};
4.已知在某C语言编译系统中表达式sizeof(int)的值是2,如果希望将常量-70 000正确地    保存在一个变量a中,该变量声明语句应当是
Aint a;            Blong int a;        Cunsigned int a;        Dunsigned int a;
5.以下声明语句中,用于声明一个行指针变量的是
Aint *p(int);        Bint *p;        Cint (*p)[3];        Dint (*p)(int);
6.在以下程序中,需要在fun函数中声明一个int型的变量,以下选项中 不能用做该变量的名字。
    #include <math.h>
    int y;
    main( )
    { int a=1;
    fun(a);
    }
    int fun(int x)
    {_______;                    *int型变量声明语句位置*
    …                            *若干执行语句*
    }
Ax            By            Cfabs            Dfun
7.如有语句“int x,y=0,z,*p[3]; p[0]=&x; p[1]=&y; p[2]=&z;”,以下表达式中有语法错误的是
Ay++        Bp++            C*++p[0]        D(*p[0])++
8.设有声明语句“int a[3][3]={1,2,3,4,5,6,7,8,9};”,以下语句中除 外均能输出a[1][2]的值。
Aprintf("d ",*(*(a+1)+2))        Bprintf("%d ",*(a[2][0]-1));
Cprintf("%d ",*(a[1]+2));        Dprintf("%d ",*(a+1)[2]);
9.已知有声明语句int x=8,则下列表达式中,值为2的是
Ax+=x-=x        Bx% = x-2        Cx>8?x=0:x++        Dx= x + x
10.以下关于函数的叙述中正确的是
  A.在函数体中可以o直接引用另一个函数中声明为static类别的局部变量的值
  B.在函数体中至少必须有一个return语句
  C.在函数体中可以定义另一个函数
  D.在函数体中可以调用函数自身
11.若有声明语句“int a[10], b[3][3];”,则以下对数组元素赋值的操作中,不会出现越界访问的是
Aa[-1]=0            Ba[10]=0            Cb[3][0]=0            Db[0][2]=0
12.若有声明语句“char ch=’a’, *pc=&ch;”,以下语句中有语法错误的是
A(*pc)++;                    Bch+= -‘a’ + ‘A’;
Ctoupper(ch)=ch;                Dch++;
13.已知有声明语句“int a[5]={1, 2, 3, 4, 5}, *p, i;”,以下语句中 不能正确输出a数组全部元素的值。
  Afor(p=a, i=0;i<5;i++)printf("%d",*(p+i));
  Bfor(p=a;p<a+5;p++)printf("%d", *p);
  Cfor(p=a, i=0;p<a+5;p++, i++)printf("%d", p[i]);
  Dfor(p=a;p<a+5;p++)printf("%d", p[0]);
14.已知某程序如下:
    float p=1.5;
    #define p 2.5
main( )
    {printf("%f", p);}
  main函数中标识符p代表的操作数是
Afloat型变量              Bdouble型变量
Cfloat型常量                Ddouble型常量
15.已有声明“int S[2][3]”,以下选项中 正确地引用了数组S中的基本元素。
AS[1>2][!1]            BS[2][0]            CS[1]            DS
16.逻辑异或运算可描述为“a xor b”,其中ab为参加运算的两个操作数,运算结果为当且仅当ab两个操作数中只有一个为真时才为真,其他情况下均为假。以下表达式中 可以正确表示逻辑异或运算。
Aa || b            Ba && b        C(a&&b)&&!(a || b)        D(a || b)&&!(a&&b)
17.若有声明“int a[5],*b=a,(*c)[3],*d[3];”,则在以下表达式中有语法错误的是
Aa[0]=0            Bb[0]=0        Cc[0]=0        Dd[0]=0
18.若有声明:
    int k, a, b;
    unsigned long y=5;
    double x=1.23;
  则以下表达式中正确的是
Ax%(-5)        Bx=y[6]    Ck=(a=1,b=2,&a + &b)    Da+=a- = (b=2) * (a = 3)
19.一个用C语言编写的源程序中, 是必不可少的。
A.取名为main的函数定义            B#include<stdio.h>
C.变量声明                        D.注释
20.以下声明中正确的是
Aint n=2, a[n]={10};                Bint n=10, *p[2]=&n;
Cint n=10, a[2]={n};                Dint a[2][2]={10}, (*p)[2]=a+1;
21、若有函数fun的定义为
    void fun(…)
{static int a=1;
    }
  则下列叙述中不正确的是
  A.在每次调用fun函数时,变量a的值是上次调用结束时a的值
  B.在fun函数之外,可以用变量名a直接引用a的值
  C.在其他函数中,可以出现声明double a=2.5;
  Dfun函数的形式参数不能取名为a
22.以下单目运算符均只需要一个操作数,其中要求操作数的类型只能是指针型的是(
A&                B++            C!            D*
23.已知有声明“int good=l; ”,若要使得表达式“p="good"+good”无语法错误(包括警告错误)p应当声明为
Achar p;                Bchar*p;        Cint p;            Dint *p;
24.以下全局变量声明中正确的是
Aauto int i=1;                    Bfloat a=1, b=0.5, c=a+b;
Cchar for=1;                    Dstatic char ch;
25.若已有声明“double a[2][3]={1, 2, 3, 4, 5, 6};”,则下列表达式中不能正确引用a[1][1]值的是
A*(a[0]+4)
B*(a[1]+1)
C*(*(a+3)+1)
D*(*a+4)
26、已有声明“int a[5];”,以下表达式中不能正确取得a[1]指针的是
A&a[1]
B++a
C&a[0]+1
Da+l
27.以下关于语句的说法中正确的是
    Ado-while语句的循环体至少会被执行1
    Bwhile语句的循环体至少会被执行1
    Cfor语句的循环体至少会被执行1
    D.在C语言中只能用dodo-whilefor语句实现循环结构
28.已知函数f的定义如下:
    void f(void)
    {printf("That’s great! ");}
  则调用f函数的正确形式是
Af;
Bf();
Cf(void);
Df(1);
29.以下程序在编译时在第三行报错“Redeclaration of ‘a’in function d”,如果决定修改该行声明中出现的局部变量a的名字,则下列选项中不能用来替换变量名a的是
    int b;
void d(int a)
{ int f; double a=1;
        printf("%d",a);
}
main( )
{int e=1;d(e);}
      Af        Be        Cd        Db
30、以下语句中不包含关键字的是
      Ax=sqrt(2);
Bwhile(x!=0)x--;
Cif(x<0)x=-x;
Dreturn x;
31.在main函数体内部和外部均允许出现的实体是
A.预处理命令   
B.语句       
C.另一函数的定义     
D.函数形式参数声明
32、已知有声明int x=2:,以下表达式中值不等于8的是
Ax+=2,x*2
Bx+=x*=X
C(x+7)/2*((x+1)%2+1)
Dx*7.2/x+1
33、执行以下程序时,
      #include<stdio.h>
      main()
      {  int a; float b;
      scanf("%3d%f",&a,&b);printf("%d\t%f",ab);
    }
    若要求变量ab分别从键盘获得输入值45678.0,则以下四种输入数据中( 代表空格键,<CR>代表回车),不能达到该要求的输入数据是
A45 678<CR>
B45<CR>678<CR>
C45,678<CR>
D045678<CR>
34.下列程序段中,能将变量xy中值较大的数保存到变量a、值较小的数保存到变量b的程序段是
  Aif(x>y)a=x;b=y;else a=y;b=x;
  Bif(x>y){a=x;b=y;}else a=y;b=x;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。