有如下程序: #include main() { int a=0,b=1; if(a++&&b++) printf("TRUE"); else printf("FALSE"); printf("-OUT:a=%d,b=%d\n",a,b); } 程序运行后

admin2015-07-30  31

问题 有如下程序:
#include
main()
{
int a=0,b=1;
if(a++&&b++)
printf("TRUE");
else
printf("FALSE");
printf("-OUT:a=%d,b=%d\n",a,b);
}
程序运行后的输出结果是(    )。

选项 A、FALSE _OUT:a=1,b=1
B、FALSE_OUT:a=0,b=2
C、TRUE_OUT:a=1,b=2
D、TRUE_OUT:a=0,b=1

答案A

解析 逻辑与运算符遵循“短路求值”策略,即只有在仅靠左操作数的值无法确定该逻辑表达式的结果时,才会求解右操作数。表达式(a++&&b++)中,左操作数a++的值为0,已经可以确定整个逻辑表达式的结果为0,因此右操作数b++不再求解,进入else分支执行,a的值加1,b值不变,因此答案为A选项。
转载请注明原文地址:https://jikaoti.com/ti/NTi0FFFM
0

最新回复(0)