单选题
在C语言中,不同类型的数据混合运算中,要先转换成同一类型后进行运算。设一表达式中包含有int、long、char和double类型的变量和数据,则表达式最后的运算结果是______,这4种类型数据的转换规律是______。
【正确答案】
C
【答案解析】[解析] 不同类型数据的混合运算时,遵循的原则是“类型提升”,即较低类型转换为较高类型,最终结果为double类型。4种类型数据转换规律为char→int→long→double。
如一个long型数据与一个int型数据一起运算,需先将int型转换为long型,然后两者再进行运算,结果为long型。如果float型和double型数据一起运算,虽然它们同为实型,但两者精度不同,仍要先将float型转换成double型再进行运算,结果亦为double型。所有这些转换都是由系统自动进行的,这种转换通常称为隐式转换。
注意在强制类型转换中,从int转换为float时,虽然不会发生溢出,但由于尾数位数的关系,可能有数据舍入,而转换为double则能保留精度。double转换为float亦是如此。从float或double转换为int时,小数部分被截断,且由于int的表示范围更小,还可能发生溢出。