问题
单项选择题
有以下程序:main(){int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf("%d %d %d\n",i,j,k);}程序运行后的输出结果是______。
A.1 2 3
B.2 3 4
C. 2 2 3
D.2 3 3
答案
参考答案:D
解析:执行“i++==1&&(++j==3||k++==3)”时,表达式“i++==1”的值为真,其值为 1,表达式“++j==3”的 值为真,根据短路原理,右边的表达式“k++==3”不再进行运算,括号中表达的值为 1,作与运算后整个 表达式的值也为 1,输出 i,j,k 时,由于未执行过 k,所以它们的值分别为 2,3,3。