若已有声明"int x=4,y=3;",则表达式x<y?x++:y++的值是? (怎么考虑优先级?)

如题所述

x<y?x++:y++这个表达式的意思是 如果x<y为真 就执行x++ 如果x<y为假 就执行y++ 这里显然是执行y++ 返回值是3
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-02
4 这是问号运算符,如果?前面那个式子成立,最后值是逗号前面那个式子,如果不成立就是后面的式子的值。。
第2个回答  2012-07-02
x=4
y=4
第3个回答  2012-07-02
先返回x,后++
第4个回答  2012-07-02
3

表达式 x<y?x++:y++ 的值为 ?要讲清楚怎么算的 谢谢
其实就相当于x<y?x:y;只不过在这句话后面,如果x<y,会执行x++,x>=y会执行y++,但是这里的x++和y++是在这句话之后执行的,也就是:比如x=3,y=5那么因为x<y,那么把x的值(这个时候是3)赋给z,也就是z=3;在z=3之后在执行x++;也就是x=4了,但是跟这个式子没关系了。

...int x=4,y=5;”,则表达式"y>x++? x- - : y++"的值为5,为什么?_百度...
我运行过这个程序,x=4,y=5是不是你的答案错了,因为运算符的优先级是>比? : 高,所以先执行y>x++,而且x++是后置运算符,先执行运算再+1,所以先比较y=5比x=4大,然后x+1=5,然后执行三目运算符? :当三目运算符是真的时候执行冒号前面的语句,假的时候执行冒号后面的语句,因为之前判断...

int x=3,y=3,z=1,则printf("%d\\n,z+=x<y?x++:y++);的值为多少?
由于+=优先级较高所以1+3=4.4不小于y所以执行y++ 3+1=4 结果是4

关于c++的问题。int x=4,y=5 表达式y>x++?x--:y++。。。的值是_百度...
这是个问号表达式,如果y大于x则执行x--反之执行y++,但是执行之前都会执行x++;那么此时x==,y==,比较是比较的x++之前的值,所以执行x--;此时x==5,但是先执行x,所以表达式的值为5,之后x==4y==5;

c语言中,若x=3,y=2,z=1,则表达式z+=(X<Y?x++;y++)的值是
分号打错了,应该是冒号!X<Y ? x++ : y++ 意思是如果x<y,则执行x++,否则执行y++;例子中x>y,所以表达式相当于 z+=y++;y++值为2,所以相当于z+=2 z初值为1,计算后z=3

C语言题库,求发一份
11.已有声明“int x=2,y=1,z=0;”,以下表达式的值不为0的是 (11) 。 A. x==(x=0,y=1,z=2) B. z>y>x C. x>y==1 D. x>(y=2)12.若e1、e2和e3是表达式,以下选项中与语句while(e1){e2,e3;}功能等价的语句是 (12 ) 。 A. for( ;e1;e3)e2; B. for( ;e1;e2)e3; C. ...

x,y都是整型变量,x=1,y=2,printf("%d",x+y,x++,y++)的值为什么是5
结果是3

...int x=2,y=3,z 为什么z=(x++,y++)时z=3 而z=(x+3,y+4)时z=7_百...
z=(x++,y++);运算表达式,Z实际上等于y++的值,但是++在变量后,会先执行这条语句,将y增加1前的值付给Z,所以z=3,然后再执行y+1的操作,你可以试试将语句修正为z=(x++,++y);那么z = 4.

int x=1,y=2,z=3;则表达式z+=x>y?++x:++y的值是?
因此x>y++x:++y的意思是判断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是先对...

...A、if(x<y) {x++;y++;} B、if(x!=y) scanf("%d",&x) else scanf...
if(x!=y) scanf("%d",&x)漏分号else scanf("%d",&y)漏分号

相似回答