有以下程序: #include main() { int a=1,b=2,c=3,d=0; if(a:=1&&b++==2) if(b!=2||c- - !=3) printf("%d,%d,%d\n",a,b,c;

admin2021-06-15  11

问题 有以下程序:
  #include
  main()
  {  int a=1,b=2,c=3,d=0;
    if(a:=1&&b++==2)
    if(b!=2||c- - !=3)
    printf("%d,%d,%d\n",a,b,c;
    else printf("%d,%d,%d\n",a,b,c;
    else prinff("%d,%d,%d\n",a,b,c;
  }
  程序运行后的输出结果是(    )。

选项 A、1,3,2   
B、1,3,3
C、1,2,3   
D、3,2,1

答案B

解析 在if语句中,else总是和最近的if配对,所以进入第一个if语句中条件判断时,因为是逻辑与操作需要两边运算对象的值均为非零值,才为真,所以需要逐个执行判断的结果为1,进入第二个if语句条件判断,因为b!=2条件成立所以整个条件表达式的值为真,所以不再执行逻辑或的第二个运算对象(c--!=3)c的值不变,也不再执行第一个else语句。打印a的值1,b的值3,c的值3。
转载请注明原文地址:https://kaotiyun.com/show/zftp777K
0

最新回复(0)