A-A+

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

2022-08-05 20:06:48 问答库 阅读 171 次

问题详情

有以下程序 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
解析:根据优先级顺序,先计算内层括号的值。j自加1等于3,所以++j==3成立,表达式为1,由于1“|”任何数都为1,所以不用计算“||”后面的表达式,所以k=3,最后计算“&&”之前的表达式,i先进行判断再自加1,所以i++==1成立,自加1后i=2。if语句的条件为“1”,所以输出i、j、k的值分别是2,3,3。

考点:程序