GESP 二级 · GESP 202403 C++ 二级 第 5 题

选择题 · 答案 B · 考点:函数

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

题目

下列 $4$ 个表达式中,答案不是整数 $8$ 的是?( )

答案:B

考点

函数

解题思维

这题考的是表达式求值和内置函数的返回值。拿到题先别急着算,把每个选项里的函数作用想清楚:abs 取绝对值,min/max 嵌套着算,int 会截断小数,sqrt 开方后返回的是浮点数。只要把这几个函数的‘脾气’摸透,代入数字一算,答案自然出来。

常见错误

最容易掉进 B 选项的坑:看到 min 和 max 嵌套,脑子一热直接想‘min 取小’,结果忽略了运算顺序,把 max(8,9) 算成 9 后,再 min(9,10) 确实还是 9,但很多同学会误以为 min 和 max 抵消了或者搞混了括号层级,顺手选了 B。另外,D 选项 sqrt(64) 虽然数学上等于 8,但在 C++ 里它返回的是 double 类型(8.0),题目问的是‘不是整数 8',这里有个概念陷阱:8.0 在数值上等于 8,但类型不同;不过本题问的是‘答案不是整数 8',通常理解为数值结果。真正的坑在于 B 的计算结果确实是 9,而其他三个选项数值结果都是 8,所以 B 是正确答案。还有的同学会纠结 C 选项 int(8.88),以为四舍五入,其实 int 是截断,得 8,这点要记牢。

详细解析(节选)

【考点】表达式求值|内置函数|类型转换

本题位于 GESP 二级‘表达式与内置函数’模块,命题人卡住的是对函数返回值类型和嵌套调用逻辑的掌握。许多考生误以为所有函数都返回整数,或忽略嵌套顺序,导致判断失误。尤其在 C++ 中,sqrt 返回 double,int 转换截断,这些细节常被忽视。

解题思维:先识别每个函数作用,再按优先级计算。关键观察是 min 与 max 的嵌套:max(8,9) 得 9,再 min(9,10) 得 9,故 B 为 9;其余选项均得 8。注意函数调用的顺序性,从左到右依次求值,嵌套时先内层后外层。

陷阱拆解:A 项 abs(-8) 绝对值显然为 8;C 项 int(8.88) 截断为 8;D 项 sqrt(64) 虽返回 double 但数值恰为 8.0。最阴险的是 B 项的嵌套逻辑,考生易因未先算内层而误判;若只背‘min 取小’结论,忽略运算顺序必掉坑。此外,D 项易被误认为直接返回 int,实则需类型转换。

反命题思维:若将 B 改为 min(max(8,9), 9),答案仍为 9;若将 D 改为 sqrt(65),结果不再是 8。刷到类似题先问:命题人想考我哪种函数行为或类型陷阱。例如把 int 换成 double,或把 sqrt 换成 cbrt,答案都会变。

考频与趋势:关联知识点‘C++程序设计’考频极高,2024 年单年就有 103 题,2023 年 61 题,2025 年 72 题,呈现明显的逐年上升趋势,且 GESP 二级独占 60 题,说明这是二级核心考点。‘基础语法’更是题库基石,2024 年高达 413 题,2025 年 401 题,连续两年超 400 题,占比极大,且 GESP 二级也考了 283 题,可见表达式与内置函数是二级高频必考内容。

预测:基于 2024-2025 年高频数据,未来 GESP 二级和一级将继续密集考察内置函数的嵌套调用及类型转换细节,如 abs、min、max、int、sqrt 等组合形式,命题人可能会增加更多干扰项,如将 sqrt 改为 cbrt 或将 int 改为 round,以测试考生对函数行为的精准理解。暂无足够依据预测具体年份的考题形式,但趋势明确:重细节、重嵌套、重类型。

同考点真题

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