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

GESP 五级 · 2023 真题

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

判 分 报 告

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

客 观 题

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

下面 C++ 代码用于求斐波那契数列,该数列第 1122 项为 11,以后各项均是前两项之和。下面有关说法错误的是( )。

01int fiboA(int N)
02{
03    if (N == 1 || N == 2)
04        return 1;
05    return fiboA(N - 1) + fiboA(N - 2);
06}
07int fiboB(int N)
08{
09    if (N == 1 || N == 2)
10        return 1;
11    int last2 = 1, last1 = 1;
12    int nowVal = 0;
13    for (int i = 2; i < N; i++)
14    {
15        nowVal = last1 + last2;
16        last2 = last1;
17        last1 = nowVal;
18    }
19    return nowVal;
20}

(2 分)
GESP 五级 2023-12 · 单选 第1题 | 知识点 递归、递推、时间复杂度
第 2 题 单选 未作答

下面 C++ 代码以递归方式实现合并排序,并假设 merge(int T[], int R[], int s, int m, int t) 函数将有序(同样排序规则)的 T[s..m]T[m+1..t] 归并到 R[s..t] 中。横线处应填上代码是( )。

01void mergeSort(int SList[], int TList[], int s, int t, int len)
02{
03    if (s == t) {
04        TList[s] = SList[s];
05        return;
06    }
07    int *T2 = new int[len]; // 保存中间结果
08    int m = (s + t) / 2;
09    ____________;
10    merge(T2, SList, s, m, t);
11    delete T2;
12    return ;
13}

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

阅读下面的 C++ 代码,执行后其输出是( )。

01int stepCount = 0;
02int fracA(int N)
03{
04    stepCount += 1;
05    cout << stepCount << "->";
06    int rtn = 1;
07    for (int i = 1; i <= N; i++)
08        rtn *= i;
09    return rtn;
10}
11int fracB(int N)
12{
13    stepCount += 1;
14    cout << stepCount << "->";
15    if (N == 1)
16        return 1;
17    return N * fracB(N - 1);
18}
19int main()
20{
21    cout << fracA(5);
22    cout << "<====>";
23    cout << fracB(5);
24    return 0;
25}

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

下面的 C++ 用于对 lstA 排序,使得偶数在前奇数在后,横线处应填入( )。

01bool isEven(int N)
02{
03    return N % 2 == 0;
04}
05
06void swap(int &a, int &b)
07{
08    int t;
09    t=a,a=b,b=t;
10    return;
11}
12
13void sortA(int lstA[], int n)
14{
15    int i, j, t;
16    for (i = n-1; i > 0; i--)
17        for(j = 0; j < i; j++)
18            if(____________)
19                swap(lstA[j], lstA[j+1]);
20
21    return;
22}

(2 分)
GESP 五级 2023-12 · 单选 第4题 | 知识点 冒泡排序、逻辑运算、程序补全
第 5 题 单选 未作答

下面的 C++ 代码用于将字符串保存到带头节点的双向链表中,并对重复的串计数,然后将最新访问的串的节点放在链头便于查找。横线处应填入代码是( )。

01typedef struct Node{
02    string str;
03    int ref;
04    struct Node *next, *prev;
05}Node;
06Node * Insert(Node *pHead, string s)
07{
08    Node *p = pHead->next;
09    Node *q;
10    while(p) {
11        if(p->str == s) {
12            p->ref++;
13            p->next->prev = p->prev;
14            p->prev->next = p->next;
15            break;
16        }
17        p=p->next;
18    }
19    if(!p) {
20        p = new Node;
21        p->str = s;
22        p->ref=0;
23        p->next = p->prev = NULL;
24    }
25    ____________
26    pHead->next = p, p->prev = pHead;
27    return pHead;
28}

(2 分)
GESP 五级 2023-12 · 单选 第5题 | 知识点 双向链表、程序补全
第 6 题 单选 未作答

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

01int rc;
02int foo(int x, int y)
03{
04    int r;
05    if(y == 0)
06        r = x;
07    else {
08        r = foo(y, x % y);
09        rc++;
10    }
11    return r;
12}

