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