【这个表达式的值是多少?】

来源:百度知道 编辑:UC知道 时间:2024/06/11 08:05:23
x+a%3*(int)(x+y)%2/4
设x=2.5,a=7,y=4.7
值为多少?怎么算的?运算顺序是??

根据C语言运算符优先级,
第1步,(int)(x+y)=(int)(7.2)=7
第2步,a%3=7%3=1
第3步,1*7=7
第4步,7%2=1
第5步,1/4=0,注意,1,4是整数,/是整除,结果是整数商,不是0.25
第6步,x+0=x=2.5

这种题目……

说实话,跟编译器有点关系……
我碰到过不同的编译器不同结果的情况……
尤其是运算顺序

2.5

第一步,a%3 = 1; (int)(x+y) = 7;
2.5 + 1*7%2/4

7%2 = 1; 1/4 = 0;

所以2.5+0 = 2.5

直接到电脑上验证一下,答案就出来了