有以下程序: #include <stdio.h> main( ) { int i=1,j =2,k =3; if(i ++ == 1&&( ++j ==3 ‖ k ++ ==3) )

admin2009-01-15  27

问题 有以下程序:       #include <stdio.h>       main( )       {  int i=1,j =2,k =3;           if(i ++ == 1&&( ++j ==3 ‖ k ++ ==3) )              printf( "% d % d % d \n" , i, j, k );    }    程序运行后的输出结果是(   )。

选项 A、123
B、234
C、223
D、233

答案8

解析 判断i++==1&&(++j==3||k++==3)时,先执行i++==1,由于i++是先运算,后自加,这时i的值为1,所以表达式i++==1的值为真,其值为i;然后执行++j==3,由于++j是先自加,后运算,这时j的值为3,所以表达式++j==3的值为真,不再计算右边表达式k++==3,括号中表达式的值为1,“&&”运算后整个表达式的值也为1,输出i,j,k时,由于k没有进行过运算,所以输出结果为2,3,3。
转载请注明原文地址:https://kaotiyun.com/show/tzXp777K
0

最新回复(0)