有以下程序: #nelude main() {int a=0,b=0,C=0,d=0; if(a=1)b=1;c=2; else d=3; pfintf(’’%d,%d,%d,%d\n’’,a,b,c,d); } 程序运行后的输出结果是( )。

admin2020-11-27  25

问题 有以下程序:
#nelude
main()
{int a=0,b=0,C=0,d=0;
if(a=1)b=1;c=2;
else d=3;
pfintf(’’%d,%d,%d,%d\n’’,a,b,c,d);   
}
程序运行后的输出结果是(  )。

选项 A、1,1,2,0
B、0,0,0,3
C、编译有错
D、0,1,2,0

答案C

解析 if语句只执行后面的一个语句或一个用大括号包括的程序段。本题中if语句中的条件若为真,则只执行b=1;这一条语句,后面的c=2是一个和if分支结构无关的语句,因此,再后面的else语句便成为一个独立的语句,因为前面没有if分支与其对应,因此会在编译过程中出错。如果改成if(a=1){b=1;c=2}elsed=3:则编译正确。
转载请注明原文地址:https://kaotiyun.com/show/cp3p777K
0

最新回复(0)