问题 单项选择题

有以下程序: main() {int a=0,b=0,C=0,d=0; if(a=1)b=1;c=2; else d=3; printf("%d,%d,%d,%d\n",a,b,c,d); } 程序输出______。

A.0,1,2,0

B.0,0,0,3

C.1,1,2,0

D.编译有错

答案

参考答案:D

解析: C语言规定最左边变量所得到的新值就是赋值表达式的值,故“if(a=1)”条件表达式为真,b=1;else总是与上面最近的没有被使用的if配对,导致不合法的if-else结构,if语句后面的两条语句应用“{)”括起来。

填空题
单项选择题