有以下程序: main() { int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3))

14 查阅

有以下程序: 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=||k++=3)”时,表达式“i++=1”的值为真,其值为1,表达式“++j=3”的值为真,根据短路原理,右边的表达式“k++=3”不再进行运算,括号中表达的值为1,作与运算后整个表达式的值也为1,输出i,j,k时,由于未执行过k,所以它们的值分别为为2,3,3。

计算机二级