wmjy.net
当前位置:首页 >> int x=2,y=3,z=4:则表达式!(x+y)>z的值为____. >>

int x=2,y=3,z=4:则表达式!(x+y)>z的值为____.

"!"优先于"+"优先于">" !x+y>z 就是(!x+y)>z 那就是(0+3)>4 ,结果是0

标准c并没有bool型,没有true和false,这里显然是成立的,所以结果是1

x+(y>!z) 等价于: x+(y>(!z)) z=4(非0),所以!z的值就是0,所以原式化为: x+(y>0) y=3,所以(y>0)成立,所以(y>0)的值就是1,所以原式可化为: x+1 综上,原表达式的值就是x+1,由于x=2,所以原表达式的值就是3

先x+y>z是真继续y==z是假 结果是false 0

x=2 y+z=7 2||7结果为真,也就是1

x+y=5 !(x+y)=0 又z=2,0不大于2,关系式不成立 最终的结果应为0

只是等于1的,我是经过turbo c2.0编译过的,答案应该没什么问题的,程序是: main() { int x,y,z,k; x=3;y=4;z=5; k=0; k=!(x+y)+z-1&&y+z/2; printf("%d",k);} 答案为什么会等于1呢?那是因为运算级别的问题,根据运算级别,实现算括号里面的先...

int x=3,y=2,z; z=x-->y++?1.2:3.4 z=1.2 由于z是int类型所以小数被截掉 剩下 1

1 这就相当于一个逻辑判断式 左边是一个逻辑表达式 右边也是 左右逻辑表达式的值均为1 1==1 所以为真 即1

网站首页 | 网站地图
All rights reserved Powered by www.wmjy.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com