GESP 三级 · GESP 三级样题(C++ 组) 第 5 题

选择题 · 答案 A

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

题目

在 C++ 语言中,可以定义一个一维整型数组的是( )?

答案:A

解题思维

这题考C++数组声明语法。拿到题先看类型和变量名对不对,再盯住方括号里的内容:C++规定定义数组时长度必须是常量表达式(数字或char常量),不能是变量更不能留空。A把长度写成了5,三要素齐全,直接选它。

常见错误

很多同学会被B选项迷惑,觉得‘少写几个字符也能编译’,其实C++里数组长度必须显式给出,这是和C语言最大的区别之一。还有人会把C、D当成‘结构体声明’或者‘动态数组’来理解,结果把数字放错位置,或者以为空方括号能代表‘未知长度’,其实那是语法错误。最坑的是D,方括号里没东西,命题人就是想看你有没有背过‘长度必须是常量表达式’这条铁律。

详细解析(节选)

【考点】数组定义语法|C++声明规则|常量表达式

C++里定义一维整型数组,必须同时写清三样东西:类型(int)、变量名(array)、长度(方括号里的数字)。长度必须是常量表达式,也就是编译期就能确定的数字,或者用char这种本质是整数的常量。像int c[3.0]这种小数就不行,因为数组下标必须是整数。

【命题视角】为什么考这个?

命题人专门挑了四个长得像的选项,卡住的是‘声明必须完整’这条铁律。很多人会惯性地把C语言里的规则套过来——C语言里在函数参数里可以省略长度(如int[]),或者全局声明里有时能省略,但C++作为一门强类型语言,定义数组时长度必须显式写出,这是区分C与C++的关键分水岭。B选项就是利用考生‘能写就写’的惯性,C语言里int array[]在某些语境合法,但作为独立声明必错;C、D则是把数字放错位置,或者干脆留空,制造语法混淆。

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