GESP 三级 · GESP202609 C++ 三级 第 14 题

选择题 · 答案 B

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

题目

以下数组定义,符合 C++ 语法的是(  )

答案:B

解题思维

数组定义的核心规则是:大小必须为常量表达式,初始化列表元素类型需与数组类型匹配。看到题先扫四个选项:A 的初始化列表混入浮点字面量 3.0,int 数组不能直接容纳 double 值;C 缺省大小,非法;D 用浮点 10.0 作大小,非法;B 用字符常量'A',C++ 中字符常量自动提升为整型(ASCII 值),因此'b['A']'等同于'b[65]',合法。通法:判断数组定义时,先看大小表达式是否合法,再看初始化列表元素类型是否匹配。

常见错误

A 错在类型不匹配——int 数组的初始化列表里出现浮点字面量,编译器会报错;C 错在缺省大小,数组必须指定大小;D 错在用浮点字面量作大小,大小必须是整型常量表达式;B 看似诡异,实则字符常量'A'在 C++ 中就是整型常量(ASCII 65),因此'b['A']'是合法的数组定义。

详细解析(节选)

数组定义的核心规则是:大小必须为常量表达式,初始化列表元素类型需与数组类型匹配。看到题先扫四个选项:A 的初始化列表混入浮点字面量 3.0,int 数组不能直接容纳 double 值;C 缺省大小,非法;D 用浮点 10.0 作大小,非法;B 用字符常量'A',C++ 中字符常量自动提升为整型(ASCII 值),因此'b['A']'等同于'b[65]',合法。通法:判断数组定义时,先看大小表达式是否合法,再看初始化列表元素类型是否匹配。

A 错在类型不匹配——int 数组的初始化列表里出现浮点字面量,编译器会报错;C 错在缺省大小,数组必须指定大小;D 错在用浮点字面量作大小,大小必须是整型常量表达式;B 看似诡异,实则字符常量'A'在 C++ 中就是整型常量(ASCII 65),因此'b['A']'是合法的数组定义。

1. 考纲定位

本题考查 GESP 三级 C++ 大纲中"数组定义与初始化"模块。命题人放这道题,就是要卡住考生对"数组大小必须是常量表达式"这一铁律的掌握程度,以及是否清楚字符常量在 C++ 中的整型提升规则。

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