已知 'A' 的 ASCII 码为 65,'1' 的 ASCII 码为 49,'r' 的 ASCII 码为 114,则表达式 'A' + 1 的计算结果为( )。
这题就是考字符常量在表达式里自动转成ASCII码值,所以'A'+1就是65+1,直接算整数加法就行。
很多同学会惯性思维,觉得字符加1应该还是字符,顺手选了'B'。其实C++里字符常量参与算术运算时,编译器先把它当成对应的ASCII码值(整数)处理,运算结果也是整数。除非你显式地用(char)强转或者在单引号里写结果,否则它永远是个数字。
【考点】字符与编码|ASCII码|运算类型
这道题出自GESP二级《C++组》,核心就是考查“字符常量在表达式中自动视为其ASCII码值”这一条基础规则。命题人特意把'A'、'1'、'r'的ASCII码都给你列出来,就是为了让你别去翻表,而是直接利用已知的数值关系。二级大纲里明确要求理解字符与整型的转换关系,但这道题更侧重的是运算结果的类型——很多考生只记住了'A'是65,却忽略了它参与加法时会被当作整数处理,导致掉进陷阱。这里的考点迁移性极强,贯穿整个二级考试,后面遇到类似字符与数字混合运算的题目,思路完全一样。