有以下程序: 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); } 程序输出(

admin2011-06-13  37

问题 有以下程序:    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语句后面的两条语句应用“{)”括起来。
转载请注明原文地址:https://kaotiyun.com/show/djPp777K
0

最新回复(0)