在 C/C++ 中,(char)('a' + 13) 与下面的哪一个值相等?( )
这题考的是字符在内存里就是整数,直接做加法就行。拿到题别去数第几个字母,先算出 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,就是看你能不能迅速把字符换算成数字再算。