A-A+

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

2022-08-06 01:25:13 问答库 阅读 174 次

问题详情

有以下程序: main() { int i=1,j=2,k=3; if(i++==1&&(j==3||k++==3)) printf("%d%d%dn",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。

考点:程序