C++ 代码 string s = "GESP考试";,s 占据的字节数是( )
答案D。计算机存储的基本单位是Byte(字节),用大写B表示。1 Byte = 8 bits。
易错点:Byte(B)和bit(b)容易混淆。1 Byte = 8 bits。大写B是字节,小写b是位。
【考点】字符编码|字符串存储|字节与字符区别
【考纲定位】 本题考查 GESP 三级《字符与字符串》模块中的编码存储规则。命题人专门卡住"字节不等于字符个数"这个初学者高频误区——学生看到 6 个汉字字母就本能选 10(4+2×3),却忽略底层编码决定字节占位。
【解题思维】 先拆解字符:GESP 是 4 个 ASCII 字母,占 4 字节;"考试"是 2 个汉字。ASCII 固定 1 字节/字符,汉字则取决于编码:UTF-8 下 3 字节,GBK 下 2 字节。因此总字节数 = 4 + 2×编码字节数,编码不同结果不同。
【陷阱拆解】 A 选项预设 UTF-8 环境,B 选项预设 GBK 环境,两者都犯了"锁定一种编码"的错误;C 选项看似周全,实则仍停留在枚举层面,没点破本质——为什么会有 8 或 10 两种可能?命题人最阴险的在于把"编码选择权"交给考生,很多学生只背结论不懂原理,一遇变体就懵。
【反命题思维】 若把"考试"改成"ABCD",无论什么编码都是 8 字节;若改成"你好",UTF-8 下 10 字节、GBK 下 8 字节。刷到这类题,先问自己:命题人是否在考察编码对存储的影响?