GESP 二级 · GESP 二级样题(C++ 组) 第 10 题

选择题 · 答案 C

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

题目

如果 a 为 char 类型的变量,且 a 的值为 '1',则执行 a = a + 3; 之后,a 的值会是( )。

答案:C

解题思维

这题考的是char的ASCII码运算与赋值后的类型回退。拿到题先别急着加减,想清楚:char本质是整数,运算结果还是整数,但赋值给char变量时会强制转回字符。所以核心就是算出49+3=52,再查ASCII表转成'4'。

常见错误

最容易掉进A项的坑,觉得算出来52就是答案,完全忘了a是char类型,赋值后必须转回字符;B项是把字符当普通数字加,以为'1'+3等于13;D项最阴险,利用考生对字符和字符串的混淆,以为'1'+'3'会得到'13'这个字符串。如果你只背'字符不能参与运算'的结论,就会选A;如果你只懂'字符是int'但不懂赋值后的类型,就会选B。

详细解析(节选)

【考点】字符与整型关系|ASCII码运算|隐式类型转换

【考纲定位】本题考查GESP C++二级大纲中字符与整型的关系。命题人专门设计这道题,就是为了卡住那些只背'字符不能参与算术运算'结论的考生——实际上char在内存中以ASCII码存储,加减运算本质是整数运算,但结果仍强制转为char类型。

【解题思维】看到char变量参与算术运算,第一反应是'字符怎么加减?'。关键观察:C++中char本质是单字节整数(ASCII码),'1'对应十进制49。a = a + 3;实际执行的是整数加法:49 + 3 = 52,然后52再转回字符。查ASCII表知52对应'4',所以结果是字符'4',而非数字4或字符串'13'。

【陷阱拆解】A项是整数陷阱,忽略了赋值后a仍是char类型;B项偷换概念,把字符当成数字去加;D项最阴险,利用考生对字符和字符串的混淆,以为'1'+'3'会得到'13'这个字符串。如果你只背'字符不能参与运算'的结论,就会掉进A项;如果你只懂'字符是int'但不懂赋值后的类型,就会选B。

【反命题思维】如果把a改成int,答案就是A(52);如果把a+3改成a+'3',答案还是C(字符相加仍得字符)。刷到类似题,先问自己:'运算后的类型是什么?'——这是C++里最容易被忽略的隐式转换规则。

【考频趋势】字符与整型关系是基础语法的高频考点,题库共考过1295题,覆盖11个考试级别。逐年分布看,2023年287题、2024年413题、2025年401题,近三年爆发式增长,说明命题人越来越喜欢用这种'看似简单实则陷阱'的概念题来区分考生。分赛事看,GESP二级283题、一级332题、三级215题,属于中低级别的高频考点,说明这类题在入门阶段就反复出现,目的是夯实基础。

【预测】基于近三年考频持续高位(2023-2025年均超280题)且集中在GESP一二三级,未来两年这类'字符运算+类型回退'的题大概率继续高频出现,命题人可能会换个包装,比如给a赋值为'a'或'z',或者用'a+1'这种经典变形,甚至结合输入输出考察。只要记住'char运算本质是int,赋值后转回char'这个核心,这类题就稳了。

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