不可以作为 C++ 标识符的是( )。
这题考C++标识符命名规则。拿到题先想:标识符只能由字母、数字、下划线组成,且不能以数字开头。四个选项里,C项混入了加号,明显是运算符,直接排除。
学生最容易把“合法字符”和“合法组合”搞混。比如看到A、B、D都是字母数字,就以为都合规,却忽略了C项里的加号根本不是标识符允许的字符。还有人会纠结“能不能用中文”或“能不能用空格”,其实规则里只提了字母数字下划线。另外,有些同学会误以为0x开头的十六进制数在标识符里合法,其实只要是以数字开头,无论后面是什么,都不行。
GESP一级《基本语法》模块,命题人用这道题卡住初学者对“标识符规则”的绝对化认知——很多人以为“字母数字都能用”,却忽略运算符符号的硬性限制。这类题的通法是“先列规则再逐条核对”,看到题先想“标识符规则是什么”(字母或下划线开头、只能含字母数字下划线);关键观察是四选项中唯一含运算符的是C;推理依据是C++语法规定运算符不能嵌入标识符。
C++标识符必须满足: 1. 只能由字母、数字、下划线组成; 2. 第一个字符必须是字母或下划线(不能是数字); 3. 不能是关键字(如int、if等)。 简单说,标识符就是给变量起的名字,名字里只能出现“字母、数字、下划线”这三样东西,而且开头不能是数字。
A. a_plus_b:全是字母和下划线,符合规则。 B. a_b:同上,合法。 C. a+b:中间有个“+”,这是加法运算符,不是标识符允许的字符,直接违规。 D. ab:两个字母,合法。
学生最容易把“合法字符”和“合法组合”搞混。比如看到A、B、D都是字母数字,就以为都合规,却忽略了C项里的加号根本不是标识符允许的字符。还有人会纠结“能不能用中文”或“能不能用空格”,其实规则里只提了字母数字下划线。另外,有些同学会误以为0x开头的十六进制数在标识符里合法,其实只要是以数字开头,无论后面是什么,都不行。
变量与常量类题在题库中占比不高,但GESP一级出现频率较高:2023年30题、2024年26题、2025年11题,其中一级就占了40题。标识符规则属于基础中的基础,命题人常用来区分“背过规则”和“真正理解规则”的学生。从近年数据看,这类题每年都有稳定出现,且越来越偏向“陷阱式”考察——不是考你会不会背,而是考你能不能一眼看出哪个选项里混进了非法字符。
基于当前考频和命题风格,未来GESP一级仍会高频出现标识符规则题,但形式可能更隐蔽:比如用“_123abc”这种看似合法实则违规(以数字开头)的选项,或者把“+”换成其他运算符符号(如*、/、%)来迷惑学生。暂无足够依据预测具体年份或题目形式,但“符号混入标识符”这一陷阱大概率会反复出现。