C语言 int x=3,y=4,z=5; 那 !((x<y)&&!z||1) 是什么意思?

2025-04-14 09:53:17
推荐回答(2个)
回答(1):

答案是1。

涉及到的运算符: ! () + - && /

运算符优先级为:() ! / + - &&

运算过程:

x=3,y=4,z=5

!(x+y)+z-1&&y+z/2

!(3+4)+5-1&&4+5/2

所以表达式计算步骤为

!(3+4)+5-1&&4+5/2 -> !7+5-1&&4+5/2

!7为 0

-> 0+5-1&&4+5/2

5/2 整数除整数得整数 2

-> 0+5-1&&4+2

-> 4&&6

逻辑运算 &&

扩展资料

C语言运算符的优先级:

如果同一优先级的运算符,结合次序由结合方向所决定。

参考资料来源:百度百科-运算符优先级

回答(2):

根据运算符的优先级和结合性来看
!((x先算(x然后(x然后刚才的false和1相||,结果是true,
整体取反,最终结果是false。
好吧。。。看到最后发现不用算,||那有个1,必为true,然后取反,是false。。。