问题 单项选择题

有以下程序 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

解析:根据优先级顺序,先计算内层括号的值。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。

单项选择题
单项选择题