林老师 · 客观题题库 · GESP 五级 · 2023 真题

GESP 五级 · 2023 真题

五级 · 2023 真题 · 客观题 · 每题 2 分
真题
复刻
试卷编号OBJ-769482
题目总数25 题 · 50 分
试卷类型客观题
考生须知:
① 本卷为客观题单卷,合计 25 题 · 50 分,全部为客观题;
② 试卷右上角设有 「提交答卷」「重置考试」 按钮,提交后系统自动判分并显示答题正确情况,请确认全部作答后再行提交;
③ 试卷不显示答案,提交后方可查看每题作答与正确答案的对照;
④ 答卷进度会保留在本地缓存中,刷新或再次打开仍可继续作答;
⑤ 本卷仅供学生练习使用;请勿用于其他用途;题面有问题请联系:i64coder@163.com。

判 分 报 告

0 / 50 分
0
答 对 · 得 0
0
答 错 · 失 0
当前筛选下没有题目

客 观 题

25 QUESTIONS · 2 POINTS EACH
第 1 题 单选 未作答

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

(2 分)
GESP 五级 2023-09 · 单选 第1题 | 知识点 输入设备、输出设备
第 2 题 单选 未作答

如果 ab 均为 int 类型的变量,且 b 的值不为 00,那么下列能正确判断"ab33 倍"的表达式是( )。

(2 分)
GESP 五级 2023-09 · 单选 第2题 | 知识点 关系运算、算术运算
第 3 题 单选 未作答

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

(2 分)
GESP 五级 2023-09 · 单选 第3题 | 知识点 算术运算、整型除法
第 4 题 单选 未作答

有关下面 C++ 代码说法错误的是( )。

01// sumA()和sumB()用于求从1到N之和
02#include <iostream>
03using namespace std;
04int sumA(int n) {
05    int sum = 0;
06    for (int i = 1; i < n + 1; i++)
07        sum += i;
08    return sum;
09}
10int sumB(int n) {
11    if (n == 1)
12        return 1;
13    else
14        return n + sumB(n - 1);
15}
16int main() {
17    int n = 0;
18    cin >> n;
19    cout << sumA(n) << " " << sumB(n) << endl;
20    return 0;
21}

(2 分)
GESP 五级 2023-09 · 单选 第4题 | 知识点 递归函数、时间复杂度
第 5 题 单选 未作答

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

01//字符串反序
02#include <iostream>
03#include <string>
04using namespace std;
05string sReverse(string sIn) {
06    if (sIn.length() <= 1) {
07        return sIn;
08    } else {
09        return ____________ // 此处填写代码
10    }
11}
12int main() {
13    string sIn;
14    cin >> sIn;
15    cout << sReverse(sIn) << endl;
16    return 0;
17}

(2 分)
GESP 五级 2023-09 · 单选 第5题 | 知识点 递归函数、程序补全、string类
第 6 题 单选 未作答

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

01#include <iostream>
02using namespace std;
03// 递归实现汉诺塔,将N个圆盘从A通过B移动C
04// 圆盘从底到顶,半径必须从大到小
05void Hanoi(string A, string B, string C, int N) {
06    if (N == 1) {
07        cout << A << " -> " << C << endl;
08    } else {
09        Hanoi(A, C, B, N - 1);
10        cout << A << " -> " << C << endl;
11        ____________; // 此处填写代码
12    }
13}
14int main() {
15    Hanoi("甲", "乙", "丙", 3);
16    return 0;
17}

(2 分)
GESP 五级 2023-09 · 单选 第6题 | 知识点 递归函数、程序补全
第 7 题 单选 未作答

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

01#include <iostream>
02#include <vector>
03#include <algorithm>
04using namespace std;
05
06bool isOdd(int N) {
07    return N % 2 == 1;
08}
09bool compare(int a, int b) {
10    if (a % 2 == 0 && b % 2 == 1)
11        return true;
12    return false;
13}
14int main() {
15    vector<int> lstA; // lstA是一个整型向量
16    for (int i = 1; i < 100; i++)
17        lstA.push_back(i);
18    // 对lstA成员按比较函数执行结果排序
19    sort(lstA.begin(), lstA.end(), ____________); // 此处填写代码1
20
21    vector<int> lstB;
22    for (int i = 0; i < lstA.size(); i++) // lstB成员全为奇数
23        if (____________) // 此处填写代码2
24            lstB.push_back(lstA[i]);
25
26    cout << "lstA: ";
27    for (int i = 0; i < lstA.size(); i++)
28        cout << lstA[i] << " ";
29    cout << endl;
30
31    cout << "lstB: ";
32    for (int i = 0; i < lstB.size(); i++)
33        cout << lstB[i] << " ";
34    cout << endl;
35    return 0;
36}

