题号123456789101112131415
答案CDCCCACACBBACCC
C++ 五级
2024 年 09 月
1单选题(每题 2 分,共 30 分)
第 1 题 下面关于链表和数组的描述,错误的是( )。
A. 数组大小固定,链表大小可动态调整。
B. 数组支持随机访问,链表只能顺序访问。
C. 存储相同数目的整数,数组比链表所需的内存多。
D. 数组插入和删除元素效率低,链表插入和删除元素效率高。
第 2 题 通过( )操作,能完成在双向循环链表结点p之后插入结点s的功能(其中next域为结点的直接后继,
prev域为结点的直接前驱)。
A. p->next->prev = s; s->prev = p; p->next = s; s->next = p->next;
B. p->next->prev = s; p->next = s; s->prev = p; s->next = p->next;
C. s->prev = p; s->next = p->next; p->next = s; p->next->prev = s;
D. s->next = p->next; p->next->prev = s; s->prev = p; p->next = s;
第 3 题 对下面两个函数,说法错误的是( )。
A. sumA体现了迭代的思想。
B. SumB采用的是递归方式。
int sumA(int n) {
int res = 0;
for (int i = 1; i <= n; i++) {
res += i;
}
return res;
}
int sumB(int n) {
if (n == 1)
return 1;
int res = n + sumB(n - 1);
return res;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
C. SumB函数比SumA的时间效率更高。
D. 两个函数的实现的功能相同。
第 4 题 有如下函数fun,则fun(20, 12)的返回值为( )。
A. 20
B. 12
C. 4
D. 2
第 5 题 下述代码实现素数表的埃拉托斯特尼筛法,筛选出所有小于等于n的素数,则横线上应填的最佳代码是( )。
A. for (int j = i; j <= n; j++)
B. for (int j = i * i; j <= n; j++)
C. for (int j = i * i; j <= n; j += i)
D. for (int j = i; j <= n; j += i)
第 6 题 下述代码实现素数表的线性筛法,筛选出所有小于等于n的素数,则横线上应填的代码是( )。
int fun(int a, int b) {
if (a % b == 0)
return b;
else
return fun(b, a % b);
}
1
2
3
4
5
6
void sieve_Eratosthenes(int n) {
vector<bool> is_prime(n + 1, true);
vector<int> primes;
for (int i = 2; i * i <= n; i++) {
if (is_prime[i]) {
primes.push_back(i);
________________________________ { // 在此处填入代码
is_prime[j] = false;
}
}
GESP 9月认证 C++ 五级真题,2024年9月GESP认证C++编程五级真题及答案,gesp真题,C++编程题库,gesp题库