一道c语言题目,高手解答!!!!详细说明答案是什么,并解释原因(重点解释y的值)。谢谢

下列程序的输出结果是______。main(){intx=1,y=0,z;z=(x<=0)&&(y-->=0);printf(“%d%d%d%\n”,z,x,y);}A)... 下列程序的输出结果是______。
main()
{int x=1,y=0,z;
z=(x<=0)&&(y- ->=0);
printf(“%d %d% d%\n”,z,x,y) ;}
A)0 -1 -1 B)0 -1 0 C)0 1 0 D)0 1 -1
y不是减减了吗??怎么最后y还是0???
展开
 我来答
liularryhao
2011-10-10 · TA获得超过448个赞
知道答主
回答量:85
采纳率:0%
帮助的人:92.2万
展开全部
选C)0 1 0
后面两个就不用多说了,分别是x和y的值1和0;
第一个呢,首先x<=0显然为假即0,&&是并的意思,就是要两边全部为真才是真的,现在左边已经是假的了,所以(x<=0)&&(y- ->=0)这个式子就是假的,即0,所以z=0;
综上,结果就是0 1 0啦~~
附:&&运算符是先看左边的,左边为错的话,右边不会计算的。
望采纳~~
追问
y不是减减了吗???
追答
注意看我的附:&&运算符是先看左边的,左边为错的话,右边不会计算的。
所以y--是不计算的,y还是0
百度网友e18852f
2011-10-10 · TA获得超过460个赞
知道小有建树答主
回答量:240
采纳率:50%
帮助的人:147万
展开全部
选 C

先讲一下这个 && 运算符
这是一个2元运算符,短路运算(下面解释什么是短路运算)
若 A && B
如果 A 是假,编译器则不去计算表达式B的真假,整个表达式结果就是假
若 A 为真,编译器才去计算B的真假

同理:运算符 | | 也是短路运算。

所以,我猜你其他的应该都知道吧。我就不解释了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chinasunsunsun
2011-10-10 · TA获得超过1.6万个赞
知道大有可为答主
回答量:5494
采纳率:75%
帮助的人:3486万
展开全部
判断(x<=0)=0
判断y>=0=1
0&&1=0
z=0
x=1
y=0
0,1,0
C
y的值一开始赋值为0,后来没改过
追问
y不是减减了吗???
追答
我以为你打错了。。。
那就是y=-1
因为--表示先用再减的,--y则先减再用的
y-->=0是0>=0
然后y=y-1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yying0907
2011-10-10 · 超过13用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:33万
展开全部
这个题目应该是选D (x<=0)&&(y- ->=0)这个表达式的是个与运算 先判断两个括号里面的真假 只要一个为假Z就是0;然后X是的本身是没变的 所以X还是1; Y 的话 做了一个Y--的运算 所以Y等于-1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式