正在载入在线练习界面,本页内容可直接阅读…
AK CSP › CSP-J 2025 第一轮真题 › 第 9 题
CSP-J 2025 第一轮 第 9 题:下列关于 C++ string 类的说法,正确的是
题目
下列关于 C++ string 类的说法,正确的是?

选项
- A. string 对象的长度在创建后不能改变。
- B. 可以使用 + 运算符直接连接一个 string 对象和一个 char 类型的字符。
- C. string 的 length() 和 size() 方法返回的值可能不同。
- D. string 对象必须以 '\0' 结尾,且这个结尾符计入 length()。
答案
B
题解
正确答案是 B。
这道题考查 std::string 的基本操作,需要区分字符串的逻辑长度与结尾的空字符。
- A 错误:
string对象的长度可以改变。例如,string s = "ab";后执行s += 'c';,字符串变为"abc",长度从 2 变成 3。追加、插入、删除等操作都可以改变长度。 - B 正确:C++ 为
string提供了与char配合使用的+运算符,可以直接把一个字符连接到字符串后面。例如:
``cpp string s = "ab"; string t = s + 'c'; // t 为 "abc" ``
这里生成了连接后的字符串,原来的 s 仍是 "ab"。如果希望修改 s 本身,可以使用 s += 'c';。
- C 错误:对于同一个
string对象,在内容没有变化时,length()和size()返回相同的值,都表示其中的字符数量。 - D 错误:字符串末尾用于终止的空字符
'\0'不计入length()。例如,string s = "abc";的length()是 3,而不是 4。s.c_str()提供以空字符结尾的字符序列,但这个结尾符不属于字符串的逻辑内容。
因此,选择 B。
真题版权归 CCF 所有,本站仅用于非商业教学用途。页面加载后可直接在线作答,作答记录保存在本浏览器或账号中。 京ICP备2026056990号-1
京公网安备11010502062986号