(2 分)
GESP 五级 2023-09 · 单选 第7题 | 知识点 STL算法与函数、程序补全、排序复杂度
第 8 题 单选 未作答

有关下面代码正确的是( )。

01// 在C++语言中,可以通过函数指针的形式,将一个函数作为另一个函数的参数。
02// 具体来说:bool checkNum(bool (*Fx)(int), int N); 声明了一个函数,
03// 其第一个参数是函数指针类型,指向一个接收一个int参数且返回值为bool的函数。
04#include <iostream>
05using namespace std;
06
07bool isEven(int N) {
08    return N % 2 == 0;
09}
10bool checkNum(bool (*Fx)(int), int N) {
11    return Fx(N);
12}
13int main() {
14    cout << checkNum(isEven, 10) << endl;
15    return 0;
16}

(2 分)
GESP 五级 2023-09 · 单选 第8题 | 知识点 指针、函数定义与调用、程序阅读与输出推断
第 9 题 单选 未作答

有关下面 C++ 代码正确的是( )。

01#include <iostream>
02using namespace std;
03
04bool isOdd(int N) {
05    return N % 2 == 1;
06}
07int Square(int N) {
08    return N * N;
09}
10bool checkNum(bool (*Fx)(int), int x) {
11    return Fx(x);
12}
13int main() {
14    cout << checkNum(isOdd, 10) << endl;  // 输出行A
15    cout << checkNum(Square, 10) << endl; // 输出行B
16    return 0;
17}

(2 分)
GESP 五级 2023-09 · 单选 第9题 | 知识点 指针、函数定义与调用
第 10 题 单选 未作答

下面代码执行后的输出是( )。

01#include <iostream>
02using namespace std;
03
04int jumpFloor(int N) {
05    cout << N << "#";
06    if (N == 1 || N == 2) {
07        return N;
08    } else {
09        return jumpFloor(N - 1) + jumpFloor(N - 2);
10    }
11}
12int main() {
13    cout << jumpFloor(4) << endl;
14    return 0;
15}

(2 分)
GESP 五级 2023-09 · 单选 第10题 | 知识点 递归、程序阅读与输出推断
第 11 题 单选 未作答

下面代码中的 isPrimeA()isPrimeB() 都用于判断参数 N 是否素数,有关其时间复杂度的正确说法是( )。

01#include <iostream>
02#include <cmath>
03using namespace std;
04
05bool isPrimeA(int N) {
06    if (N < 2)
07        return false;
08    for (int i = 2; i < N; i++)
09        if (N % i == 0)
10            return false;
11    return true;
12}
13bool isPrimeB(int N) {
14    if (N < 2)
15        return false;
16    int endNum = int(sqrt(N));
17    for (int i = 2; i <= endNum; i++)
18        if (N % i == 0)
19            return false;
20    return true;
21}
22int main() {
23    cout << boolalpha;
24    cout << isPrimeA(13) << " " << isPrimeB(13) << endl;
25    return 0;
26}

(2 分)
GESP 五级 2023-09 · 单选 第11题 | 知识点 质数判定、时间复杂度
第 12 题 单选 未作答

下面代码用于归并排序,其中 merge() 函数被调用次数为( )。

01#include <iostream>
02using namespace std;
03
04void mergeSort(int * listData, int start, int end);
05void merge(int * listData, int start, int middle, int end);
06
07void mergeSort(int * listData, int start, int end) {
08    if (start >= end)
09        return;
10    int middle = (start + end) / 2;
11    mergeSort(listData, start, middle);
12    mergeSort(listData, middle + 1, end);
13    merge(listData, start, middle, end);
14}
15void merge(int * listData, int start, int middle, int end) {
16    int leftSize = middle - start + 1;
17    int rightSize = end - middle;
18
19    int * left = new int[leftSize];
20    int * right = new int[rightSize];
21    for (int i = 0; i < leftSize; i++)
22        left[i] = listData[start + i];
23    for (int j = 0; j < rightSize; j++)
24        right[j] = listData[middle + 1 + j];
25
26    int i = 0, j = 0, k = start;
27    while (i < leftSize && j < rightSize) {
28        if (left[i] <= right[j]) {
29            listData[k] = left[i];
30            i++;
31        } else {
32            listData[k] = right[j];
33            j++;
34        }
35        k++;
36    }
37
38    while (i < leftSize) {
39        listData[k] = left[i];
40        i++;
41        k++;
42    }
43    while (j < rightSize) {
44        listData[k] = right[j];
45        j++;
46        k++;
47    }
48    delete[] left;
49    delete[] right;
50}
51int main() {
52    int lstA[] = {1, 3, 2, 7, 11, 5, 3};
53    int size = sizeof(lstA) / sizeof(lstA[0]);
54
55    mergeSort(lstA, 0, size - 1); // 对lstA执行归并排序
56
57    for (int i = 0; i < size; i++)
58        cout << lstA[i] << " ";
59    cout << endl;
60    return 0;
61}

