一道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??? 展开
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??? 展开
4个回答
展开全部
选C)0 1 0
后面两个就不用多说了,分别是x和y的值1和0;
第一个呢,首先x<=0显然为假即0,&&是并的意思,就是要两边全部为真才是真的,现在左边已经是假的了,所以(x<=0)&&(y- ->=0)这个式子就是假的,即0,所以z=0;
综上,结果就是0 1 0啦~~
附:&&运算符是先看左边的,左边为错的话,右边不会计算的。
望采纳~~
后面两个就不用多说了,分别是x和y的值1和0;
第一个呢,首先x<=0显然为假即0,&&是并的意思,就是要两边全部为真才是真的,现在左边已经是假的了,所以(x<=0)&&(y- ->=0)这个式子就是假的,即0,所以z=0;
综上,结果就是0 1 0啦~~
附:&&运算符是先看左边的,左边为错的话,右边不会计算的。
望采纳~~
追问
y不是减减了吗???
追答
注意看我的附:&&运算符是先看左边的,左边为错的话,右边不会计算的。
所以y--是不计算的,y还是0
展开全部
选 C
先讲一下这个 && 运算符
这是一个2元运算符,短路运算(下面解释什么是短路运算)
若 A && B
如果 A 是假,编译器则不去计算表达式B的真假,整个表达式结果就是假
若 A 为真,编译器才去计算B的真假
同理:运算符 | | 也是短路运算。
所以,我猜你其他的应该都知道吧。我就不解释了。
先讲一下这个 && 运算符
这是一个2元运算符,短路运算(下面解释什么是短路运算)
若 A && B
如果 A 是假,编译器则不去计算表达式B的真假,整个表达式结果就是假
若 A 为真,编译器才去计算B的真假
同理:运算符 | | 也是短路运算。
所以,我猜你其他的应该都知道吧。我就不解释了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
判断(x<=0)=0
判断y>=0=1
0&&1=0
z=0
x=1
y=0
0,1,0
C
y的值一开始赋值为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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个题目应该是选D (x<=0)&&(y- ->=0)这个表达式的是个与运算 先判断两个括号里面的真假 只要一个为假Z就是0;然后X是的本身是没变的 所以X还是1; Y 的话 做了一个Y--的运算 所以Y等于-1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询