问题
单项选择题
有以下程序:
main()
int i=1,j=1,k=2;
if((j++||k++)&&i++)
printf("%d,%d,%d\n",i,j,k);
执行后输出结果是( )。
A.1,1,2
B.2,2,1
C.2,2,2
D.2,2,3
答案
参考答案:C
解析: 首先计算if语句后面的表达式值,先计算运算符&&前面括号里的||运算。在||运算中先计算j++,值为1(j的值为2),为真,后面的k++将不再计算,k的值依旧为2。计算&&后面的表达式i++,值为1(i的值变为2)。整个表达式的值为真,所以执行后面的输出语句,最后输出的i,j和k的值为2、2和2。所以,C选项为所选。