#X002. 字符串操作

字符串操作

这是为您调整格式后的 C++ String 操作练习题,已按照您要求的交互式格式进行了修改,可以直接上传至 OJ 系统:

1. 下列哪个方法不能用于获取字符串长度?

{{ select(1) }}

  • 选项 A s.size()
  • 选项 B s.length()
  • 选项 C sizeof(s)
  • 选项 D s.capacity()

2.string s = "hello";,执行 cout << s.substr(1, 3); 后输出什么?

{{ select(2) }}

  • 选项 A ell
  • 选项 B llo
  • 选项 C hel
  • 选项 D elo

3.string s = "abcdef";,执行 s.insert(3, "xyz"); 后,s的内容是什么?

{{ select(3) }}

  • 选项 A "abcxyzdef"
  • 选项 B "xyzabcdef"
  • 选项 C "abcdefxyz"
  • 选项 D "abxyzcdef"

4.find()函数找不到指定子串时,返回值是什么?

{{ select(4) }}

  • 选项 A -1
  • 选项 B 0
  • 选项 C string::npos
  • 选项 D 抛出异常

5.string s = "programming";,执行 s.replace(3, 4, "XYZ"); 后,s的内容是什么?

{{ select(5) }}

  • 选项 A "proXYZmming"
  • 选项 B "prXYZramming"
  • 选项 C "proXYZraming"
  • 选项 D "proXYZming"

6. 下列哪种方式可以连接两个字符串?

{{ select(6) }}

  • 选项 A s1.add(s2)
  • 选项 B s1 + s2
  • 选项 C s1.concat(s2)
  • 选项 D s1.join(s2)

7.string s = "test string";,执行 cout << s.find("st"); 输出什么?

{{ select(7) }}

  • 选项 A 1
  • 选项 B 2
  • 选项 C 3
  • 选项 D 0

8. substr(0, 5) 表示什么含义?

{{ select(8) }}

  • 选项 A 从索引5开始取5个字符
  • 选项 B 从索引0开始取到字符串末尾
  • 选项 C 从索引0开始取5个字符
  • 选项 D 取整个字符串

9. 下列哪个操作会修改原字符串?

{{ select(9) }}

  • 选项 A s.substr(2, 4)
  • 选项 B s.size()
  • 选项 C s.find("abc")
  • 选项 D s.insert(2, "xyz")

10.string s = "hello world";,执行 cout << int(s.find("good")); 输出什么?

{{ select(10) }}

  • 选项 A -1
  • 选项 B 0
  • 选项 C string::npos
  • 选项 D 编译错误

11. 下列哪项是正确的字符串连接方式?

string s1 = "hello";
string s2 = "world";

{{ select(11) }}

  • 选项 A string s = s1.append(s2);
  • 选项 B string s = s1 + s2;
  • 选项 C string s = s1 & s2;
  • 选项 D string s = s1 || s2;

12. 字符串索引是从几开始的?

{{ select(12) }}

  • 选项 A 1
  • 选项 B 0
  • 选项 C -1
  • 选项 D 取决于字符串内容

13.string s = "abcabc";,执行 cout << s.find("ab"); 输出什么?

{{ select(13) }}

  • 选项 A 2
  • 选项 B 0
  • 选项 C 1
  • 选项 D 3

14. 使用replace(pos, len, str)时,如果pos超出字符串长度会发生什么?

{{ select(14) }}

  • 选项 A 自动调整到末尾
  • 选项 B 从开头替换
  • 选项 C 未定义行为
  • 选项 D 编译错误

15. 下列哪个操作不会改变原字符串的内容?

{{ select(15) }}

  • 选项 A s.append("new")
  • 选项 B s += "new"
  • 选项 C cout << s.substr(1, 3);
  • 选项 D s.insert(0, "pre")