#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")