若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2⼀4的值是

2024-11-24 01:43:36
推荐回答(4个)
回答1:

public class T0609 {
public static void main(String args[]) {
int a=7;
float x=2.5f;
float y=4.7f;
System.out.println(x+a%3*(int)(x+y)%2/4);
}
}

===========测试结果=============
2.5

说明:
这个关键是优先级问题
1)括号永远优先级最高
2)无括号的默认优先级
* / 运算优先级最高
% 运算优先级次高
+ -运算优先级最低
所以 是 2.5 + {7%[3*(x+y)]%(2/4)} 这个式子的结果

回答2:

* / 运算优先级最高
% 运算优先级次高
+ -运算优先级最低
%是求余符号
所以 是 2.5 + {7%[3*(x+y)]%(2/4)}

正确答案:2.5

回答3:

#include
void main ()
{ int a=7;
float x=2.5,y=4.7;
printf("%d",int(x+a%3*(int)(x+y)%2/4));
}结果为2

回答4:

自己上机去试去,然后想想为啥结果会这样,这样的题还需要发到百度知道上来吗?