初学C语言,感觉好难。请教各位大侠一道程序运算题目,解答过程需详细点,附上推理依据。谢谢!

两次运行下面的程序如下,如果从键盘上分别输入6和4,输出的结果是多少?#include<stdio.h>main(){intx;scanf("%d",&x);if(x++... 两次运行下面的程序如下,如果从键盘上分别输入6和4,输出的结果是多少?
#include<stdio.h>
main()
{int x;
scanf("%d",&x);
if(x++>5)printf(%d\n",x);
else printf(%d\n",x--);
展开
 我来答
fsw945
2015-01-03 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:80
采纳率:0%
帮助的人:75.1万
展开全部
6对于输出7
4对于输出5
输入6时,++是后缀自加,即先用x的值用完后再将x加1;
这里6>5执行执行if语句,判断完成后x加1,x变成7然后显示

输入4时也是先判断4>5不成立要执行else,判断完成后++还有把x的值加1,x变成5后显示printf(%d\n",x--)这里也一样即先用x在x减1。即先显示5,x再减1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tanwei0904
2015-01-03
知道答主
回答量:6
采纳率:0%
帮助的人:3.3万
展开全部
对于输出主要看if...else...语句,然后判断里面是个x++>5?,这里就要知道C语言的运算符的优先级:
1 () [] . ->
2 ! ~ -(负号) ++ -- &(取变量地址)* (type)(强制类型) sizeof
3 * / %
4 + -
5 >> <<
6 > >= < <=
7 == !=
8 &
9 ^
10 |
11 &&
12 ||
13 ?:
14 = += -= *= /= %= |= ^= &= >>= <<=
15 ,
可以看出自增“++”优先于“>”
接下来看自增“++”,有++x和x++。
前一个是先加1,然后取值;后一个是先取值,后加1。
所以,X=6的时候:
等价于6++>5,这个式子的意思是:先取值(判断)6>5,然后6+1。
所以进入if..else..的第一条:输出x,即7
X=4时:
同上,先取值(判断),后自增。4<5,4+1
进入if..else..的后一条:输出x--;这里的输出同一个道理:先取值(输出),后自增
即5

纯手工解答,求给分:D
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-01-03
展开全部
输入6,6>5,所以输出6+1=7
输入4,4<5,说以输出4+1=5;
i++和i--都是先使用i的值,在进行加减
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
查拉图斯特拉51
2015-01-03
知道答主
回答量:2
采纳率:0%
帮助的人:2538
展开全部
输入6得到输出7.输入4得到输出3
追问
我也是认为是7与3,但教材答案是:7 与 5,因为初学,没有实践经验, 我百思不得解,完全昏了。谢谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式