若x=13,y=20,z=4,下列各表达式的结果是什么?
1) (z>=y>=x)?1:0
2) z>y&&y>=x
3)!(x<y)&&!x||z
4)x<y?x++:++y
5)z+=x>y?x++:++y
C语言求助。。
答案:4 悬赏:60 手机版
解决时间 2021-07-21 06:39
- 提问者网友:两耳就是菩提
- 2021-07-20 06:00
最佳答案
- 五星知识达人网友:野味小生
- 2021-07-20 06:40
1.)0一次向右判断(z>=y>=x)?1:0
显示z>=y成立吗?不成立结果是0然后0>=x吗? 成立返回1,否则回复0,所以结果为0
2)z>y&&y>=x
先计算z>y,在算y>=x最后计算&&,所以结果为0
3)!(x<y)&&!x||z
先计算!(x<y),在算!x||z最后计算&&,所以结果为0
4)x<y?x++:++y
如果x<y返回x++否则++y
全部回答
- 1楼网友:孤老序
- 2021-07-20 09:51
(1)0(2)0(3)0(4)++y(5)x++
比较运算符自左向右结合,其优先级别高与自赋值运算符,在:(条件)?表达式1:表达式2
表示条件成立则1,否则为2
- 2楼网友:詩光轨車
- 2021-07-20 08:40
1.0
2.0
3.1 不确定!
4.x++
5.++y
后三题..额……不清楚!
- 3楼网友:不甚了了
- 2021-07-20 08:00
这些题目只要搞懂各种运算符的优先级就不是问题了
1.这是个三目运算符,因此先求括号里面得,又因为都是>=所以从左到右判断,先判断z>=y为假返回0,0显然不会>=13所以整体为假,就执行冒号后面的0
2.>的优先级高于>=高于&&,所以这道题先判断z是否大于y,显然不大于为假,因为是是个&&运算,有一个为假则整体为假,所以结果为0
3.优先级的顺序为:()高于!高于<高于&&高于||,因此先判断小括号里的x<y为真,然后是!非真为假非假为真,所以!(x<y)整体为假!x为假,这个时候该式子可简化为0&&0||z,即0||z,因为z不为0所以z是真,||运算中有一个为真结果即为真,所以最后结果为真,答案返回1
4.x明显小于y所以执行++y,即先将y加1使用,然后y 的值再加一,所以输出结果为21
5.+=的优先级低于>所以先判断x>y为假返回0,然后再运算z+=0为4真,所以执行后面的x++语句,该语句是先使用x,再将x的值加一,因此输出13
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