GESP 四级 · GESP202609 C++ 四级 第 4 题

选择题 · 答案 C

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

题目

下面函数用于将一个 3 行 5 列二维数组的第 r 行元素全部加 1,横线处正确的形参写法是(  )。

void addOne(________, int r) {
for (int j = 0; j < 5; j++) {
arr[r][j]++;
}
}
答案:C

解题思维

看到二维数组函数形参,先想 C++ 数组传参规则——数组名退化为指针,但第二维必须指定。

常见错误

选项 A 缺第二维,C++ 语法直接报错;选项 B 是二级指针,无法按 arr[r][j] 访问;选项 D 第一维固定却第二维缺失,同样非法。

详细解析(节选)

1. 考纲定位

本题考查《GESP 考试大纲》C++ 二级"数组与指针"模块中"二维数组传参"考点。命题人卡住的是考生对 C++ 数组形参退化规则的模糊认知——绝大多数人知道一维数组传参退化为指针,却误以为二维数组可以随意省略第二维,导致选错 A 或 B。

2. 解题思维

看到 void addOne(________, int r) 且函数体用 arr[r][j],先锁定"二维数组传参"场景。

C++ 规则:数组名作参数时,第一维可省略,第二维必须指定(否则编译器无法计算偏移量)。因此形参只能是 int arr[][5]。

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