理论卷2023年9月GESP等级认证(C++) · 五级

GESP C++ 5级 2023.09

满分 100 · 及格 60 · 时长 60 分钟 · 共 27 题 (单选15 / 判断10 / 编程题2)
试卷阅览 · 免费预览前 10 题 · 交卷后可查看答案与解析
1
单选题号 #13030
分值 2

近年来,线上授课变得普遍,很多有助于改善教学效果的设备也逐渐流行,其中包括比较常用的手写板,那么它属于哪类设备?

A

输入

B

输出

C

控制

D

记录

2
单选题号 #13031
分值 2

如果 aa 和 bb 均为 intint 类型的变量,且 bb 的值不为 00 ,那么下列能正确判断“ a 是 b 的3倍”的表达式是

A

(a >> 3 == b)

B

(a - b) % 3 == 0

C

(a / b == 3)

D

(a == 3 * b)

3
单选题号 #13032
分值 2

如果变量 aa 和 bb 分别为 doubledouble 类型和 intint 类型,则表达式 (a = 6, b = 3 * (7 + 8) / 2, b += a) 的计算结果为

A

6

B

21

C

28

D

不确定

4
单选题号 #13033
分值 2

有关下面C++代码说法错误的是
图

A

sumA() 用循环方式求从 1 到 N 之和, sumB() 用递归方式求从 1 到 N 之和。

B

默认情况下,如果输入正整数 1000 ,能实现求从 1 到 1000 之和。

C

默认情况下,如果输入正整数 100000 ,能实现求从 1 到 100000 之和。

D

一般说来, sumA() 的效率高于 sumB() 。

5
单选题号 #13034
分值 2

下面 C++ 代码以递归方式实现字符串反序,横线处应填上代码是

// 字符串反序
#include <iostream>
#include <string>
using namespace std;

string sReverse(string sIn) {
    if (sIn.length() <= 1) {
        return sIn;
    } else {
        return __________; // 此处填写代码
    }
}

int main() {
    string sIn;
    cin >> sIn;
    cout << sReverse(sIn) << endl;
    return 0;
}
A

sIn[sIn.length() - 1] + sReverse(sIn.substr(0, sIn.length() - 1));

B

sIn[0] + sReverse(sIn.substr(1, sIn.length() - 1));

C

sReverse(sIn.substr(0, sIn.length() - 1)) + sIn[sIn.length() - 1];

D

sReverse(sIn.substr(1, sIn.length() - 1)) + sIn[sIn.length() - 1];

6
单选题号 #13035
分值 2

印度古老的汉诺塔传说:创世时有三根金刚柱,其中一柱从下往上按照大小顺序摞着 6464 片黄金圆盘,当圆盘逐一从一柱借助另外一柱全部移动到另外一柱时,宇宙毁灭。
移动规则:在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
下面的 C++ 代码以递归方式实现汉诺塔,横线处应填入代码是

#include <iostream>
using namespace std;

// 递归实现汉诺塔,将N个圆盘从A通过B移动C
// 圆盘从底到顶,半径必须从大到小
void Hanoi(string A, string B, string C, int N) {
    if (N == 1) {
        cout << A << " -> " << C << endl;
    } else {
        Hanoi(A, C, B, N - 1);
        cout << A << " -> " << C << endl;
        ______________;// 此处填写代码
    }
}

int main() {
    Hanoi("甲", "乙", "丙", 3);
    return 0;
}
A

Hanoi(B, C, A, N - 2)

B

Hanoi(B, A, C, N - 1)

C

Hanoi(A, B, C, N - 2)

D

Hanoi(C, B, A, N - 1)

7
单选题号 #13036
分值 2

根据下面C++代码的注释,两个横线处应分别填入
图

A

compare 和 isOdd(lstA[i])

B

compare(x1,y1) 和 isOdd

C

compare 和 isOdd

D

compare(x1,y1) 和 isOdd(lstA[i])

8
单选题号 #13037
分值 2

有关下面代码正确的是
图

A

checkNum() 函数定义错误。

B

将 isEven 作为 checkNum() 参数将导致错误。

C

执行后将输出 1 。

D

运行时触发异常。

9
单选题号 #13038
分值 2

有关下面C++代码正确的是
图

A

checkNum() 函数定义错误。

B

输出行 A 的语句将导致编译错误。

C

输出行 B 的语句将导致编译错误。

D

该代码没有编译错误。

10
单选题号 #13039
分值 2

归并排序算法的基本思想是

A

将数组分成两个子数组,分别排序后再合并。

B

随机选择一个元素作为枢轴,将数组划分为两个部分。

C

比较相邻的两个元素,如果顺序错误就交换位置。

D

递推算法

🔒

已解锁前 10 题

第 11~27 题(共 17 题)可在考试中作答
本卷为普通试卷:注册用户每题扣 1 积分(每日登录送 30 体验积分),交卷后查看答案与解析
海小星AI平台海小星AI平台

点亮AI梦想,编程未来之星。专业的青少年AI编程教育平台。

课程方向

  • AIGC人工智能
  • Scratch图形化
  • Python编程
  • C++/NOIP竞赛

联系我们

  • 北京市西城区万博苑7号楼3层F28室
  • +86-010-83553010
  • contact@seanova.cn

© 2026 海小星AI平台|京ICP备2022032747号

隐私政策服务条款