有以下程序: #include<stdio.h> main() {inta=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); } 程序输出( )。

admin2020-10-26  25

问题 有以下程序:
#include<stdio.h>
main()
{inta=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、编译有错
B、0,0,0,3
C、1,1,2,0
D、0,1,2,0

答案A

解析 C语言规定else总是和之前与其最近的且不带else的if配对,题目中,if(a=1)b=1;c=2;默认省略的else已经配对了,下一句else没有匹配,if为非法else。另外if的判断条件a=1是赋值语句,不是判断语句,此处也会产生编译错误。因此答案为A选项。
转载请注明原文地址:https://jikaoti.com/ti/kLD0FFFM
0

最新回复(0)