C++ 表达式 7.8 / 2 的值为 $3.9$,类型为 float。
这题考的是C++浮点字面量的默认类型。拿到题先别急着算数,先看7.8后面有没有f后缀,再看整数2会不会被提升,这才是解题关键。
很多考生看到7.8就默认是float,或者以为整数参与运算结果自动变float,其实C++里浮点字面量默认是double,只有加f才是float;整数参与运算时会被提升为double,不会变成float。
这道题考查的是C++中浮点数字面量的默认类型以及隐式类型提升规则。命题人专门卡住一个“默认认知盲区”——绝大多数考生凭直觉把7.8当成float,却忽略了整数2参与运算时会被提升为double,导致结果类型误判。
在C++中,不带后缀的浮点数字面量(如7.8)默认是double类型;只有加上f或F后缀(如7.8f)才是float。整数字面量(如2)默认是int。
当int与double进行二元运算时,根据C++的“向更高精度提升”规则,int会被提升为double,运算结果类型为double。只有当两个操作数都是float时,结果才是float。