设X=2.5,a=7,y=4.7,表达式x+a%3*(int)(x+y)%2/4的值是?

来源:百度知道 编辑:UC知道 时间:2024/05/22 05:56:34
最好说明一下过程~~谢谢..答案说是2.5

%是取余运算 所以7%3=1
(int)(x+y)这里用了一个强制转换 把x+y的值转换为整型即7 1*7=7
7%2=1
/得到的结果是整数 舍去小数部分 1/4=0
0+2.5=2.5
所以答案是2.5

2.5

我怎么记得这题我们的课本有过。。。呵呵。。

设X=2.5,a=7,y=4.7,表达式x+a%3*(int)(x+y)%2/4的值是

一个字符一个字符看 要注意优先级哦
把a%3*(int)(x+y)%2/4拆分成a%3 * (int)(x+y)%2 / 4 1.a%3 结果为1
2.(int)(x+y) 结果为 int(2.5+4.7)=7 7%2=1;
3. 1*1/4 整数除整数 得整数 1/4=0

这样a%3*(int)(x+y)%2/4 的值为0 了
x+a%3*(int)(x+y)%2/4=x=2.5

答案是:2.5
1.程序
#include <stdio.h>
void main()
{
double x=2.5,y=4.7,mun;
int a=7;
mun = x+a%3*(int)(x+y)%2/4;
printf("%lf",mun);

}
2.分析:%取余 *乘 /取整
x+a%3*(int)(x+y)%2/4;中%,*和/优先级相同,顺序计算。a%3=7%3=1 , (x+y)=7.2, 7.2%2=1, 1/4=0.25

所以(int)(x+y)%2/4取整后为0

所以 x+a%3*(int)(x+y)%2/4 = 2.5+1*0=2.5

两个整型相除结果还是整型
即1/4=0