有以下程序 #include <stdio.h> main() { int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2; else d=3; printf("%d,

admin2021-07-09  25

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

最新回复(0)