若有以下标志符定义:char c=’c’;int a=4;float f=3.14;double d=1.212;则表达式c+a/(int)d+f的结果类型是(   )

若有以下标志符定义:char c=’c’;int a=4;float f=3.14;double d=1.212;则表达式c+a/(int)d+f的结果类型是(   )


A、

float


B、

char


C、

int


D、

double


【正确答案】:D
【题目解析】:

当不同类型的量进行混合算术运算时,系统自动进行合理的类型转换,编译器就会自动把低级类型向高级类型转换。数据类型级别由低到高分别为:char→int→float→double。转换时由低级别向高级别转换。会自动提升为参与表达式求值的最上级类型double。故本题选D。

也可以在程序中使用强制类型转换运算符:static_cast或const_cast。


Top