有以下程序 main( ) { int i=1,j=1,k=2; if((j++||k++)&&i++) printf("%d,%d,%d\n",i,j,k); }

执行后输出的结果是()。A.1,1,2B.2,2,1C.2,2,2D.2,2,3... 执行后输出的结果是()。
A. 1,1,2 B. 2,2,1 C. 2,2,2 D. 2,2,3
展开
 我来答
waddppt
推荐于2018-04-13 · TA获得超过352个赞
知道小有建树答主
回答量:143
采纳率:0%
帮助的人:66万
展开全部
选C,因为if((j++||k++)&&i++)中是两个逻辑运算,逻辑运算的执行是只要能判断其真假就行了,不一定要全部执行到,对于第一个逻辑运算&&,(两者都为真才为真,或其中一个表达式为假就为假)首先判断&&左端的表示式,若其为假则无需判断其右的表达式,若其为真则两边表达式都需判断,而&&左面表达式为真,所以&&右面表达式还需判断,所以i++是执行过的,再看(j++||k++),逻辑运算||,两端表达式其一为真就为真,两者为假才为假,由于||左表达式是真所以无需再判断其或的表达式,所以k++不执行,j++执行了。综上应选C。
furious_tauren
2011-08-24 · TA获得超过4056个赞
知道大有可为答主
回答量:1913
采纳率:100%
帮助的人:774万
展开全部
C

if((j++||k++)&&i++)

关键在(j++ || k++) 因为j++为真, 所以该表达式直接返回真, k++没得到机会执行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沉默_月光
2011-08-24
知道答主
回答量:34
采纳率:0%
帮助的人:11.6万
展开全部
选 C , k++不执行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2017-06-14 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6705万
展开全部
C正确,选C。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fqxdcvouun
2011-08-24 · TA获得超过311个赞
知道答主
回答量:663
采纳率:100%
帮助的人:386万
展开全部
递归函数中,x的值分别是6,3,1,递归函数中,位于递归调用语句后的语句的执行顺序和各个被调用函数的顺序相反,所以输出136。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式