问题 填空题

有以下程序:
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",ab,c,d);
程序输出______。

答案

参考答案:编译有错

解析: 本题是一道关于if语句的陷阱题。考生在阅读代码的时候一定不要被代码的书写格式或缩进所迷惑。在if语句中,每一个else子句都要紧跟着一个if子句,否则编译会出错。题目中if(a=1)后的b=1;c=2;是两条语句,其中b=1;是if的子句,而c=2;已经不属于if子句,所以后面的else子句与前面的if子旬隔了一条语句,这是错误的。所以答案是编译有错。

单项选择题 共用题干题
单项选择题