C语言错题汇总 下载本文

内容发布更新时间 : 2024/5/2 21:16:56星期一 下面是文章的全部内容请认真阅读。

C语言错题汇总

练习1

1、在下数据输出的判断中,正确的是()。 int x=0xaffbc;printf(“%x”,x);

A.赋值非法 B.输出值不确定 C.输出值为affb D.输出值为ffbc 2、下列语句中,最正确的赋值语句是()。

A.a=7+b+c=a+7; B.a=7+b++=a+7; C.a=7+b,b++,a+7; D.a=(7+b,c=a+7); 3、下列语句中正确的是()。

A.int x=y=z=0; B.int z=(x+y)++; C.x+=3= =2; D.x%=2.5; 4、表达式a=(a=6,a*3,a+3);运行后。则a的值为()。

A. 39 B. 36 C. 6 D. 9 5、C语言的程序一行写不下时,可以()。

A. 用逗号换行 B.用分号换行 C.在任意一空格处换行 D.用回车符换行 6、对于条件表达式(M)?(a++):(a--)来说,其中的表达式M等价于()。 A. M==0 B. M==1 C. M!=0 D.M!=1 7、下列程序的输出结果是()。 main()

{int x=0,y=5,z=3;

while(z-->0&&++x<5)y=y-1; printf(“%d,%d,%d\\n”,x,y,z); }

A.3,2,0 B.3,2,-1 C.4,3,-1 D.5,-2,5

练习2

1、若x和y均为int型变量,则执行下面的循环后,y的值为()。 for(y=1,x=1;y<=5;y++) {if(x>=10)break;

if(x%2==1){x+=5;continue;} x-=3; }

A.2 B.4 C.6 D8

2、在下列程序中,若要求a1,a2,c1,c2的值分别为10,20,A,B,正确的数据输入是()。 main() {int a1,a2; char c1,c2;

scanf(“%d%d”,&a1,&a2); scanf(“%c%c”,&c1,&c2); }

A.1020AB B.10 20AB C.10 20 AB D.10 20AB 3、下列程序段中所表示的逻辑关系是()。 if(a

1 (a=b) 2 (a>=b且c≠d) 2 (c≠d) 2 (a>=b且c≠d)

1

C语言错题汇总

4、在下列程序中,对输出结果描述正确的是()。 #include void main() {int x;

for(x=1;x<=100;x++) if(++x%2==0) if(++x%3==0) if(++x%5==0)

printf(“%d,”,x); }

A.输出31,61,91, B.输出30,60,90, C.不输出任何内容 D.输出29,59,89, 5、在下列程序段中与语句k=a>b?(b>c?1:0):0功能等价的是()。

A.if((a>b)&&(b>c))k=1; B. if(a>b)||(b>c)k=1; C. if(a<=b)k=0; D.if(a>b)k=1; else k=0; else k=0; else if(b<=c)k=1; else if(b>c)k=1; else k=0 6、在执行下列程序时,若输入1 2 3,则输出结果是: a=1,b= ,c=2 #include main() {int a,c; char b;

scanf(“%d%c%d”,&a,&b,&c);

printf(“a=%d,b=%c,c=%d\\n”,a,b,c); }

练习3

1、若有以下程序段,则执行后,c3的值是()。 int c1=1,c2=2,c3; c3=1.0/c2*c1; A.0 B.0.5 C.1 D.2 2、以下错误的转义字符是()。 A.‘\\\\’ B.‘\\’ C.‘\\81’ D.‘\\0’ 3、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为()。 A.0 B.1 C.2 D.3 4、已知char a;int b;float c;double d;,执行语句c=a+b+c+d;后,变量c的数据类型是()。 A.int B.char C.float D.double 5、已知int i,a;,执行语句i=(a=2*3,a*5),a+6;后,变量i的值是()。 A.6 B.12 C.30 D.36 6、已知int i=5;,执行语句i+=++i;后,i的值是()。 A.10 B.11 C.12 D.A,B,C答案都不对 7、已知char c=‘A’;int i=1,j;,执行语句j=!c&&i++;后,则i和j的值是()。 A.1,1 B.1,0 C.2,1 D.2,0 8、已知int x=1,y=2,z;,执行语句z=x>y||x&&y;后,则z的值是()。 A.1 B.2 C.3 D.4 9、已知int x=1,y;,则y=++x*++x的结果是()。 A.y=9 B.y=6 C.y=1 D.表达式是错误的

2

C语言错题汇总

10、写出下面程序的结果。 #include void main() {

char c1=‘a’,c2=‘b’,c3=‘c’,c4=‘\\101’,c5=‘\\116’; printf(“a?%c\\tc%c\\tabc\\n”,c1,c2,c3); printf(“\\t%c %c”,c4,c5); }

答:运行结果如下: aabb cc abc A N 练习4

1、设有程序段如下,则以下选项描述正确的是()。 t=0;

while(printf(“* ”)) {t++;

if(t<3) break; }

A.其中循环控制表达式与0等价 B.其中循环控制表达式与‘0’等价 C.其中循环控制表达式是不合法的 D.以上说法都不对

解析:printf(“* ”)的值为非零,因为printf()函数的返回值是输出字符的个数。 2、以下程序运行后输出的结果是()。 #include void main()

{int a=15,b=21,m=0; switch(a%3)

{case 0: m++;break; case 1: m++; switch(b%3)

{default: m++;break; case 0: m++;break; } }

printf(“%d\\n”,m); }

A.1 B.2 C.3 D.4 3、以下程序的输出结果是()。 #include void main() {int i,j,x=0;

for(i=0;i<2;i++) {x++;

for(j=0;j<3;j++) {if(j%2) continue; x++; }

3