第6题 执行下面 C++ 代码后输出的是()。
string str=("chen");
int x=str.length();
cout<<x<<endl;这题考的是C++字符串类的基础用法,特别是length()成员函数。拿到题先别急着数,要分清字符串字面量本身包含哪些字符,以及length()返回的是字符个数还是字节数。
很多学生看到'chen'会下意识数空格或者把末尾的不可见字符算进去,导致选错。还有人会把length()的结果当成数组下标去访问,或者混淆C风格字符串的sizeof和std::string的length()的区别,以为要加1或者减1。
【考点】C++标准库string类|长度获取方法
这道题GESP三级C++模块,考的是C++标准库基础。命题人把“字符串长度”这个初中生的直觉概念,和C++的length()函数绑定,卡住的是“看到字符串就数空格”或“把长度当索引”的惯性思维。
解题链:string str=("chen");定义了一个长度为 4 的字符串对象;str.length()调用其成员函数,返回当前字符串的字符个数。
这里要特别注意:std::string的length()返回的是字符个数,和C风格字符串的sizeof不一样。"chen"去掉引号就是c,h,e,n四个字符,所以length()返回4,cout输出就是4。
易错点:位运算追踪时建议把数字写成二进制形式再逐位计算,数组下标从0开始,位运算结果可能不直观。建议画图辅助。
【考频与趋势】基础语法:题库共考过 1295 题,覆盖 11 个考试级别(2008-2026);逐年分布:2008年1题、2011年1题、2019年3题、2023年287题、2024年413题、2025年401题、2026年109题、null年80题;分赛事:GESP 一级332题、GESP 二级283题、GESP 三级215题、GESP 四级186题、GESP 七级91题、GESP 八级79题、GESP 六级78题、GESP 五级23题、CSP 提高级3题、CSP 入门级3题、NOIP 提高组 初赛2题
控制结构:题库共考过 429 题,覆盖 7 个考试级别(2009-2026);逐年分布:2009年2题、2023年81题、2024年138题、2025年160题、2026年45题、null年3题;分赛事:GESP 一级133题、GESP 二级133题、GESP 三级84题、GESP 四级76题、CSP 入门级1题、NOIP 提高组 初赛1题、NOIP 普及组 初赛1题
循环结构:题库共考过 609 题,覆盖 12 个考试级别(2008-2026);逐年分布:2008年7题、2009年3题、2010年3题、2011年6题、2012年5题、2013年7题、2014年8题、2015年4题、2016年12题、2017年11题、2018年13题、2019年4题、2022年1题、2023年77题、2024年128题、2025年158题、2026年161题、null年1题;分赛事:GESP 二级172题、GESP 一级139题、GESP 三级89题、GESP 四级87题、NOIP 普及组 初赛56题、NOIP 提高组 初赛23题、GESP 五级16题、GESP 六级9题、CSP 入门级8题、CSP 提高级5题、GESP 七级3题、GESP 八级2题