有以下程序 main() { int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf("%d%d%d\n",i,j,k); } 程序运行后的输出结果是

admin2013-02-23  37

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

答案8

解析 根据优先级顺序,先计算内层括号的值。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。
转载请注明原文地址:https://jikaoti.com/ti/YTn0FFFM
0

最新回复(0)