单选题
有下列程序:
#include<stdio.h>
main()
{int a=-1,b=2;
for(;a++ && b--;)
printf("%d,%d,",a,b);
printf("%d,%d",a,b);
}
程序执行后的输出结果是______。
-
-
-
-
【正确答案】
C
【答案解析】[解析] for循环中,表达式a++&&b--的值决定循环是否执行。
第一轮循环时,a初值为-1,b初值为2,由于a++是后缀自增运算符,b--是后缀自减运算符,a++&&b--的值等价于-1&&2,结果为1;执行for循环的循环体,此时a的值为0,b的值为1,输出a、b的值为0、1。
第二轮循环时,a的初值为0,b的初值为1,表达式a++&&b--首先执行a++,结果为0,a自增为1;由于短路原则,b--不再执行,整个表达式的值为0,for循环终止;执行循环体外的printf()语句,输出1、1。故本题答案为C选项。