有声明“int i=1,y=2;”则执行表达式“(x>y)&&(--x>0)”后x的值是多少?

请详细解答下,谢谢!

首先是声明“int x=1,y=2;”吧。
执行表达式后x还是等于1。
这是个短路表达式的问题。因为(x>y)等于假,而“(x>y)&&(--x>0)”是个与运算,左边的结果已经可以决定整个表达式的值,就是不论右边结果怎样,都不影响整个表达式的值,所以右边的将被忽略。
不应该依赖这样的表达式中的运算。不然会有错误隐患。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-09-19
int i=1,应该是x=1吧
如果是的话x=1,因为x>y,条件不成立,&&运算就不会执行了。

有声明“int i=1,y=2;”则执行表达式“(x>y)&&(--x>0)”后x的值是多少...
首先是声明“int x=1,y=2;”吧。执行表达式后x还是等于1。这是个短路表达式的问题。因为(x>y)等于假,而“(x>y)&&(--x>0)”是个与运算,左边的结果已经可以决定整个表达式的值,就是不论右边结果怎样,都不影响整个表达式的值,所以右边的将被忽略。不应该依赖这样的表达式中的运算。不然会...

int x=1,y=2,执行表达式(x>y)?++x;++y后,x和y的值??
我的 int x=1,y=2,执行表达式(x>y)?++x;++y后,x和y的值?? 我来答 1个回答 #热议# 生活中有哪些成瘾食物?皮鞋你妹啊 2016-10-09 知道答主 回答量:19 采纳率:50% 帮助的人:2.8万 我也去答题访问个人页 展开全部 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 为你推荐:特...

已知:int x=1,y=2,z;,则执行语句z=x>y?x++:y--后,变量z的值_百度知 ...
main(){int x=1,y=2,z;z=x>y?x++:y--;printf("%d %d",z,y);} x>y,则z=x++否则z=y--表达式y--的值先取y值作为表达式的值,即z=2.再y值减1

int x=1 y=2 z;执行z=X>Y||X&&Y求z的值 求详解
|| (x&&y);因为X小于Y,及前一部分为0;又因为X、Y都大于0(C语言看做为真),故后一部分为真,再两部分相或(有一部分为真就为真),故结果为真(默认的值就是1),故最后结果是Z=1;

设int X=1,float Y=2,则表达X\/Y的值是多少
注意自动类型转换 x是int的,y是float,类型等权float高于int 故x\/y=(int)1\/(float)2.0变成了 x\/y= (float)1.0\/(float)2.0=0.5 (float类型的)(如果y是int的,那么x\/y就是0)

若int x=1,y=2,则表达式(y=0)?++x\/--y:++y的运算结果是多少?
结果是1.因为赋值语句的值取决于赋值对象的值,所以(y=0)表达式的值是0,所以执行分号后的语句。此时执行赋值语句后 y=0;执行 ++y;先加一再取值 所以整个表达式的值是1

已知int x=12,y=3;执行程序do{x\/=y--;}while(x>y);后,变量x的值是_百 ...
x\/=y--;x=12\/3=4,y=3-1=2 x>y x=x\/y=4\/2=2,y=2-1=1 x>y x=x\/y=2\/1,y=1-1=0 x>y x=x\/y=1\/0到这里会出错,程序崩溃

设有int x=1,y=1,z=1,c;则执行语句c=--x&&--y||--z;后,x,y,z的值分...
的值为1,则无须对b进行运算.表达式按优先级可分为二部分:第一部分:--x&&--y 第二部分:第一部分值||--z;--x 为前置运算,先将x值减1后,再参与运算,则结果为0;根据优化,第一部分后面的--y就不运算了,值仍然为1。第一部分的值为0。再计算第二部分。0 ||--z;z 的值还要减1,...

...int类型,且x=1,y=2,则printf( %d%d ,x,y,(x,y))的输出结果是...
printf函数在输出时,是根据格式说明符的个数输出的,如果函数中有多余的项将不予输出:如果有输出项少于格式说明符,则出错,不能输出正确的结果。本题中逗号表达式(x,y)只返回Y的值。此时格式说明的个数是2,而输出项的个数是3,因此printf函数只输出前两项。

已知Int x=2,y=1,z;,则执行语句z=!x&&--y;后,y的值为嘛是1不是0 求解...
回答:--y是先自减后执行,也就是说在执行与运算时y已经是0了

相似回答
大家正在搜