求高手解答解释!!!谢谢!
分析下列程序,写出运行结果。#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编程高手! 展开
#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编程高手! 展开
5个回答
展开全部
是这样的,你仔细看一下,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++这块儿,因为++写在x后面,所以是输出的只是-x,也就是-1,然后才执行x++。如果要把x加1再输出的话应该写成++x。
以上~
追问
x=1后,-x++不是相当于(-x)++,那答案为什么不是-1+1=0?
追答
对滴,但是(-x)++是在你printf之后执行的操作,也就是这个时候已经输出-1啦,如果你后续还有啥操作的话,比如你再来一个 printf("%d\n",x),你会看到x的值是0恩~
展开全部
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一个 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
第二个 X+=11意思是X=X+11=12
第三个 X=Y==Z意思是X=Y与Z比较 Y=Z=11 故X=0
X++=1 -X++=-1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
x=6*19=114;
输出:114
x=x-1=113;
x=x+11=124;
输出124;
因为y==z为真,所以x=1;
输出-1;
输出:114
x=x-1=113;
x=x+11=124;
输出124;
因为y==z为真,所以x=1;
输出-1;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前两个数会算,最后那个负一不懂怎么来的。来个高手解答一下呗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询