124、下面( B )是错误的if语句(设int x,a,b;)(2分)
A、if(a=b) x++; B、if(a=
A、9 B、-2 C、-1 D、8 127、以下正确的定义语句是( D )。(2分)
A、int a[1][4]={1,2,3,4,5}; B、float x[3][]={{1},{2},{3}}; C、long b[2][3]={{1},{1,2},{1,2,3}}; D、double y[][3]={0};
128、程序段char a[7]=”abcdef”; char b[4]=”ABC”; strcpy(a,b); printf(“%c”,a[5]); 输出结果是( D )。(2分)
A、一个空格 B、\\0 C、e D、f
129、在C语言中,引用数组元素时,其数组下标的数据类型允许是( C )。(2分) A、整型常量 B、整型表达式 C、整型常量或整型表达式 D、任何类型的表达式
130、已知函数abc的定义为:void abc() {......},则函数定义中void的含义是( B )。 A、执行函数abc后,函数没有返回值 B、执行函数abc 后,函数不再返回 C、执行函数abc后,可以返回任意类型 D、以上三个答案全是错误的 131、在定义语句int *f();中,标识符f代表的是( D)。(2分)
A、一个用于指向整型数据的指针变量 B、一个用于指向一维数组的行指针 C、一个用于指向函数的指针变量 D、一个返回值为指针型的函数名
132、程序段char str[ ]=\执行后,*(ptr+5)的值为(B )。 A、′o′ B、′\\0′ C、不确定值 D、′o′的地址 133、表示指向结构体变量的指针的运算符是(C )(2分) A、>> B、<< C、-> D、:
134、下列关于文件指针的描述中,错误的是(D )(2分)
A、文件指针是由文件类型FILE定义的。 B、文件指针是指向内存某个单元的地址值。 C、文件指针是用来对文件操作的标识。 D、文件指针在一个程序中只能有一个。 135、若变量已正确定义并赋值,下面符合C语言语法的表达式是(B)(2分) A、 a:=b+1 B、 a=b=c+2 C、 int 18.5%3 D、 a=a+7=c+b 136、优先级最高的为(C)。(2分)
A、 && B、 ?: C、 != D、 ||
137、若从终端输入以下数据,要给变量c赋以283.19,则正确的输入语句是(D)(2分) A、scanf(\ B、scanf(\ C、scanf(\ D、scanf(\138、已定义ch为字符型变量,以下赋值语句中错误的是(B)(2分) A、 ch='\\'; B、 ch=62+3; C、 ch=' '; D、 ch='\\xaa'; 139、逻辑运算符两侧运算对象的数据类型可以是(D )。(2分) A、只能是0或1 B、只能是0或非0正数
C、只能是整型或字符型数据 D、可以是任何类型的数据
140、执行程序段int a=-1,b=4,k;k=(++a<0)&&!(b--<=0);printf(“%d %d %d\\n”,k,a,b);后的输出结果是( D ) 。 (2分) A、1 0 4 B、1 0 3 C、0 0 3 D、0 0 4
141、执行程序段int  k=4,a=3,b=2,c=1; printf(“\\n%d \\n”,k   (   D ) 。            A、0   B、3  C、2   D、1  142、对for(表达式1; ;表达式3)可以理解为(  B   )。(2分)  A、for(表达式1;0;表达式3)   B、for(表达式1;1;表达式3)   C、for(表达式1;表达式1;表达式3)   D、for(表达式1;表达式3;表达式3) 143、若i、j均为整型变量,则for (i=0,j=-1;j=1;i++,j++) printf(“%d,%d\\n”,i,j); (   D  )。 A、循环体只执行一次 B、循环体一次也不执行  C、判断循环结束的条件不合法 D、是无限循环  144、设j为int型变量,则for(j=10;j>3;j--) {if (j%3)  j--; --j;--j;printf(“%d    ”,j); }的执行结果是(  A  )。  (2分)   A、7    4   B、4    7   C、5    6  D、1    3  145、语句int k=1; while (k++<10);执行后,变量k的值是(  B  )。(2分)  A、10   B、11  C、9   D、无限循环,值不定 146、判断字符串a是否大于b,应当使用(  D )。(2分)   A、if (a>b)  B、if (strcmp(a,b))  C、if (strcmp(b,a)>0)  D、if (strcmp(a,b)>0) 147、若用数组名作为函数调用的实参,传递给形参的是(  A   )。(2分)   A、数组的首地址 B、数组第一个元素的值 C、数组中全部元素的值 D、数组元素的个数 148、一个C语言程序是由(  B)。(2分)   A、一个主程序和若干子程序组成  B、函数组成 C、若干过程组成 D、若干子程序组成 149、已知:char s[100]; int i=10;则在下列引用数组元素的语句中,错误的表示是 (     C)。(2分)   A、s[i+10]            B、*(s+i)         C、*(i+s)         D、*((s++)+i) 150、C语言结构体类型变量在程序执行期间( A)(2分)   A、所有成员一直驻留在内存中。 B、只有一个成员驻留在内存中。  C、部分成员驻留在内存中。 D、没有成员驻留在内存中。 151、语句“fseek(fp,-100L,1);”的功能是(C )(2分)   A、将fp所指向文件的位置指针移至距文件首100个字节。   B、将fp所指向文件的位置指针移至距文件尾100个字节。   C、将fp所指向文件的位置指针移至距当前位置指针的文件首方向100个字节。   D、将fp所指向文件的位置指针移至距当前位置指针的文件尾方向100个字节。 152、以下叙述中正确的是(C)(2分)   A、在C程序中,无论是整数还是实数,只要在允许的范围内都能准确无误的表示。  B、C程序由主函数组成   C、C程序由函数组成 D、C程序由函数和过程组成 153、优先级最高的为(C)。(2分)   A、 &&         B、  ?:        C、 !=         D、 ||            154、假设所有变量均为整型,则表达式(a=2,b=5, a+b)的值是(A)(2分)  A、 7         B、 8          C、 6          D、 2 155、以下选项中非法的表达式是 (D)(2分)   A、 0<=x<100              B、 i=j==0 C、 (char)(65+3)          D、 x+1=x+1 156、若变量已正确说明为float类型,要通过语句scanf(\给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:(B)   A、 10<回车>22<回车>33<回车> B、 10.0,22.0,33.0<回车>  C、 10.0<回车>22.0  33.0<回车> D、 10  22<回车>33<回车>    157、若有以下定义和语句:char c1='b',c2='e';printf(\则输出结果是(B)  A、2,M  B、3,E C、2,E  D、输出项与对应的格式控制不一致,输出结果不确定  158、执行语句int x=5,a=0,b=0;if(x=a+b) printf(\printf(\后,结论是(   D  )。(2分)   A、有语法错,不能通过编译 B、能通过编译,但不能连接 C、输出**** D、输出 #### 159、设有int  k=10;while (k=0)  k=k-1;则下面描述中正确的是( C    )。 (2分)  A、while循环执行10次  B、循环是无限循环   C、循环体语句一次也不执行 D、循环体语句执行一次 160、下面有关for循环的正确描述是( D   )。(2分)  A、for循环只能用于循环次数已经确定的情况  B、for循环是先执行循环体语句,后判定表达式  C、在for循环中,不能用break语句跳出循环体   D、for循环体语句中,可以包含多条语句,但要用花括号括起来  161、执行语句x=y=0; while (x<15) y++,x+=++y ;printf(“%d,%d”,y,x);的结果是( D  )。(2分)   A、20,7  B、6,12   C、20,8     D、8,20  162、a和b为int型变量,则执行a=1;b=10;do {b- =a;a++; } while (b--<0);后b的值为(  D )。                  A 、 9   B、-2   C、-1   D、8   163、C语言规定,数组名做实参时,它和对应形参之间的数据传递方式是( D  )。(2分)  A、用户指定传递方式   B、无传递  C、单向值传递  D、地址传递  164、若二维数组a有m列,则计算任一元素a[I][j]在数组中位置的公式为( D  )。(2分)  A、i*m+j    B、j*m+I  C、i*m+j-1   D、i*m+j+1  165、对以说明语句int a[10]={6,7,8,9,10};的正确理解是( B  )。(2分)  A、将5个初值依次赋给a[1]至a[5]  B、将5个初值依次赋给a[0]至a[4]  C、将5个初值依次赋给a[6]至a[10]   D、因为数组长度与初值的个数不同,所以此语句不正确  166、在C语言中,若对函数类型未加明显式说明,则函数的隐含类型是( C )类型。(2分)  A、void  B、double   C、int   D、char  167、程序int  a[ ]={1,2,3,4,5,6,7,8,9,0,},*p; p=a; printf(“%d\\n”,*p+9);的输出结果是(     C    )。             A、0      B、1           C、10       D、9  168、设有说明语句“struct stu{  int a;  float b;}stutype;”,则叙述不正确的是(C )(2分)  A、stuct是结构体类型的关键字。 B、struct stu是用户定义的结构体类型。  C、stutype是用户定义的结构体类型名。 D、a和b都是结构体成员名。 169C语言程序的注释是(A)(2分)   A、由\开头,\结尾 B、由\开头,\结尾 C、由\开头 D、由\或\开头 170、下列关于赋值运算符的表述中,错误的是(B)(2分)   A、赋值运算符优先级高于逗号运算符 B、赋值运算符的结合性是从左至右  C、赋值运算符是双目运算符 D、赋值运算符可在表达式中连用 171、以下选项中正确的实型常量是(B)(2分)  A、0  B、3.1415    C、0.03x10    D、.32  172、下列表达式中,( B   )不满足“当x的值为偶数时值为真,为奇数时值为假”的要求。(2分)     A、x%2==0   B、!x%2!=0   C、(x/2*2-x)==0   D、!(x%2)  173、设有int  k=10;while (k=0)  k=k-1;则下面描述中正确的是( C    )。 (2分)  A、while循环执行10次   B、循环是无限循环   C、循环体语句一次也不执行  D、循环体语句执行一次 174、若i、j均为整型变量,则for (i=0,j=-1;j=1;i++,j++) printf(“%d,%d\\n”,i,j); ( D    )。 (2分)   A、循环体只执行一次 B、循环体一次也不执行  C、判断循环结束的条件不合法 D、是无限循环 175、以下描述正确的是(   C )。(2分)   A、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。    B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。  C、在do-while循环体中,一定要有能使while后面表达式的值变成零(“假”)的操作。 D、do-while循环中,根据情况可以省略while  176、以下对二维整形数组a的正确说明是( C  )。  A、int a[3][];   B、float a(3,4);  C、double a[1][4];   D、float a(3)(4) 177、以下能对二维整形数组a进行正确初始化的语句是( D  )。  A、int a[2][3]={0};  B、int a[][3]={{1,2},{0}};   C、int a[2][3]={{1,2},{3,4},{5,6}}; D、int a[][3]={1,2,3,4,5,6};  178、在C语言中,一位数组的定义方式为:类型说明符 数组名( A )。(2分)  A、[常量表达]  B、整型表达式 C、[整型常量]或[整型表达式]  D、[整型常量] 179、实际参数不能是(D  )。(2分)   A、常量 B、变量 C、表达式 D、不确定值 180、设有程序:int *var,ab; ab=10; var=&ab; ab+=*var+10;执行程序段后,ab值为( B     )。  (2分)   A、40  B、30 C、20  D、10  181、已有定义“struct xy{int a; double b;}m;”,变量m的成员a的正确表示是(A )(2分)  A、m.a   B、m->a   C、*m.a   D、xy.a 182、以下叙述中正确的是(B)(2分)   A、C语言的源程序不必通过编译就可以直接运行   B、C语言中的每条可执行语句最终都将被转换成二进制的机器指令  C、C源程序经编译形成的二进制代码可以直接运行  D、C语言中的函数不可以单独进行编译  183、以下所列的C语言常量中,错误的是(B)(2分)  A、 0xFF  B、 1.2e0.5  C、 2L  D、 '\\72'  184、若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(A)(2分)  A、 2.500000       B、 2.750000       C、 3.500000      D、 0.000000  185、若执行以下语句:int  a;float b,c;scanf(“-?O”, &a, &b, &c); printf(“\\na=%d,b=%f,c=%f\\n”,a, b, c);在键盘上从第一列开始,输入9876543210  C、a=98,b=765.000000,c=4321.000000   D、a=98,b=765.0,c=4321.0  186、已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是(C)(2分)