#G3OBJ06. GESP C++ 三级真题客观题|字符串及其函数
GESP C++ 三级真题客观题|字符串及其函数
01|2025-06-L3-TF-02
string 的 substr(1, 3) 返回从下标1开始的3个字符的子串。
{{ select(1) }}
- 正确
- 错误
02|2025-06-L3-TF-04
string("hello") == "hello" 的比较结果为true。
{{ select(2) }}
- 正确
- 错误
03|2025-06-L3-TF-07
string 的 substr(2, 10) 在字符串长度不足时会抛出异常。
{{ select(3) }}
- 正确
- 错误
04|2025-12-L3-TF-03
strcmp(str1, str2) 返回 0 表示 str1 大于 str2,返回正数表示两者相等。
{{ select(4) }}
- 正确
- 错误
05|2026-06-L3-SC-13
关于 string 的成员函数,下面说法错误的是( )。
{{ select(5) }}
- size():返回字符串长度(字符个数,不含 '\0')。
- length() 与 size() 功能完全一致,返回字符串长度。
- empty():判断字符串是否为空(非空返回 true,空返回 false)。
- s.append(s2, 0, 3); 从 s2 下标 0 开始,截取 3 个字符。
06|2025-03-L3-SC-14
想要得到字符串 world,下面程序横线处应该填入的是( )


校注版说明(作答前常显):原卷选项D实际输出大写 World,与题干要求的小写 world 冲突;学生训练版仅将D中的 "World" 校注为 "world",答案仍为D。
{{ select(6) }}
- str.insert(4, "World");
cout << str.substr(4, 4); - cout << str.substr(5, 5);
- str.insert("World");
cout << str.substr(5, 5); - str.insert(5, "world");
cout << str.substr(5, 5);
07|2025-09-L3-SC-15
以下关于C++中 string 类和字符数组( char[] )的说法,错误的是( )。
{{ select(7) }}
- string 对象可以使用 = 进行赋值,而字符数组需要使用 strcpy 。
- string 对象的长度可以使用 length() 成员函数获取,而字符数组需要使用 strlen() 函数。
- string 对象在内存中是动态分配空间的,因此可以自动处理字符串长度的变化。
- string 对象和字符数组都可以使用 == 运算符来直接比较两个字符串的内容是否相同。
08|2026-03-L3-SC-03
关于下列正确的程序段,说法正确的是( )。


{{ select(8) }}
- 字符数组 str1 和 str2 完全相同。
- cout << str1 << endl;
cout << str2 << endl;
这段程序多次执行将输出不同的结果。 - 字符数组 str1 和 str2 不相等。
- 这两个赋值方式完全相同。
09|2026-03-L3-SC-10
执行以下 C++ 代码后,sub 的值是( )。

{{ select(9) }}
- 20
- 02
- 2026
- 026
10|2026-06-L3-SC-05
一种加密方式是字符数组与密钥 KEY、运算方式分开传输,比如字符数组 char text[4] = {'G', 'E', 'S', 'P'},由一种传输方式发送,密钥 KEY = 2026 通过另一种发送方式发送,运算方式 char function[4] = {'|', '-', '^', '+'}; 又是另一种传输方式发送。三种数据都到达目的地以后,分别进行例如 'G' | 6、'E' - 2、'S' ^ 0、'P' + 2 等计算,来得到相应的真实内容,上述 GESP 通过这种加密方式,加密以后最终的内容是( )。
{{ select(10) }}
- GCSR
- RSCG
- GCSA
- BCSR
11|2026-06-L3-SC-07
关于字符串和字符数组,下列说法正确的是( )。




{{ select(11) }}
- 上面程序能够正确执行,len1 与 len2 相等。
- 这段程序将能够正确执行。
- 这段程序即使能够运行,但是存在覆盖数组以外的内存空间的行为,可能会引起严重错误。
- 这段程序能够正确执行,不存在数组越界行为。
12|2025-06-L3-SC-14
C++语句 string s="Gesp Test"; 执行s.rfind("e")以后,输出的是( )
{{ select(12) }}
- 1
- 2
- 6
- 3
13|2025-03-L3-SC-13
下面程序最后能够得到 HelloC++ 的是( )


{{ select(13) }}
- str.replace(0, 5, "C++");
- str.replace(5, 5, "C++");
- str.replace(1, 5, "C++");
- str.replace(4, 5, "C++");
14|2025-09-L3-SC-14
以下C++代码中存在几处错误( )。

{{ select(14) }}
- 0处
- 1处
- 2处
- 3处
15|2025-03-L3-SC-15
有 n 个正整数,假设一个正整数是美丽数字当且仅当该正整数是 9 的倍数但不是 8 的倍数。下面的程序是编写计算 n 个正整数中美丽数字的数量,横线处应该填入的是( )

校注版说明(作答前常显):官网原题、官方答案C、页码和PDF哈希永久保留。原题中C与D在无副作用bool表达式下真值相同,存在两个合理选项;学生训练版仅将D选项中的单个&改为||,保证C成为唯一合理答案。学生答案仍为C。
{{ select(15) }}
- if (a % 9 != 0 && a % 8 != 0)
- if (a % 9 == 0 & a % 8 == 0)
- if (a % 9 == 0 && a % 8 != 0)
- if (a % 9 == 0 || a % 8 != 0)