已解决问题 - 浏览151次

下一个已解决问题
HDXHDX

勤学秀才


请教一个C语言问题

有以下程序
main()
{int i=1,j=1,k=2;
if((j++||k++)&&i++)printf("%d,%d,%d ",i,j,k);
}
执行后输出结果是
A)1,1,2B)2,2,1C)2,2,2D)2,2,3

希望回答者能解释清楚。

补充 - 2个月前

我觉得应该选C的,但答案给出的选项居然是D

补充 - 2个月前

反了,我觉得应该是D,但是编译后是C

还可输入300个字

请输入上图中的验证码,字母不区分大小写。

点击查看更多 请教 问题 一个 相关信息

最佳答案 - 由提问者2个月前选出

应该就是c,
因为或“||”条件,是这样编译的,比如if(a||b)
如果a条件为TRUE了,就不会往下走判断b条件了,而是直接认为if条件就是TUUE, 就像你这个例子一样,因为j++ 就已经是2了,if条件已经为“真”,所以不会在走K++,而&& 运算符,是两边的条件都要判断的。所以就应该选择c

0 0

还可输入300个字

请输入上图中的验证码,字母不区分大小写。

提问者对最佳答案的评价 *

多谢指教!

返回知识堂首页>>

如果您没能找到需要的内容,请
提出您的问题>>


猜你喜欢看

更多
1