GESP 二级 · GESP 202512 C++ 二级 第 3 题

选择题 · 答案 A

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

题目

下面有关 C++ 变量的说法,正确的是( )。

答案:A

解题思维

答案A。结合C++语法规则和计算机基础知识判断。

常见错误

注意区分C++语法规定的"必须"与编程习惯上的"应该"。

详细解析(节选)

【考点】关键字与保留字|变量命名规范|标识符规则

1. 考纲定位:GESP 二级《C++ 语言基础》中“标识符与关键字”模块。命题人把“关键字、函数名、普通变量名”混在选项里,卡住的是对语言词法(lexicon)的模糊认知——很多考生会凭经验把 printf、for 都当成“不能用的词”,却分不清关键字和库函数名的本质区别。

2. 解题思维:逐条拆解:A 正确,因为 for 是 C++ 关键字,标识符不能与关键字冲突;B 错,_ 开头完全合法,C++ 规定标识符由字母、数字、下划线组成且首字符可为下划线;C 错,末尾下划线不违反语法,只是可读性差;D 错,printf 是标准库函数名而非关键字,变量名可以复用函数名(虽然不推荐)。核心通法是:先判断“是不是关键字”(查语言规范),再判断“是不是库函数名”(看头文件),最后看“命名规则”(首字符、字符集)。

3. 陷阱拆解:B 利用“首字符必须是字母”的直觉误区(其实下划线也合法);C 利用“末尾符号易混淆”的视觉陷阱(语法上完全允许);D 利用“printf 是关键字”的错误记忆(它只是函数名,可以 shadow 或重载)。这些陷阱都源于对 C++ 词法规范的不严谨记忆。

4. 反命题思维:如果把 D 改成“可以用 scanf 作为变量名,因为 scanf 是关键字”,答案就变成 D 正确;或者把 B 改成"1tnt 不可以是变量名,因为首字符必须是字母”,则 B 正确。这类变式题都在考“关键字 vs 函数名 vs 普通标识符”的区分。

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