问题 单项选择题

有以下程序
main()
int i=1, j=l,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语句的应用。首先计算if语句后面的表达式值,先计算运算符&&前面括号里的“‖”运算.在“‖”运算中先计算j++,值为1(j的值为2),为真,后面的k++将不再计算,k的值依旧为2。计算&&后面的表达式i++,值为1(i的值变为2)。整个表达式的值为真,所以执行后面的输出语句,最后输出的i,j和k的值为2,2和2.所以,C选项为所选。

填空题
问答题 简答题