设int x=1,y=2,z=3,w=4,则表达式:x<y?x:z<w?x:w的结果为怎么会是3啊

如题所述

这道C语言提目应该如此看(x<y)? (x): [(z<w) ? (x) : (w)],注意不要写成[(x<y)? (x): [(z<w)] ? (x) : (w),因为该语句的结合方式是从右至左的。该题主要考的是形如a;b;c的语句。该语句的运算法则是:先算a语句,(1)、若a语句为真(即为1)则求b语句的值,并把b语句的值作为整句语句的值;(2)、若a语句为假(即为0)则求c语句的值,并把c语句的值作为整句语句的值。本题中,先求(x<y)?为1,再求(x)为1作为 整个式子的值。 最后结果:1
你的答案肯定是错的,3这个值只有在Z里面有,而整个式子只有取X、W的值,故结果肯定不可能为3。如果结果要为3,式子应变为x>y?x:z>w?x:z,或者x<y?z:z<w?x:w
温馨提示:内容为网友见解,仅供参考
无其他回答

设int x=1,y=2,z=3,w=4,则表达式:x<y?x:z<w?x:w的结果为怎么会是3啊
最后结果:1你的答案肯定是错的,3这个值只有在Z里面有,而整个式子只有取X、W的值,故结果肯定不可能为3。如果结果要为3,式子应变为x>y?x:z>w?x:z,或者x<y?z:z<w?x:w

...int w=1,x=2,y=3,z=4; 则表达式w>x?w:z>y?z:x的值是多少。具体步骤...
2、再执行w>x?w:4,判断w是否大于x,结果为假,结果为4。若有多个条件表达式像这样连在一起:x=<表达式1>?<表达式2>:<表达式3>?<表达式4>:<表达式5>···执行顺序是从右到左依次判断再求出最后的x,即所谓的右结合性。

...有int w=1,x=2,y=3,z=4;则表达式w<x?w:y<z?y:z的值是 。 A)4 B...
因为条件运算符的结合方向是自右至左的,所以表达式就可以变为w<x?w:(y<z?y:z),代入数据就为1<2?1:(3<4?3:4),进一步计算括号里的结果变为为1<2?1:3,最后整个条件表达式的结果为1。

假设有条件int x=1,y=2,z=3;则表达式z=x<y?x:y的值是多少,
答案是1,?:是三目运算符,意思是如果X小于Y,取X的值,反之取Y值

1.int x=2,y=3,z=4.则x<z?y:z的结果是多少?
表达式x<z?y:z的结果为3(也就是y的值),因为x<z为真

int x,y,z; 则表达式(x=1,y=2,z=3)的值是多少?
逗号表达式的值为最后一个逗号后式子的值 因此(x=1,y=2,z=3)的值为z=3的值,即3

若int x=2,y=3,z=4 则表达式 x<z?y:z 的结果是
x<z?y:z的计算方式是:若x<z为真,则y是表达式的值,否则z是表达式的值。现x=2,y=3,z=4,则若x<z为真。所以,表达式的值就是y,即3。整数表示 整数有几种书写形式,程序中的整数一般采用十进制写法。用十进制方式写出的一个整数就是普通数字字符组成的一个连续序列,其中不能有空格、换行...

int w=4,x=3,y=2,z=1; printf("%d\\n",(w<x? w:z<y? z:x));
难点在这句:(w<x ? w : z<y ? z : x)首先要知道?这个写法 条件 ? 成立:不成立再分析 w<x ? 成立:不成立因为w = 4 x = 3 所以 w > x 条件不成立!进入后面的语句分析 z<y ? z : x因为 z = 1 y = 2 , 条件成立, 取z 值 即 1 ...

假设x=1,y=2,z=3,则表达式y+=z--\/++x的值是多少?答案是3,怎么算出来的...
z--先计算后赋值,在这个式子里其值是3 ++x先赋值后计算,所以是2 y+=3\/2 等效于 y=2+(3\/2)=2+1(如果X,Y,Z都是int变量)话说你这个题坑还是挺多的。其实你应该写在c或者PHP里分步执行下,观察每个变量的值就明了了。using System;public class Test { public static void Main(...

问到C++的题目,若有x=1,y=2,z=3,则表达式(x<y?x:y)==z++的值是? 还有...
(x<y?x:y)==z++值是false = 是赋值操作符 比如定义一个变量 int x; 则x值是未被赋值的,x有可能是任何值。x=0就将0赋值给x,意味着变量x的值是0。== 是判断两个值是否相等 如x=1, y=2,则x==y即为1==2,为false

相似回答