正在载入在线练习界面,本页内容可直接阅读…

AK CSP › CSP-J 2025 第一轮真题 › 第 9 题

CSP-J 2025 第一轮 第 9 题:下列关于 C++ string 类的说法,正确的是

单项选择 · 数组与字符串 · 难度 容易 · 答案 B

题目

下列关于 C++ string 类的说法,正确的是?
CSP-J 2025 第一轮 第 9 题 原题
原题扫描(页面加载后可直接在线作答)

选项

  • 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号