单选题 23.在C语言中,若有如下定义:
int a=5,b=8;
float x=4.2,y=3.4;
则表达式:(noat)(a+b)/2+(int)x%(int)y的值是( )。
【正确答案】 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类型的数值。
类型提升:不同类型数据的混合运算时,遵循“类型提升”的原则,即较低类型转换为较高类型。