GESP 四级 · GESP 202506 C++ 四级 第 20 题

判断题 · 答案 B · 考点:二维数组与多维数组

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

题目

下面这段代码不合法,因为每一行都必须显式初始化 $3$ 个元素。

int arr[2][3] = {{1, 2}, {3}};
答案:B

考点

二维数组与多维数组

解题思维

答案B。综合分析各选项,运用相关知识推导。

常见错误

仔细审题,注意"不正确""不属于""不是"等否定词。用排除法缩小范围。

详细解析(节选)

【考点】数组初始化|多维数组

🎯 考纲定位:GESP 四级《数组与指针》模块核心考点。命题人卡住考生对多维数组初始化的理解——以为内层大括号可以省略元素,这是四级高频陷阱。

🧠 解题思维:先看外层维度:arr[2][3] 要求两行三列。逐行检查内层初始化:第一行 {{1, 2}, {3}} 只给两个元素,缺一个;第二行 {3} 只给一个元素,缺两个。C++ 规则:每行必须至少提供指定列数,否则编译失败。通法:多维数组初始化时,每一层大括号必须填满对应维度的元素,不可缺省。

🪤 陷阱拆解:陷阱设计:利用考生对嵌套大括号的惯性认知,认为内层可以少写元素。命题人故意给出 {{1, 2}, {3}},看似简洁实则违反规则。如果你只背结论("多维数组可以少写"),就会掉进这个坑。

🔄 反命题思维:若把题目改成 int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};,答案立刻变 A。刷到类似题,先问自己:命题人想考我哪一层维度?

同考点真题

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