c语言运算符优先级问题

2024-10-30 07:27:57
有3个网友回答
网友(1):

*,/,%属于同一优先级(高于+,-),从左到右执行运算。
()改变优先级次序,县计算括号中的表达式.
所以:
x+a%3*(int)(x+y)%2/4
=x+a%3*7%2/4
=x+7%3*7%2/4
=2.5+1*7%2/4
=2.5+7%2/4
=2.5+1/4
=2.5+0
=2.5

其中(int)(x+y)先计算x+y=7.2再取整数部分7.

网友(2):

选 b
因为 a%3=1 (int)(x+y)=7
接着算 a%3*(int)(x+y)=7
接着 7%2=1
接着 1/4=0.250000
最后 2.5+0.250000=2.750000

网友(3):

答案是A;
这样的:我每一步写一个计算结果
x+1*(int)(x+y)%2/4
x+1*7%2/4
x+1*1/4
x+1/4
x+0
x
所以是A
我已经在编译器上编译过.答案肯定....