问题
单项选择题
有以下程序: 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语句后面的两条语句应用“{)”括起来。