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

选择题 · 答案 D

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

题目

下列关于 C++ 语言中数组的叙述,不正确的是( )。

答案:D

解题思维

这题核心就是死磕二维数组的内存布局定义。拿到题先想:C++里标准二维数组声明(如 a[3][4])在内存里到底长啥样?一维数组肯定是连续的,二维数组本质是“一维数组的一维数组”,所以每行连续,且所有行首地址也连续。只要抓住“行主序连续”这个铁律,D 选项那种“可以不连续”的鬼话自然就被识破了。

常见错误

最容易栽跟头的就是被“指针数组”带偏。学生往往只背了“二维数组 = 一维数组的一维数组”,却没深究内存细节,看到“指针数组”概念就慌,误以为二维数组里每个行数组是独立存放、中间有空隙的。其实标准声明 int a[3][4] 是一块连续区域,行与行之间绝对无缝。若改成 int *a[3][4],外层数组连续,但元素本身是否连续取决于所指变量,这属于指针数组而非二维数组本质。命题人就是利用这种概念混淆挖坑,让你把“指针数组”的松散特性安在“二维数组”头上,从而误选 D。

详细解析(节选)

考点:C++ 数组内存布局|二维数组定义|指针数组

考纲定位:本题考查《GESP C++ 四级》“编程语言”模块中数组内存布局的基础概念。命题人专门卡住“二维数组是否连续”这一易错点,很多学生误以为二维数组是多个独立的一维数组拼接,或者因为指针数组的存在而认为二维数组内存不连续。

解题思维:按定义拆解:一维数组是连续内存块;二维数组是“一维数组的一维数组”,即每个行数组自身连续,且所有行数组首地址在内存中也是连续排列的(行主序)。因此 A、B、C 全部正确。D 选项声称“可以不是连续存放”,与标准二维数组定义相悖。

陷阱拆解:选项 D 利用“指针数组”概念偷换定义。学生若只背“二维数组 = 一维数组的一维数组”,未深究内存布局,就会误以为每个行数组独立存放、中间有空隙。其实标准声明 int a[3][4] 在内存中是一块连续区域,行数组之间没有空隙。若改成 int *a[3][4],外层数组连续,但元素本身是否连续取决于所指变量,这属于指针数组而非二维数组本质。

反命题思维:命题人故意放一个“可以不是连续”的表述,考察你是否真正理解二维数组的内存模型,而非死记结论。刷到类似题先问自己:题目考的是标准数组还是指针数组?如果是标准数组,所有行数组首地址必定连续,D 必错。

考频趋势:从题库数据看,“基础语法”类别在 2023 年考了 287 题,2024 年飙升至 413 题,2025 年达 401 题,显示该知识点热度持续走高。具体到“数组内存布局”这一细分,GESP 四级近年考频稳定,2023 年 61 题中数组相关占比较大,2024 年 103 题中数组题目明显增多,说明命题人正加大对此类概念辨析的考察力度。

预测:基于 2023-2025 年逐年递增的趋势,尤其是“基础语法”大类在 2024、2025 年的高频爆发,未来 GESP 四级及更高阶考试中,关于数组内存布局、指针与数组关系的辨析题(如二维数组连续性、多维数组存储方式)仍将是高频考点,命题人可能会结合更复杂的数组声明或指针运算来挖坑,但核心逻辑不变:标准数组必连续。暂无足够依据预测具体题型变化,但概念辨析类题目大概率持续出现。

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