C语言程序设计错题集

C语言程序设计错题集

2019/03/06

1.下列程序段输出结果为:

int x=1, y=012;

printf(“%d”,y*x++);

A.20    B.10     C.12      D.24

2.以下表达式x&&1
用在if的条件中时,和哪个是等价的:

A.x!=1          B.x==0           C.x==1         D.x!=0

3.对于以下代码:

unsigned short sht = 0;

sht --;

执行后,sht的值是?

A.32767        B.-1         C.2的16次方-1         D.65536

4.对于以下代码:

int i=6;

if ( i<= 6 ) 

  printf("hello\n");;

else

  printf("bye-bye\n");;

哪句话是对的?

A.打印出"hello bye-bye"        B.打印出"bye-bye"        C.打印出"hello"       D.无法编译

5.在代码:while ( !e )中,!e等价于:

A.e==1        B.e!=0        C.e == 0       D.e != 1

6.对于以下代码:

char ch = -1;

printf("%d\n", ch);

输出结果是?

A.255         B.-1         C.编译错误,因为赋值的时候不能把负数赋给char        DASCII码表中255那个位置的字符

7.以下代码的输出是 _____.

int x=0, y=0, z=0;

z = (x==1) && (y=2);

printf("%d ", y);

8.以下代码段的结果是:_____.
int i=10;
long long t = sizeof(i++);
printf("%d", i);

9.表达式(double)(10/4*4)
的结果是_____.

10.以下代码的输出是 :

int i,x,y; i=x=y=0; do { ++i; if ( i%2 ) x+=i, i++; y +=i++; } while ( i<=7 ); printf("%d %d %d", i, x, y);

 

 

 

 

 

 

 

 

 

 

 

 

 


 


 

 

 

 

1.正确答案:B

解析:012是8进制数,而x++的结果是加1以前的值

2.正确答案:D

解析:  x只要不是0就是逻辑真 ; 右边的1是确定的值,所以其实不起作用

3.正确答案:C

解析:  short类型在各种平台都是16位,2的16次方为65536,所以unsigned short能表达的最大的数是65535 

4.正确答案:D

解析:  if后面的printf后面的第二个分号使得else无法和if联结 

5.正确答案:C

解析:  A、任何非0整数值都是逻辑的true  B、e前面还有一个!呢  C、任何非0整数值就是逻辑的true,所以只有e是0的时候,!e才会是true  D、任何非0整数值都是逻辑的true

6.正确答案:B

解析:  A、char是有符号的  B、这是以整数形式输出  C、char是一种整数,而且是有符号的  D、这是以整数形式输出

7.正确答案:0

8.正确答案:10
解析: sizeof()是静态运算符

9.正确答案:8

10.正确答案:9 1 20
解析: 你注意到x+=i,是以逗号结尾的了吗?

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(C语言)