GESP 四级 · GESP 202512 C++ 四级 第 6 题

选择题 · 答案 A

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

题目

执行完下面的代码后,输出是( )。

int a = 1;

void test() {
    int a = 2;
    {
        int a = 3;
        a++;
    }
    a++;
    cout << a << " ";
}

int main() {
    test();
    cout << a;
    return 0;
}
答案:A

解题思维

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

常见错误

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

详细解析(节选)

【考点】变量作用域|局部变量覆盖

1. 🎯 考纲定位

GESP 四级【基础语法】模块,考察变量作用域与同名覆盖。命题人卡住的就是嵌套作用域中变量销毁时机——四级考生普遍知道"局部变量只在自己范围内有效",但遇到多层嵌套时,容易把内层同名变量的值错误地"传染"到外层,以为那个 int a=3 会一直跟着 test 函数走到结束。

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