在C语言中,若 int w=1,x=2,y=3,z=4; 则表达式w>x?w:z>y?z:x的值是多少。具体步骤

如题所述

4。

1、先执行z>y?z:x,判断z是否大于y,结果为真,取z的值,结果为4;

2、再执行w>x?w:4,判断w是否大于x,结果为假,结果为4。

若有多个条件表达式像这样连在一起:x=<表达式1>?<表达式2>:<表达式3>?<表达式4>:<表达式5>···执行顺序是从右到左依次判断再求出最后的x,即所谓的右结合性。

扩展资料:

1、优先级与求值顺序无关。如a+b && b*c,虽然*优先级最高,但这个表达式求值顺序是从左到右。

2、优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。

3、相同优先级中,按结合性进行结合。大多数运算符结合性是从左到右,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。

4、基本的优先级需要记住:

指针最优,单目运算优于双目运算。如正负号

先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7.

逻辑运算最后结合。

参考资料:

百度百科-条件表达式

运算符优先级

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-02-27
这条语句可以转换成if语句,这样写应该明白很多
if (w>x){
return w;
}else if(z>y){
return z;
}else{
return x
}
显而易见,w不大于x,y大于在,表达式为z的 值,4
而且最好加个括号,这样写:w>x?w:(z>y?z:x)本回答被提问者和网友采纳
第2个回答  2013-03-20
答案是4
先加上括号进行简化
(w > x ? w : (z > y ? z : x))
因为w比x小,所以取问号表达式的第二个分支,第二个分支是一个问号表达式,并且z > y条件成立,所以取z的值,为4
第3个回答  2013-03-20
这个是逗号表达式,第一个意思是如果w>x,那么就取w的值,反之取z,第二个是取的值是否大于y,如果是,取z的值,否则x的值,而且逗号运算先后顺序大于普通运算符,答案是4
第4个回答  2013-03-20
考察逻辑的那里 。

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

c语言中,若有变量说明语句:int w=1,x=2,y=3,z=4;,则表达式w>x? w...
1>2?1:(3<4?3:4)先运行括号里面的 3<4为假 执行表达式3 结果为4 下面就是1>2?1:4这样就一目了然了1>2为假 结果就是4

...若w=1,x=2,y=3,z=4,则条件表达式w<x?w:y<z?y:z的值是()。_百度知 ...
执行结果为1,也就是w的值。这句话首先判断w<x条件是否成立成立就返回w否则判断y<z是否成立,成立反回y,不成立返回z,由于w<x条件成立,所以返回w的值。如果w小于x为真则取w为假取y,如果y小于z为真则取y为假则取z。

设int x=1,y=2,z=3,w=4,则表达式:x<y?x:z<w?x:w的结果为怎么会是3啊
(x): [(z<w)] ? (x) : (w),因为该语句的结合方式是从右至左的。该题主要考的是形如a;b;c的语句。该语句的运算法则是:先算a语句,(1)、若a语句为真(即为1)则求b语句的值,并把b语句的值作为整句语句的值;(2)、若a语句为假(即为0)则求c语句的值,并把c语句的值作...

《C语言程序设计》试题2 求解 请勿乱填 非常感谢
21.若w=1,x=2,y=3,z=4;则条件表达式w>x?w:y<z?y:z的结果为_3_。22.共用体类型的标志是 union 关键字。23.定义整型一维数组a含有10个元素且初始化为0的语句是_int a[10]=0;__。24.在C语言中,打开文件的函数名是_fopen()_ 。25.在C语言中“逻辑运算符”有三种,它们分别...

c语言。。求解???若定义:int w=1,x=2,y=3,z=4,a=5,b=6; 则执行语句(
选B 解释:w>x不成立,所以a=0,那么&&运算符的左值(a=w>x)整体为False;因为&&的短路效果,就是左值为False,则不计算右侧表达式;所以b还是为最初赋值的6 综上:a=0,b=6

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

int x=2,y=3,z=4,则表达式x+y>z&&y==z的值为?详细一点先算什么后算...
先x+y>z是真继续y==z是假 结果是false 0 tq0cdxa | 发布于2013-08-15 举报| 评论 1 0 false,因为&&是要求所有条件都成立的,即&&前面返回的要为true,而且&&后的也要返回为true,如果是 || 的话那么只要其中一个成立条件成立,那么就在成立的条件处停止,并执行判断成立的语句。就你这题的话是从走...

C语言中,设int x=2,y=3,z=4;则下面的表达式中值不为1的表达式是...
单引号标示字符,说得简单一点就是代表的引号内字符的ASCII码。比如本题中的 'x'就代表120,'z'代表122.就这样。

‍int x=2,y=3,z=4; 则表达式x+y&&(x=y)的值为___?
表达式x+y&&(x=y)的值为1,因为有符号&&,可知是判断命题的真假。详细说明:x的值与表达式的值 程序运行有规则的,CPU有它自己的处理方式,程序的x+y&&(x=y),并不是像数学中的那样加上一个数,x会变大。也不是按照数学计算的方式处理。然后后面的x=y是赋值语句,而不是判断相等x==y。计...

相似回答