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

选择题 · 答案 B

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

题目

执行下面代码后输出为( )。

struct S { int a; int b; };

void g(S s){ s.a += 10; }
void h(S& s){ s.b += 10; }

int main(){
    S s{1,2};
    g(s);
    h(s);
    cout << s.a << " " << s.b;
}
答案:B

解题思维

答案B。指针和数组的代码追踪:画出变量和指针的内存示意图,追踪每次赋值后值的变化。

常见错误

指针和数组追踪时画内存布局图可以大大简化理解。

详细解析(节选)

【考点】传值与传址|结构体成员作用域

🎯 考纲定位(考点定位)

GESP 四级《C++ 基础语法》模块。命题人专门把这道题放在这里,就是卡住那些只背"引用会传递"却不懂"值传递会拷贝"的选手——90% 的考生看到 g(s) 就下意识以为会改到原对象,这是最典型的认知偏差。

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