C语言 int x=3,y=4,z=5; 那 !((x<y)&&!z||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语言运算符的优先级:

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

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-28
根据运算符的优先级和结合性来看
!((x<y)&&!z||1)
先算(x<y)为true,!z为false,
然后(x<y)和!z相&&,结果为false,
然后刚才的false和1相||,结果是true,
整体取反,最终结果是false。
好吧。。。看到最后发现不用算,||那有个1,必为true,然后取反,是false。。。本回答被网友采纳
第2个回答  推荐于2016-03-23
!是非
&&是与
|| 是或
根据运算符号的优先级!>&&>||
先运算x<y和!z
然后运算&& 、其结果运算|| ,可以理解为(x<y&&!z)||1本回答被提问者采纳
第3个回答  2015-04-06
声明int类型变量x.y.并初始化

先判断
相似回答