GESP 三级 · GESP 202412 C++ 三级 第 9 题

选择题 · 答案 A

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

题目

下列程序输出的是( )。

string ch = "hello";
if (ch[5] == NULL)
{
    cout << "right" << endl;
}
else if (ch[5] == '\0')
{
    cout << "wrong" << endl;
}
else
{
    cout << "hello" << endl;
}
答案:A

解题思维

答案A。数组和位运算的代码追踪要特别小心:数组下标从0开始,位运算结果可能不直观。建议画图辅助。

常见错误

位运算追踪时建议把数字写成二进制形式再逐位计算。

详细解析(节选)

【考点】std::string 下标访问|空字符位置|条件判断短路

1. 🎯 考纲定位

GESP 三级 C++ 语法基础模块,命题人卡住的是"字符串末尾是空字符,但空字符在索引等于长度处"这一细枝末节。绝大多数考生只记得"最后一位是 o",却忘了 ch[5] 越过了字符区,落在终止符上。

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