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

选择题 · 答案 C

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

题目

已知 int a[6] = {1, 3, 5, 7, 9, 11}; int *p = a + 1; ,则表达式 *(p + 3) 的值是(  )。

答案:C

解题思维

看到题先定位 p 指向哪里。p = a + 1 说明 p 指向数组第二个元素 a[1](值为 3)。指针加 3 是地址偏移,p + 3 指向 a[1 + 3] = a[4],再解引用就是 a[4] 的值。这类题通法:先确定指针初始位置,再按偏移量计算目标下标,最后查表取值。

常见错误

选项 B 7 是 a[3],对应 p + 2 的结果,容易把 p 当成 a 本身;选项 A 5 是 a[2],对应 p + 1;选项 D 11 是 a[5],对应 p + 4。最阴险的是 p 已经偏移了 1,很多考生会忽略这个初始偏移,直接按 p + 3 当成 a[3] 去取值。

详细解析(节选)

1. 考纲定位

本题考查 GESP 七级《C++ 程序设计》模块 3 中的指针运算与数组与指针知识点。命题人放这道题,就是卡住大量考生对"指针初始位置"的敏感度——他们习惯把指针当成数组名用,却忘了指针本身可能已经偏移。

2. 解题思维

看到题先定位 p 指向哪里。p = a + 1 说明 p 指向数组第二个元素 a[1](值为 3)。指针加 3 是地址偏移,p + 3 指向 a[1 + 3] = a[4],再解引用就是 a[4] 的值。这类题通法:先确定指针初始位置,再按偏移量计算目标下标,最后查表取值。

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