GESP 四级 · GESP 202503 C++ 四级 第 9 题

选择题 · 答案 B

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

题目

下面( )正确定义了二维数组。

答案:B

解题思维

答案B。二维数组在内存中按行优先连续存储。int array[5][3]中元素按array[0][0]到array[4][2]的顺序连续排列。

常见错误

二维数组按行优先存储。计算偏移量先确定每行元素个数再乘行号+列号。

详细解析(节选)

【考点】数组定义语法|二维数组声明规则|C++与C语法差异

本题考查【数组定义语法】与【二维数组声明规则】,位于GESP C++四级大纲"基本数据类型与存储"模块。命题人卡住考生对C++数组下标用方括号[ ]而非圆括号()的记忆,这是C++语法与函数调用最易混淆的边界。

看到"定义二维数组"先锁定语法特征:C++中数组名后必须接两对方括号[ ],维度间用逗号分隔。选项A用逗号[3,4]是C语言特性;选项C用圆括号arr(3,4)是函数调用;选项D用减法a[3-4]是非法初始化。只有B符合规范,这是C++语言标准强制要求,非C++语法库可修改。

选项A利用"C语言数组定义"的惯性思维误导,C++严格规定多维数组必须用嵌套方括号[3][4];选项C把数组声明伪装成函数调用,圆括号()是C++语法禁区;选项D看似合法实则非法,3-4是算术运算而非数组维度声明。命题人专攻初学者混淆C/C++语法差异的弱点。

若将题干改为"下面( )正确定义了一个函数",则圆括号()成为正确选项;若改为"定义一个一维指针",则int* ptr = arr;才是考点。刷到类似题先问:命题人想考我C++与C语法差异、还是内存布局细节?

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