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

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

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

题目

下面代码执行结束时,变量 a 的值变成 $15$。

void add10(int &x) { x += 10; }

int main() {
    int a = 5;
    add10(a);
}
答案:A

考点

函数

解题思维

答案A。综合分析各选项,运用相关知识推导。

常见错误

仔细审题,注意"不正确""不属于""不是"等否定词。用排除法缩小范围。

详细解析(节选)

【考点】引用参数|函数传参机制

GESP 四级《函数基础》模块,考察引用参数与值传递的区别。命题人专卡那些只背语法、不看语义的考生——他们常把 int &x 误当成普通形参,以为函数只改局部变量,这题就是用来筛掉这种惯性思维的。

看到 int &x 就知道是引用传参,函数内修改 x 直接改变 a。add10(a) 后 a 从 5 变 15,题设结论正确。这类题通法是:识别参数类型(值/引用/指针),追踪变量别名关系,按调用顺序模拟执行。

错选 B 的人常把 int &x 当成普通值传递,以为函数内 x+=10 只改局部变量。其实 & 就是引用别名,x 和 a 是同一内存地址。命题人故意用 add10 这种无返回值函数,让你忽略参数类型,只盯着 x+=10 看。记住:看到 & 就要警惕,它不是“取地址”而是“别名”。

若把 int &x 改成 int x,答案就翻盘成 B;改成指针 int *x 则需解引用。刷到引用题先问:“这个参数是别名还是副本?”

同考点真题

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