定义:int x=3,y=4,z=5;则表达式!(x+y)+z-1&&y+z/2的值是
来源:百度知道 编辑:UC知道 时间:2024/06/21 22:27:31
要求说具体算法
这里涉及到的运算符: ! () + - && /
优先级:() ! / + - &&
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
逻辑运算 &&
所以是1
C++ 运算符优先级列表 (很详细的): http://www.cppblog.com/aqazero/archive/2006/06/08/8284.html
C语言的优先级(从上到下依次递减):
醋-初等,4个: ( ) [ ] -> 指向结构体成员 . 结构体成员
坛-单目,9个: ! ~ ++ -- -负号 (类型) *指针 &取地址 sizeof长度
酸-算术,5个: * / % + -减
味-位移,2个: << >>
灌-关系,6个: < <= > >= == 等于 != 不等于
味-位逻,3个: & 按位与 ^ 按位异或 | 按位或
落-逻辑,2个: && 逻辑与 || 逻辑或
跳-条件,1个,三目: ? :
福-赋值,11个: = += -= *= /= %= >>= <<= &= ^= |=
豆-逗号,1个: ,
你可以发现算术运算符高于逻辑运算符,而非!高于算术运算符。
所以该表达式可以等于((!(x+y))+
x+a%3*(int)(x+y)%2/4 ,x = 2.5,a = 7,y = 4.7
x,y 都是int, x++=y++ 为什么错?
int x,y;x=3.y=4.y=(x++,++x,x+y,x++).x=?,y=?
int a=2,b=3; float x=3.5,y=2.5; (float) (a+b)/2+(int)x%(int)y怎么算?
已知 int a=1,y=3;执行y=9-(--y)-(--y)后,为什么x=7?
怎样用c来求值x a%3*(int)(x y)%2/4 x=2.5 y=4 a=7
x+a%3*(int)(x+y)%2/4的运算顺序是怎么样的,x=2.5,a=7,y=4.7那么结果是多少
设X=2.5,a=7,y=4.7,表达式x+a%3*(int)(x+y)%2/4的值是?
3(x+y)(x-y)+4(x-y)^2=?
有下定义 int x=5,y;y=x--&&(++x)||x--;求X,y的值