有以下程序: #include 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",

admin2016-04-07  22

问题 有以下程序:   
    #include
    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、编译有错
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;默认将与if配对的else省略了,下一句else d=3;中else没有匹配的if,为非法else。另外,if的判断条件a=1是赋值语句,不是判断语句,此处也会产生编译错误。因此答案为A选项。   
转载请注明原文地址:https://jikaoti.com/ti/Gdi0FFFM
0

最新回复(0)