单选题 在C语言中,若有如下定义:
int a=5, b=8;
float x=4.2, y=3.4;
则表达式:(float)(a+b)/2+(int)x%(int)y的值是______。
【正确答案】 A
【答案解析】[解析] 本题考查强制类型转换及混合运算中的类型提升。具体的计算步骤如下:a+b=13;(float)(a+b)=13.000000;(float)(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类型的数值。
类型提升:不同类型数据的混合运算时,遵循“类型提升”的原则,即较低类型转换为较高类型。