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,是以逗号结尾的了吗?