GESP 四级 · GESP 202506 C++ 四级 第 16 题

判断题 · 答案 A · 考点:函数

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

题目

下面 C++ 代码正确声明了一个返回 int 类型、接受两个 int 参数的函数。

int add(int, int);
答案:A

考点

函数

解题思维

答案A。基本数据类型占用内存大小:char(1B)、bool(1B)、int(4B)、float(4B)、double(8B)。指针类型(如int*)通常占8B(64位系统)。

常见错误

int类型取值范围有限(通常-2³¹~2³¹-1)。指针类型大小在64位系统上为8字节。

详细解析(节选)

【考点】函数原型语法|函数声明与定义|C++基本语法

GESP 四级核心考点是函数声明。命题人放这道题,就是看你有没有被「缺少函数体」的直觉吓退——很多人看到分号就以为后面该有花括号,但声明和定义在 C++ 里是两码事。

看到声明先想:返回类型 + 函数名 + 参数类型列表 + 分号。这里 int add(int, int); 完全符合原型语法。定义才需要花括号,声明只需要告诉编译器有这个函数。参数名在原型里可省略,只保留类型,这就是为什么 int, int 是对的。

错误选项 B 是典型的「原型误作定义」陷阱。命题人利用你看到分号就以为要结束语句的惯性思维——但分号恰恰是声明的结束符。若把参数名补全成 int add(int a, int b); 就变成定义,这里没给参数名和花括号,说明它只负责声明。更阴险的是,很多人会盯着「两个逗号分隔的参数」纠结,却忘了声明里参数名本来就是可选的。

反命题视角:若把返回类型改成 void 或参数类型改成 char,原型依然成立,说明题目只考语法结构而非具体语义。刷到类似题先问「这是定义还是声明?」看到分号就默认声明,看到花括号才考虑定义。

同考点真题

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