下列程序输出的是( )。
string ch = "hello";
if (ch[5] == NULL)
{
cout << "right" << endl;
}
else if (ch[5] == '\0')
{
cout << "wrong" << endl;
}
else
{
cout << "hello" << endl;
}答案A。数组和位运算的代码追踪要特别小心:数组下标从0开始,位运算结果可能不直观。建议画图辅助。
位运算追踪时建议把数字写成二进制形式再逐位计算。
【考点】std::string 下标访问|空字符位置|条件判断短路
GESP 三级 C++ 语法基础模块,命题人卡住的是"字符串末尾是空字符,但空字符在索引等于长度处"这一细枝末节。绝大多数考生只记得"最后一位是 o",却忘了 ch[5] 越过了字符区,落在终止符上。