C++ 表达式 int(3.14) 的值为 3。
看到 int() 先别慌,它不是四舍五入,而是‘向零截断’,直接把小数部分砍掉,3.14 变 3,选 A 就对了。
多数同学会凭直觉觉得 int() 是四舍五入,所以把 3.14 当成 4,或者纠结要不要加 0.5 再转换。其实 C++ 里 int() 对正数就是直接取整数部分,负数也是向零靠拢,跟数学里的‘向下取整’不一样。这一题坑就坑在‘常识’上,命题人故意用看似合理的‘四舍五入’思维来误导你,只要你记住‘截断’二字,就不会掉进 B 项的陷阱里。
【考点】C++ 基本类型转换|浮点转整型截断
1. 考纲定位 GESP 一级 C++ 语法模块,重点考察‘强制类型转换’。命题人卡住绝大多数考生的哪个弱点?——以为 int() 只会做四舍五入,而忽略了 C++ 里强制类型转换是‘截断’而非‘取整’。
2. 解题思维(拆解与通法) 解题链:看到 int() → 识别为强制类型转换 → 回忆 C++ 规则:浮点转整型是‘截断’而非‘四舍五入’ → 3.14 的整数部分就是 3 → 得证。这一类题的通法是‘看符号 → 看函数 → 看规则’。
3. 陷阱拆解(命题人的套路) 陷阱:B 项‘错误’对应的是‘以为 int() 会四舍五入’。命题人利用‘直觉陷阱’——我们日常说的‘取整’往往指四舍五入,但 C++ 里 int() 是‘截断’。绝对化表述‘值为 3’就是答案,偷换概念把‘四舍五入’当成‘截断’,这就是掉坑的根源。
4. 反命题思维(教练升华) 反命题:如果改成 int(-3.14),答案会变成 -3,因为截断是向零靠拢。若换成 int(3.14 + 0.5),你就得考虑四舍五入的‘阈值’了——命题人要是这么改,就是考你‘浮点取整的边界条件’。刷到类似题时,先问自己:这题想考我‘截断’还是‘四舍五入’?
5. 考频与趋势 C++ 程序设计在题库中已考过 261 题,覆盖 5 个级别,其中 GESP 一级就有 78 题,说明‘强制类型转换’是高频考点。基础语法整体考过 1295 题,GESP 一级占 332 题,占比近三成,可见一级对基础语法的考查非常密集。从历年分布看,2023 年 C++ 程序设计考 61 题、基础语法考 287 题,2024 年分别涨到 103 题和 413 题,2025 年再回落至 72 题和 401 题,呈现‘先升后稳’的趋势,但一级占比始终居高不下。
6. 预测 基于上述数据,未来 GESP 一级仍会持续高频考查‘浮点转整型’这类基础概念,命题形式可能从单纯数值转换扩展到‘混合运算后取整’或‘负数截断’等变体,以检验学生对‘截断’规则的理解深度。暂无足够依据预测具体年份的题干变化,但‘截断’这一核心规则不会变。