初学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--); 展开
#include<stdio.h>
main()
{int x;
scanf("%d",&x);
if(x++>5)printf(%d\n",x);
else printf(%d\n",x--); 展开
4个回答
展开全部
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对于输出主要看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
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的值,在进行加减
输入4,4<5,说以输出4+1=5;
i++和i--都是先使用i的值,在进行加减
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输入6得到输出7.输入4得到输出3
追问
我也是认为是7与3,但教材答案是:7 与 5,因为初学,没有实践经验, 我百思不得解,完全昏了。谢谢!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询