两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是

43两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是.(A)。main(){intx;scanf(“%d”,&x);if(x++>5)printf(“%d”,... 43两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是.( A )。
main()
{intx;
scanf(“%d”, &x);
if(x++>5) printf(“%d”, x);
else printf(“%d\n”, x--);}
A) 7和5B) 6和3C) 7和4D) 6和4
为什么不选C?求详解!
展开
 我来答
博学小赵爱生活
高能答主

2020-07-26 · 专注于食品生活科技行业
博学小赵爱生活
采纳数:457 获赞数:111844

向TA提问 私信TA
展开全部

当从键盘上输入6时,x=6,x++表达式的值为6,接着x自加1,即x=7,故x++=6>5成立,输出x的值7;当从键盘上输入4时,x=4,x++表达式的值为4,接着x自加1,即x=5,故x++=4>5不成立,输出x--(后置运算),所以先输出x的值5,之后再进行自减1操作。

i++ 和 ++i 是不一样的。这两个的优先级是不一样的。在查表的时候应该能注意到有两个++和--,i++ 是先用 i 再自加,++i 是先自加再用 i。

扩展资料:

优先级与求值顺序无关。如a+b && b*c,虽然*优先级最高,但这个表达式求值顺序是从左到右。

优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。

相同优先级中,按结合性进行结合。大多数运算符结合性是从左到右,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。

基本的优先级需要记住:

指针最优,单目运算优于双目运算。如正负号

先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7.

逻辑运算最后结合。

参考资料来源:百度百科-运算符优先级

guojingcha
2013-06-19 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.3万
采纳率:42%
帮助的人:9827万
展开全部
输入6,执行x++>5的运算,先加1,x成为7,大于5,条件成立,输出7.
输入4,还是行x++>5的运算,先加1,x成为5,不大于5,条件不成立,执行else部分。注意,在这里,是x--,意思是先输出x的值,然后在减1.输出5,然后x变成4.答案是7,5,就是A.
追问
其实你的回答有问题·····不能选为满意
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shaobin545
2010-06-06 · TA获得超过613个赞
知道小有建树答主
回答量:203
采纳率:0%
帮助的人:144万
展开全部
x++跟x--都是先执行当前语句然后再加减的~
例如:
if(x++>5)这个语句是先之行(x>5)再执行(x=x+1)的
相同的
printf("%d\n",x--) 是先输出来x 再进行x=x-1;的~

所以输入6时 先判断6>5 正确 然后 6+1=7 然后输出
输入4时 先判断4>5 错误 然后 输出x 输出之后4-1=3; (注意是先输出来4再运算变成3的)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱的最高境界是经得起平淡的流年
推荐于2017-12-12 · TA获得超过493个赞
知道小有建树答主
回答量:556
采纳率:0%
帮助的人:186万
展开全部
1题。遇到 ++x时 x先加一 再执行 遇到x ++时 x的值不变,执行完当前操作后,x的值再加一x--和--x同理

2题。k=(++a<0)&&!(b--<=0);
这一句从左向右执行,先判断(++a<0)
++a; //a=0
所以++a<0为假

由于是求&&的结果,
所以判断为(++a<0)为假后直接付给k,不再执行!(b--<=0)
所以k=0, //逻辑假,0
a=0, //执行了一遍++a得到
b=4 //保持原值
追问
看不懂···
追答
哪题不懂?k=(++a<0)&&!(b--<=0);这个语句分成两部分来看k=和(++a<0)&&!(b--<=0)
在第二个语句里面要分别判断(++a<0)和!(b--<=0)先判断(++a<0)显然为假。那么逻辑值就是0。与语句的逻辑值必须两边同时是1值才能为1的。到这里就不必再往后执行了。k就是0了,逻辑值就是假呗。懂吗?也就是说k的值要么为1要么为0.当两个都为1的时候k是1,至少有一个为0的时候k的值就是0.。。。这题考察的是与语句的知识
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2017-12-12
知道答主
回答量:3
采纳率:0%
帮助的人:2457
展开全部
1.输入6,由于x++等于x=x+1,
执行完if语句中的条件后,x的值为7,所以输出x=7,这个你应该明白
2.输入4,同样执行if条件语句,此时x=5,
执行printf语句,由于x--是在变量使用之后再对其进行减1操作,所以是先执行了x=5,然后再对x减1,所以输出的x=5
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式