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

判断题 · 答案 B

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

题目

C++ 表达式 int(12.56) 的值为 $13$。( )

答案:B

解题思维

答案B。根据C++基础知识分析判断。

常见错误

注意题目中的限定词。不确定时用代入法或排除法。

详细解析(节选)

【考点】类型转换|浮点截断|四舍五入误区

🎯 考纲定位:本题考查 C++ 类型转换中的隐式截断规则(GESP 二级:基本数据类型)。命题人卡住的是"四舍五入"的直觉误区——看到小数就下意识想进位,完全忽略了 int 构造函数对浮点数的处理机制是"去尾"而非"四舍五入"。

🧠 解题思维:第一步识别语法:int(12.56) 是显式类型转换,int() 接收浮点参数时执行"截断小数部分"。第二步代入数值:12.56 的小数部分 0.56 被直接丢弃,整数部分 12 保留,结果必然是 12。第三步验证结论:命题人给的 13 是四舍五入的结果,但 C++ 这里只认截断。

🪤 陷阱拆解:选 A 的人掉进"数学直觉"陷阱——在小学里 12.56≈13 是四舍五入,但在 C++ 里 int() 是强制类型转换,只保留整数部分。题目故意用 12.56 这种"刚好过半"的数来诱导你按数学逻辑判断,却完全违背语言规范。若改成 int(-12.56) 仍选 A 就暴露了"只看正数"的边界条件漏洞。

🔄 反命题思维:若改题成 int(12.6) 仍选 A 就暴露了"只看数值不看语法"的致命缺陷。真正会改题的人知道,把 12.56 换成 12.6 或 12.4,考纲考点就从"类型转换"变成"数值精度",答案逻辑完全反转。

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