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

选择题 · 答案 D

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

题目

如果 a 为 int 类型的变量,且 a 的值为 1,则下列表达式的值为 '3' 的是( )。

答案:D

解题思维

拿到题先别急着算数,盯住结果类型!题目要的是字符'3',不是整数3。所以思路就是:先让运算得出整数51('3'的ASCII码),再想办法把它变回字符。选项里有没有显式的类型转换?有就选它。

常见错误

最容易栽跟头的就是以为字符常量在运算中还是字符。其实C++里'2'这种字符常量在算术表达式里自动当成int(ASCII码50)用,跟数字2没区别。很多学生会误选A或B,以为a+'2'直接拼出'3',或者把'a'+2当成字符运算。还有的同学忽略了强制转换,觉得51就是51,忘了题目要的是字符类型,导致漏选D。记住:字符和整数是两码事,想变字符必须显式转。

详细解析(节选)

这道题考什么

这题核心就两点:字符常量的本质和类型转换。GESP二级特别喜欢在这里挖坑,因为字符在表达式里不是“字符”,而是它的ASCII码(int)。

概念与命题视角

命题人为什么考这个?因为很多初学者看到 '2' 就以为是字符,看到 a+2 就以为是整数加法,结果混淆了类型。其实 '2' 在运算中等同于整数 50('0'是48,'1'是49,'2'就是50)。所以 a+'2' 本质是 1+50,结果是整数 51。

思考心法:拿到题先想什么

拿到题,先问自己:结果类型是什么? 题目要 '3',这是字符。那怎么得到字符?要么直接用字符常量,要么用整数强制转字符。

再看运算过程:

51 是什么?查ASCII表,51 正好是 '3'。所以只要把 51 转成字符,就得到 '3'。

逐项分析(紧扣答案D)

A. a + 2

B. a + '2'

C. 'a' + 2

D. (char)(a+'2')

避坑指南

1. 别把字符常量当字符用:'2' 在算术里就是 50,不是字符。 2. 别忽略类型:题目要字符,结果必须是字符类型。A、B、C 都是 int,直接排除。 3. 别漏掉强制转换:a+'2' 得到 51,但 51 是 int,不是字符。只有 D 做了 (char) 转换,才符合题意。

考频与趋势

从题库数据看:

预测

基于数据,未来GESP二级仍会高频出现字符与整数混合运算题,尤其是要求判断结果类型或进行显式转换的选项。这类题往往用几个看似合理的“字符运算”选项迷惑学生,正确答案却依赖(char)或(int)转换。暂无足够依据预测具体年份分布,但可预期2027-2028年继续考此类概念辨析题。

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