GESP 三级 · GESP 202512 C++ 三级 第 14 题

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

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

题目

以下关于 C++ 中 abs() 函数的描述,正确的是( )

答案:A

考点

函数

解题思维

答案A。函数必须有函数名。函数可以没有参数,可以没有返回值(void类型),定义可以在调用之后(需提前声明)。

常见错误

函数必须有名称,但可以有默认参数。参数默认以值传递(传值)。函数未被调用时参数不占内存。

详细解析(节选)

【考点】C++ 库函数 abs 行为|头文件包含规则|浮点数类型转换

本题考查 C++ 标准库函数 abs 的行为特征,定位在 GESP 三级大纲"模块一:编程基础"第 3 条"常用库函数"。命题人专挑初学者易混淆点——把 abs 当成四舍五入工具、误以为它能截断小数,以此筛掉只背"绝对值函数"四个字却不懂类型转换的考生。

解题链条:先看函数名 abs 锁定"绝对值"语义,再核对头文件——<cmath>提供 std::abs支持所有类型,<cstdlib>的 abs专用于 int;接着检查参数个数与类型,abs是单目函数,传入两个参数直接编译错误;最后回归 C++ 类型规则,函数不会自动转换,浮点输入输出浮点结果。

拆解选项:B 错在偷换概念,abs(3.14)返回 3.14,四舍五入需用 std::round;C 错在违反语法,abs 只接受一个参数,abs(-1, -2)非法;D 错在忽视类型保持,abs(-2.5)结果是 2.5,截断是强制类型转换行为而非函数特性;A 正确,int 绝对值在<cmath>或<cstdlib>均有定义。

若把 abs 换成 std::round,B 就变正确;若改成 std::abs 并加 std 前缀,C 的非法调用依旧报错;若题目问 fabs,D 的浮点截断说法才接近真相。刷到这类题,先问自己:"命题人是不是在考类型转换还是函数语义?"

同考点真题

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