已知:int x=1,y=2,z;,则执行语句z=x>y?x++:y--后,变量z的值

如题所述

#include<stdio.h>
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
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-06-17
z的值是2
。。。

已知:int x=1,y=2,z;,则执行语句z=x>y?x++:y--后,变量z的值_百度知 ...
{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=3,z;执行语句z=x>y?++x:y--;后,z的值为多少?为什么?_百度...
++i的意思是在使用i变量之前把i+1,而i++的意思是在使用i变量之后把i+1 理解了这一点上面的题目就很清楚了:x>y返回的是false,所以z=y--;减号在后面所以先把y的值赋给了z之后才去改变y的值,所以z=3。当然如果z=--y的话,z就等于2了 爪机打字不易,希望对你有帮助,还望采纳 ...

已知int x=1 ,y=2, z;,执行语句 z=(x+y, x-y)?
执行后z值为-1 子表达式x+y, x-y是一个逗号表达式,逗号表达式的值由最末项决定,即x-y 代入具体数值1-2=-1

设有定义int x=1,y=2,z=3;执行下列程序后,输出结果是if(x>y)z=x,x...
if(x > y)后面如果没有{}的话,他能管紧挨着他的一条语句,z = x;这条语句是在归if管的,相当于 if(x > y) { z = x;} x = y;y = z;

x=1,y=2,z=3; x=y--<=x||x+y!=z 执行完语句之后x,y的值 答案是1,1,求...
先计算y--,y=1 y--是先返回值后y-1,y--的值为2 之后计算x+y值为2 算式变为:x=2<=x||2!=z 之后计算2<=x,结果为0 算式为:x=0||2!=z 之后计算2!=z,结果为1 算式为:x=0||1 之后计算0||1,结果为1 最后x=1 最终x=1,y=1 一步步分析不难的,主要是考察运算符优先...

已知int x=1, y=2, z=3,执行以下语句后x, y, Z的值是()。
if(x>y)Z=X;如果X>Y 执行Z=X,因为X不大于Y,所以Z=X这句话不执行,继续向下执行;X=Y;X=20;Y=Z;Y=30;Z还是原来的30。已知int x=1,y=2,z=3;,以下语句执行后x,Y,Z的值是()。if(x>y) z=x;x=y; y=z;(A)x=1,y=2,z=3 (B)x=1,y=3,z=3 (C)x=2...

int x=1,y=2,z=3;求z+=x>y? ++x:++y
答案是6。z+=x>y? ++x:++y可以写成z=z+x>y? ++x:++y,由于三目运算符是右结合,可以得到x=2,y=3,进而x>y不成立,那么x>y? ++x:++y的值为3,最终得到z=z+x>y? ++x:++y=3+3=6

有定义int x=1,y=2,z=3;,执行下列程序if(x>y)z=x;x=y;y=z;printf(%d...
因为if语句后面没有用花括号来标明作用域,所以程序自动从第一个分号开始判断。而x = 1,y = 2,不满足if条件,所以第一个z = x不会执行;直接执行第二个语句,x = y = 2,;然后执行第三个语句y = z = 3.而z 本身没有变,所以最后输出为x , y ,z 分别为2,3,3.

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

若已定义intx,y,z;执行语句x=(x=1,y=z=2,y++,z++);后,x为什么为2
x为2,这考查的是一个逗号表达式,结果等于最后一个表达的值,因此,先算括号的,1赋值给x,再算2赋值给z,z再赋值给y,此时y==z==2,所以x==2。最后x,y再分别自加1。

相似回答