有以下程序  #include <stdio.h>  main()  {int a=﹣2,b=2;   for(;++a&&--b;)   ;   printf("%d,%d\n",a,b);  }  程序运行后的输出结果是(

admin2022-04-01  25

问题 有以下程序
 #include <stdio.h>
 main()
 {int a=﹣2,b=2;
    for(;++a&&--b;)
      ;
    printf("%d,%d\n",a,b);
 }
 程序运行后的输出结果是(          )。

选项 A、0,1
B、0,0
C、1,﹣1
D、0,2

答案A

解析 for(;++a&&--b;);for循环的表达式1和表达式3为缺省项,判断条件表达式++a&&--b;当a=﹣2,b=2;,第一次执行了++a和--b,,表示为真,循环条件成立,第二次执行++a为0,由于&&运算符,当第一个条件为假时,不执行第二个条件,所以b=1,发生短路,--b不执行了。因此a,b的最终值为0,1。故答案为A选项。
转载请注明原文地址:https://jikaoti.com/ti/XHd0FFFM
0

最新回复(0)