xcsc.net
当前位置:首页 >> 设x=2.5,A=7,y=4.7,求x+A%3*(int)(x+y)%2/4 求解题... >>

设x=2.5,A=7,y=4.7,求x+A%3*(int)(x+y)%2/4 求解题...

x+a%3*(int)(x+y)%2/4 //先算(int)(x+y),x+y取整得7 =x+a%3*7%2/4 //算a%3=1 =x+1*7%2/4 //算1*7=7 =x+7%2/4 //算7%2=1 =x+1/4 //算1/4=0 =x+0 =2.5

因为(int)是说运算结果强转成int,所以0.25从浮点数转完int就是0了 或者可以这么理解: (int)(x+y) = 11 11%2 = 1 1/4 = 0 (因为int运算只取整数部分)

(int)(x+y) -- 括号里的先做,(int)(2.5+4.7)=(int)(7.2)=7. 式子变 x + a%3 *7 %2 /4; a%3 -- a=7; 7除3 取余数,余数得1, 式子变 x + 1 *7 %2 /4; 1 *7 乘法先做 得 7 式子变 x + 7 %2 /4; 7 %2 -- 除2 取余数运算,余数得1, 式子变 x + ...

得3.5 按运算符优先级,求解步骤: [1](x+y)=2.5+4.7=7.2 [2] (int)(x+y)=7 [3] a%3=7%3=1 [4] 1*7=7 [5] 7%2=1 [6] 1%4=1 [7] x+1 = 2.5+1 = 3.5 ---- 程序验证: #include int main(){ float x=2.5,y=4.7; int a=7; float v; v=x+a%3*(int)(...

()运算级最高 先做(x+y)结果为7.2 然后做(int)7.2 结果为7* / % 的优先级相同 结合方向是自左至右 即(((a%3)*7)%2)/4 得出的结果再与x运算

根据运算符优先级,先算x+后面的。a%3就是7对3取余,至此算式简化为:x+1*(int)(x+y)%2/4。1*可以省略,先算括号里的,再次简化为x+(int)7.2%2/4。此时将7.2转为int型,算式变为x+7%2/4,先算7%2,结果为1,算式至此简化为x+1/4。而1/4...

int a = 7; float x = 2.5, y = 4.7; x+a%3*(int)(x+y)%2/4? 这个主要是考数据类型优先级及其转换的. (unsigned)char/short->int->unsigned int->long->unsigned long->long long->unsigned long long->double..... 另外float一律转换成double

#include main(){ float x=2.5; int a=7; float y=4.7; double z; z=x+a%3*(int)(x+y)%2/4; printf("z=%10f\n",z); }

#include void main() { int a=7; float x=2.5,y=4.7,r; r=x+a%3*int(x+y)%2/4; printf("%f\n",r); } 运行结果 2.500000

一共出现这么几个操作符:(),+,*,%,/,() 优先级顺序依次为:(分块),(强制类型转换),*,+,/,%,其中 / 和 % 优先级相同 所以运算的顺序应该是: 1.执行分块 (x+y) = 2.5 + 4.7 = 7.2; 2.执行强制转换 (int)7.2 = 7; 3.做乘法运算 3 * 7 = 21; 4.现在...

网站首页 | 网站地图
All rights reserved Powered by www.xcsc.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com