CSP-J 入门级 · CSP 2024 入门级第一轮 第 8 题

选择题 · 答案 B · 考点:基本数据类型、运算符与表达式

← 整套速查表 CSP-J 入门级 全部真题

题目

在 C/C++ 中,(char)('a' + 13) 与下面的哪一个值相等?( )

答案:B

考点

基本数据类型运算符与表达式

解题思维

这题考的是字符在内存里就是整数,直接做加法就行。拿到题别去数第几个字母,先算出 a 的 ASCII 码 97,加 13 得到 110,再查表或心算 110 对应哪个字符,答案自然出来。

常见错误

最容易掉进的坑是当成‘从 a 往后数第 13 个字母’去数,把 b 当第 1 个,数到 m 就停手了,结果选错成 A。另外有人会把 a 的码值记成 96(那是从 0 开始计数的习惯,C/C++ 里 a 就是 97),或者加法算错成 111 或 109,导致整道题全歪。记住:字符运算就是整数运算,别搞花活。

详细解析(节选)

考点与概念

这道题考查的是 C/C++ 中字符类型与整数的等价性:在内存里,'a' 就是一个整数,等于它的 ASCII 码 97。因此表达式 (char)('a' + 13) 的本质就是先算整数加法 97 + 13,再把结果转成字符。

命题视角

命题人喜欢用这种‘字符 + 整数’的形式,表面看像字母移位,实际考的是你知不知道字符就是整数。他们爱挖的坑有两个:一是让你去数第几个字母,二是让你记错 a 的码值(97 还是 96)。这道题直接给定了 +13,就是看你能不能迅速把字符换算成数字再算。

同考点真题

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