#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,下面程序横线处应该填入的是( )

题干主代码,官方版与训练版共用

选项A/B/C代码,官方版与训练版共用

校注版说明(作答前常显):原卷选项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

关于下列正确的程序段,说法正确的是( )。

题干主代码

选项B代码

{{ 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

关于字符串和字符数组,下列说法正确的是( )。

SC-07选项A代码

SC-07选项B代码

SC-07选项C代码

SC-07选项D代码

{{ 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++ 的是( )

题干代码及选项A/B,跨页第1部分

选项C/D,跨页第2部分

{{ 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++代码中存在几处错误( )。

SC-14题干代码

{{ 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)