GESP 四级 · GESP 202403 C++ 四级 第 10 题

选择题 · 答案 B

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

题目

在如下的 C++ 代码执行后,设第 11 和 12 行的输出地址值分别为 $X$ 和 $Y$,则下面正确的是( )。

struct pass {
    int no;
    char name[20];
    int level;
};

int main()
{
    struct pass XiaoYang;

    cout << "&XiaoYang=" << &XiaoYang << endl;     //第11行
    cout << "&(XiaoYang.no)=" << &(XiaoYang.no) << endl; //第12行

    cout << endl;
    return 0;
}
答案:B

解题思维

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

常见错误

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

详细解析(节选)

【考点】结构体内存布局|指针地址运算|变量作用域

1. 🎯 考纲定位

本题考查 GESP C++ 四级大纲中"结构与数组"模块的核心考点——结构体内存布局。命题人故意用&XiaoYang和&(XiaoYang.no)两个取地址操作,卡住的是考生对"成员地址与结构体地址关系"的直觉误区:以为取结构体地址是取整体,取成员地址是取局部,从而产生大小关系。

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