GESP 二级 · GESP 202309 C++ 二级 第 18 题

判断题 · 答案 B

← 整套速查表 GESP 二级 全部真题

题目

C++ 表达式 7.8 / 2 的值为 $3.9$,类型为 float。

答案:B

解题思维

这题考的是C++浮点字面量的默认类型。拿到题先别急着算数,先看7.8后面有没有f后缀,再看整数2会不会被提升,这才是解题关键。

常见错误

很多考生看到7.8就默认是float,或者以为整数参与运算结果自动变float,其实C++里浮点字面量默认是double,只有加f才是float;整数参与运算时会被提升为double,不会变成float。

详细解析(节选)

1. 考点定位与命题视角

这道题考查的是C++中浮点数字面量的默认类型以及隐式类型提升规则。命题人专门卡住一个“默认认知盲区”——绝大多数考生凭直觉把7.8当成float,却忽略了整数2参与运算时会被提升为double,导致结果类型误判。

2. 概念厘清:字面量与类型提升

在C++中,不带后缀的浮点数字面量(如7.8)默认是double类型;只有加上f或F后缀(如7.8f)才是float。整数字面量(如2)默认是int。

当int与double进行二元运算时,根据C++的“向更高精度提升”规则,int会被提升为double,运算结果类型为double。只有当两个操作数都是float时,结果才是float。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断