若有定义:int a=2,b=3;float x=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值是()。
A.3.5 B.3.0 C.2.5 D.2.0
(float)(a+b)将(a+b)强制类型转换为浮点数5.0,5.0/2=2.5,
后面同理,将float转换为int,3%2=1
输出2.5+1=3.5
有解释一下的吗
LEK 回复 1751977055: int a=2,b=3; //a和b的值分别为2和3 float x=3.5,y=2.5; //x和y的值分别为3.5和2.5 表达式(float)(a+b)/2+(int)x%(int)y,按照运算符的优先级: (int)x和(int)y将将x和y的值分别转换为整数,即3和2。 a+b等于2+3,结果为5。 (float)(a+b)/2,先将a+b的结果5转换为浮点数,再除以2,结果为2.5。 最后求取的结果是2.5+(int)x%(int)y,即2.5+3%2,由于%优先级高于+,所以先计算3%2,结果为1,再和2.5相加,结果为3.5。
A
用户登录可进行刷题及查看答案
登录后提交答案