GESP 七级 · GESP202609 C++ 七级 第 10 题

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

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

题目

下列 C++ 代码的输出结果是(  )。

#include <iostream>
using namespace std;
void inc(int &x) {
x++;
}
int main() {
int a = 3;
inc(a);
cout << a;
return 0;
}
答案:B

考点

函数

解题思维

看到引用参数先想"别名"——inc(a) 把 a 的地址传给 x,x 就是 a 的别名,函数里改 x 等于改 a。a 初值 3,x++ 后 a 变 4,cout 输出 4,选 B。

常见错误

A 把引用当值传理解错;C 误以为 x++ 会再执行一次;D 盯着 & 符号瞎想语法错误。

详细解析(节选)

1. 考纲定位

本题考查的是 C++ 中引用传递(Reference Passing)这一核心概念,属于 GESP 七级 C++ 编程模块中"函数与参数"部分的必考内容。命题人把这道题放在这里,就是要卡住那些"只背了传值、没搞懂传引用"的考生——他们看到 inc(int &x) 要么当成普通函数参数,要么纠结 & 符号本身,完全忽略"引用就是别名"这一本质。

2. 解题思维

看到 inc(int &x) 先别急着看函数体,要立刻意识到:x 不是形参,而是 a 的别名。int a = 3; 之后调用 inc(a);,相当于把 a 的地址传给 x,x 和 a 共享同一块内存。

函数体内 x++; 这行代码,实际上是修改了 a 的值。a 从 3 变成 4。

最后 cout << a; 输出的是 a 的当前值,也就是 4。

通法:遇到引用参数,把函数体里的操作直接"投影"到调用处的变量上,省掉中间层。

同考点真题

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