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

admin2009-02-10  22

问题 有以下程序:    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。
转载请注明原文地址:https://kaotiyun.com/show/WXXp777K
0

最新回复(0)