(2 分)
GESP 五级 2023-12 · 单选 第6题 | 知识点 最大公约数、递归、程序阅读与输出推断
第 7 题 单选 未作答

下面的 C++ 代码实现对 list 的快速排序,有关说法,错误的是( )。

01vector<int> operator + (vector<int>lA, vector<int>lB)
02{
03    vector<int>lst;
04
05    for (int i = 1; i < lA.size(); i++)
06        lst.push_back(lA[i]);
07    for (int i = 1; i < lB.size(); i++)
08        lst.push_back(lB[i]);
09
10    return lst;
11}
12vector<int> qSort(vector<int>lst)
13{
14    if (lst.size() < 2)
15        return lst;
16    int pivot = lst[0];
17    vector<int> less, greater;
18    for (int i = 1; i < lst.size(); i++)
19        if (lst[i] <= pivot) less.push_back(lst[i]);
20        else greater.push_back(lst[i]);
21    for (int i = 1; i < lst.size(); i++)
22        if (lst[i] <= pivot) less.push_back(lst[i]);
23        else greater.push_back(lst[i]);
24
25    return ____________;
26}

(2 分)
GESP 五级 2023-12 · 单选 第7题 | 知识点 快速排序、程序补全
第 8 题 单选 未作答

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

01bool isPrimeA(int N)
02{
03    if (N < 2)
04        return false;
05    for (int i = 2; i <= N / 2; i++)
06        if (N % i == 0)
07            return false;
08    return true;
09}
10bool isPrimeB(int N)
11{
12    if (N < 2)
13        return false;
14    for (int i = 2; i <= sqrt(N); i++)
15        if (N % i == 0)
16            return false;
17    return true;
18}

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

下面 C++ 代码用于有序 list 的二分查找,有关说法错误的是( )。

01int _binarySearch(vector<int>lst, int Low, int High, int Target)
02{
03    if (Low > High)
04        return -1;
05    int Mid = (Low + High) / 2;
06    if (Target == lst[Mid])
07        return Mid;
08    else if (Target < lst[Mid])
09        return _binarySearch(lst, Low, Mid - 1, Target);
10    else
11        return _binarySearch(lst, Mid + 1, High, Target);
12}
13int bSearch(vector<int>lst, int Val)
14{
15    return _binarySearch(lst, 0, lst.size(), Val);
16}

(2 分)
GESP 五级 2023-12 · 单选 第9题 | 知识点 二分查找、分治、递归
第 10 题 单选 未作答

在二分查找算法中,如果有序列表中有 N 个元素,其时间复杂度是( )。

(2 分)
GESP 五级 2023-12 · 单选 第10题 | 知识点 二分查找、时间复杂度
第 11 题 单选 未作答

下面的 C++ 代码使用数组模拟整数加法,可以处理超出大整数范围的加法运算。横线处应填入代码是( )。

01vector<int> operator + (vector<int> a, vector<int> b)
02{
03    vector<int> c;
04    int t = 0;
05
06    for(int i = 0; i < a.size() || i < b.size(); i ++ )
07    {
08        if(i < a.size()) t = t + a[i];
09        if(i < b.size()) t = t + b[i];
10        ____________
11    }
12
13    if(t) c.push_back(t);
14
15    return c;
16}

(2 分)
GESP 五级 2023-12 · 单选 第11题 | 知识点 高精度、程序补全
第 12 题 单选 未作答

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

01class Node
02{
03public:
04    int Value;
05    Node* Prev;
06    Node* Next;
07    Node(int Val, Node* Prv = NULL, Node* Nxt = NULL);
08};
09
10Node::Node(int Val, Node*Prv, Node* Nxt)
11{
12    this->Value = Val;
13    this->Prev = Prv;
14    this->Next = Nxt;
15}
16
17int main()
18{
19    Node firstNode = Node(10);
20    firstNode.Next = new Node(100, &firstNode);
21    firstNode.Next->Next = new Node(111, firstNode.Next);
22}

(2 分)
GESP 五级 2023-12 · 单选 第12题 | 知识点 双向链表、类与对象、指针
第 13 题 单选 未作答

