在C语言中,若有如下定义: int a=5,b=8; float x=4.2,y=3.4; 则表达式:(noat)(a+b)/2+(int)x%(int)y的值是( )。

admin2019-08-10  26

问题 在C语言中,若有如下定义:
int a=5,b=8;
float x=4.2,y=3.4;
    则表达式:(noat)(a+b)/2+(int)x%(int)y的值是(    )。

选项 A、7.500000
B、7
C、7.000000
D、8

答案A

解析 本题考查强制类型转换及混合运算中的类型提升。具体的计算步骤如下:a+b=13;(float)(a+b)=13.000000;(noat)(a+b)/2=6.500000;(int)x=4;(int)y:3;(int)x%(int)y=1;加号前是float,加号后是int,两者的混合运算的结果类型提升为float型。故表达式的值为7.500000。
    强制类型转换:格式为“TYPE b=(TYPE)a”,执行后,返回一个具有TYPE类型的数值。
    类型提升:不同类型数据的混合运算时,遵循“类型提升”的原则,即较低类型转换为较高类型。
转载请注明原文地址:https://kaotiyun.com/show/VuCi777K
0

相关试题推荐
最新回复(0)