(2 分)
GESP 五级 2023-09 · 单选 第12题 | 知识点 归并排序、递归
第 13 题 单选 未作答

归并排序将序列不断分成两半、分别递归排序后再合并,这种算法设计思想属于( )。

(2 分)
GESP 五级 2023-09 · 单选 第13题 | 知识点 分治、归并排序
第 14 题 单选 未作答

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

(2 分)
GESP 五级 2023-09 · 单选 第14题 | 知识点 归并排序、分治
第 15 题 单选 未作答

有关下面代码的说法正确的是( )。

01#include <iostream>
02
03class Node {
04public:
05    int Value;
06    Node * Next;
07
08    Node(int Val, Node * Nxt = nullptr) {
09        Value = Val;
10        Next = Nxt;
11    }
12};
13
14int main() {
15    Node * firstNode = new Node(10);
16    firstNode->Next = new Node(100);
17    firstNode->Next->Next = new Node(111, firstNode);
18    return 0;
19}

(2 分)
GESP 五级 2023-09 · 单选 第15题 | 知识点 循环链表、单向链表、类与对象
第 16 题 判断 未作答

TCP/IP 的传输层的两个不同的协议分别是 UDPTCP

(2 分)
GESP 五级 2023-09 · 判断 第1题 | 知识点 网络协议、网络基础
第 17 题 判断 未作答

在特殊情况下流程图中可以出现三角框和圆形框。

(2 分)
GESP 五级 2023-09 · 判断 第2题 | 知识点 流程图
第 18 题 判断 未作答

找出自然数 NN 以内的所有质数,常用算法有埃氏筛法和线性筛法,其中埃氏筛法效率更高。

(2 分)
GESP 五级 2023-09 · 判断 第3题 | 知识点 欧拉筛、埃氏筛
第 19 题 判断 未作答

在 C++ 中,可以使用二分法查找链表中的元素。

(2 分)
GESP 五级 2023-09 · 判断 第4题 | 知识点 二分查找、单向链表
第 20 题 判断 未作答

在 C++ 中,通过恰当的实现,可以将链表首尾相接,形成循环链表。

(2 分)
GESP 五级 2023-09 · 判断 第5题 | 知识点 循环链表、单向链表
第 21 题 判断 未作答

贪心算法的解可能不是最优解。

(2 分)
GESP 五级 2023-09 · 判断 第6题 | 知识点 贪心
第 22 题 判断 未作答

一般说来,冒泡排序算法优于归并排序。

(2 分)
GESP 五级 2023-09 · 判断 第7题 | 知识点 归并排序、冒泡排序、排序复杂度
第 23 题 判断 未作答

C++ 语言中的 qsort 库函数是不稳定排序。

(2 分)
GESP 五级 2023-09 · 判断 第8题 | 知识点 排序稳定性、STL算法与函数
第 24 题 判断 未作答

质数的判定和筛法的目的并不相同,质数判定旨在判断特定的正整数是否为质数,而质数筛法意在筛选出范围内的所有质数。

(2 分)
GESP 五级 2023-09 · 判断 第9题 | 知识点 质数判定、埃氏筛
第 25 题 判断 未作答

下面的 C++ 代码执行后将输出 0 5 1 6 2 3 4

01#include <iostream>
02#include <algorithm>
03using namespace std;
04
05bool compareModulo5(int a, int b) {
06    return a % 5 < b % 5;
07}
08int main() {
09    int lst[7];
10    for (int i = 0; i < 7; i++)
11        lst[i] = i;
12
13    // 对序列所有元素按compareModulo5结果排序
14    sort(lst, lst + 7, compareModulo5);
15
16    for (int i = 0; i < 7; i++)
17        cout << lst[i] << " ";
18    cout << endl;
19    return 0;
20}

(2 分)
GESP 五级 2023-09 · 判断 第10题 | 知识点 STL算法与函数、排序稳定性、程序阅读与输出推断