通讯卫星在通信网络系统中主要起到( )的作用。

(2 分)
GESP 五级 2023-12 · 单选 第13题 | 知识点 网络设备、网络基础
第 14 题 单选 未作答

小杨想编写一个判断任意输入的整数 N 是否为素数的程序,下面哪个方法不合适?( )

(2 分)
GESP 五级 2023-12 · 单选 第14题 | 知识点 质数判定、二分答案
第 15 题 单选 未作答

下面的排序算法都要处理多趟数据,哪种排序算法不能保证在下一趟处理时从待处理数据中选出最大或最小的数据?( )

(2 分)
GESP 五级 2023-12 · 单选 第15题 | 知识点 快速排序、选择排序
第 16 题 判断 未作答

归并排序的时间复杂度是 O(NlogN)O(N \log N)

(2 分)
GESP 五级 2023-12 · 判断 第1题 | 知识点 归并排序、排序复杂度
第 17 题 判断 未作答

小杨在生日聚会时拿一块 H*W 的巧克力招待来的 K 个小朋友,保证每位小朋友至少能获得一块相同大小的巧克力。那么小杨想分出来最大边长的巧克力可以使用二分法。

(2 分)
GESP 五级 2023-12 · 判断 第2题 | 知识点 二分答案、二分查找
第 18 题 判断 未作答

以下 C++ 代码能以递归方式实现斐波那契数列,该数列第 1122 项为 11,以后各项均是前两项之和。

01int Fibo(int N)
02{
03    if (N == 1 || N == 2)
04        return 1;
05    else
06    {
07        int m = fiboA(N - 1);
08        int n = fiboB(N - 2);
09        return m + n;
10    }
11}

(2 分)
GESP 五级 2023-12 · 判断 第3题 | 知识点 递归、递推、程序阅读与输出推断
第 19 题 判断 未作答

贪心算法可以达到局部最优,但可能不是全局最优解。

(2 分)
GESP 五级 2023-12 · 判断 第4题 | 知识点 贪心
第 20 题 判断 未作答

小杨设计了一个拆数程序,它能够将任意的非质数自然数 N 转换成若干个质数的乘积,这个程序是可以设计出来的。

(2 分)
GESP 五级 2023-12 · 判断 第5题 | 知识点 质因数分解、质数判定
第 21 题 判断 未作答

插入排序有时比快速排序时间复杂度更低。

(2 分)
GESP 五级 2023-12 · 判断 第6题 | 知识点 插入排序、快速排序、排序复杂度
第 22 题 判断 未作答

下面的 C++ 代码能实现十进制正整数 N 转换为八进制并输出。

01char s[10];
02int main()
03{
04    int N;
05    cin >> N;
06    string rst = "";
07    while (N != 0)
08    {
09        s[0]=N % 8 + '0';
10        rst += string(s);
11        N /= 8;
12    }
13    cout << rst << endl;
14
15    return 0;
16}

(2 分)
GESP 五级 2023-12 · 判断 第7题 | 知识点 进制转换、while循环、程序阅读与输出推断
第 23 题 判断 未作答

对数组 int arr[] = {2, 6, 3, 5, 4, 8, 1, 0, 9, 10} 执行 sort(arr, arr+10),则执行后 arr 中的数据调整为 {0, 1, 2, 3, 4, 5, 6, 8, 9, 10}

(2 分)
GESP 五级 2023-12 · 判断 第8题 | 知识点 STL算法与函数、程序阅读与输出推断
第 24 题 判断 未作答

小杨想写一个程序来算出正整数 N 有多少个因数,经过思考他写出了一个重复没有超过 N/2 次的循环就能够算出来了。

(2 分)
GESP 五级 2023-12 · 判断 第9题 | 知识点 约数个数
第 25 题 判断 未作答

同样的整数序列分别保存在单链表和双向链中,这两种链表上的简单冒泡排序的复杂度相同。

(2 分)
GESP 五级 2023-12 · 判断 第10题 | 知识点 冒泡排序、单向链表、双向链表