求高手解答解释!!!谢谢!

分析下列程序,写出运行结果。#include<stdio.h>voidmain(){intx=6,y,z;x*=18+1;printf("%d,",x--);x+=y=z... 分析下列程序,写出运行结果。
#include <stdio.h>
void main()
{
int x=6,y,z;
x*=18+1;
printf("%d,",x--);
x+=y=z=11;
printf("%d,",x);
x=y==z;
printf("%d\n",-x++);
}
答案为114 125 -1
不明白答案怎样来 的....
不好意思,第二个答案是124
求C编程高手!
展开
种喜3R
2011-06-04 · TA获得超过108个赞
知道答主
回答量:53
采纳率:0%
帮助的人:0
展开全部
是这样的,你仔细看一下,x=y==z这一行的赋值,相当于是x=(y==z)咯,(y==z)你懂的吧?判断一下y跟z是否相等,是则x=1,否则是0~ 这儿y跟z是相等的,所以x应该被赋值为1,
-x++这块儿,因为++写在x后面,所以是输出的只是-x,也就是-1,然后才执行x++。如果要把x加1再输出的话应该写成++x。
以上~
追问
x=1后,-x++不是相当于(-x)++,那答案为什么不是-1+1=0?
追答
对滴,但是(-x)++是在你printf之后执行的操作,也就是这个时候已经输出-1啦,如果你后续还有啥操作的话,比如你再来一个  printf("%d\n",x),你会看到x的值是0恩~
弓畅右二
2011-06-04 · TA获得超过332个赞
知道答主
回答量:94
采纳率:100%
帮助的人:93.3万
展开全部
x*=18+1
x=6*19=114
x--:是先用x,在对x-1
x+=y=z=11;
x=124,不是125。124=113+11,这时y=z=11
x=y==z;
x=1,因为是判断y=z?因为是对的,所以返回1
-x++意思是:先用x显示-x即:-1
在对x+1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2c2c60e
2011-06-04 · TA获得超过136个赞
知道答主
回答量:123
采纳率:0%
帮助的人:60.5万
展开全部
第一个 X*=18+1意思是X=X*19=6*19=114 X-- 应该是113
第二个 X+=11意思是X=X+11=12
第三个 X=Y==Z意思是X=Y与Z比较 Y=Z=11 故X=0
X++=1 -X++=-1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
642871424
2011-06-04
知道答主
回答量:13
采纳率:0%
帮助的人:13.5万
展开全部
x=6*19=114;
输出:114
x=x-1=113;
x=x+11=124;
输出124;
因为y==z为真,所以x=1;
输出-1;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
clariexu
2011-06-04
知道答主
回答量:31
采纳率:0%
帮助的人:3.7万
展开全部
前两个数会算,最后那个负一不懂怎么来的。来个高手解答一下呗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式