14、已知:int x=1,y=2,z=0,则执行z=y>x?(10+x,10-x):(20+y,20-y)后,值为( ) 求解了,说吓为什么

如题所述

z=9,x,y不变,因为:(y = 2)> (x = 1),所以:z = (10+x,10-x) = (11,9),又因为:逗号表达式取最右端值,所以:z = 9;
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-09
y > x 成立, 执行 10+x,10-x 而逗号运算符优先级低,所以执行后变为 11 , 9 返回 9 ,x y 的值没有被运算 所以没变 ,结果 x=1,y=2 ,z= 9
第2个回答  2013-04-09
值为(10+x,10-x);
代入x就是(11,9);
具体执行
1.赋值z=y z=2;
2.判断z>x 2>1 true 问号表达式 得到(10+x,10-x);

14、已知:int x=1,y=2,z=0,则执行z=y>x?(10+x,10-x):(20+y,20-y)后...
z=9,x,y不变,因为:(y = 2)> (x = 1),所以:z = (10+x,10-x) = (11,9),又因为:逗号表达式取最右端值,所以:z = 9;

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

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

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

int x=1,y=2,z=3;则表达式z+=x>y?++x:++y的值是?
2). 执行z+= 【执行过程】表达式z+=x>y?++x:++y等价于z=z+(x>y?++x:++y).变量赋值后即为z=3+(1>2?++1:++2),1)由于1>2为假(即表达式结果为0),因此返回表达式++y;2)执行++y.++y是先对y变量执行自加,在返回自加后结果,即为3(即为(x>y?++x:++y)的结果).3)执行z+=....

...后,表达式z+=x>y?++x:++y的值是( )intx=1,y=2,z=3;
结果是6 z+=x>y?++x:++y的意思是 z=z+x>y?++x;++y 因为x>y为假, 所以x>y?++x;++y这个运算出来是++y, 那么式子就成了 z=z+++y 而++运算符是先自增然后才执行下一条语句, 那么y就先办成3,然后才会和z相加的 这样就计算出来了z=3+3 ...

设int x=1,y=3,z; 执行z=x>y?++x:y++后z的值是?
程序先判断x>y是否成立,显然不成立,那么就返回冒号后面表达式(y++)的值,此表达式的值是先引用再++ 所以最后 z应该等于3

已知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;,执行下列程序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=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

相似回答