CCF GESP 2025年6月认证 C++ 7级
一
单选题
第 1 题
已知小写字母
b 的 ASCII 码为 $98$,下列 C++ 代码的输出结果是( )。#include <iostream>
using namespace std;
int main() {
char a = 'b' ^ 4;
cout << a;
return 0;
}
第 2 题
已知
a 为 int 类型变量,p 为 int * 类型变量,下列赋值语句不符合语法的是( )。
第 3 题
下列关于 C++ 类的说法,错误的是( )。
第 4 题
下列 C++ 代码的输出是( )。
#include <iostream>
using namespace std;
int main() {
int arr[5] = {2, 4, 6, 8, 10};
int * p = arr + 2;
cout << p[3] << endl;
return 0;
}
第 5 题
假定只有一个根节点的树的深度为 1,则一棵有 $N$ 个节点的完全二叉树,则树的深度为( )。
第 6 题
对于如下图的二叉树,说法正确的是( )。

第 7 题
图的存储和遍历算法,下面说法错误的是( )。
第 8 题
一个连通的简单有向图,共有 28 条边,则该图至少有( )个顶点。
第 9 题
以下哪个方案不能合理解决或缓解哈希表冲突( )。
第 10 题
以下关于动态规划的说法中,错误的是( )。
第 11 题
下面程序的输出为( )。
#include <iostream>
using namespace std;
int rec_fib[100];
int fib(int n) {
if (n <= 1)
return n;
if (rec_fib[n] == 0)
rec_fib[n] = fib(n - 1) + fib(n - 2);
return rec_fib[n];
}
int main() {
cout << fib(6) << endl;
return 0;
}
第 12 题
下面程序的时间复杂度为( )。
int rec_fib[MAX_N];
int fib(int n) {
if (n <= 1)
return n;
if (rec_fib[n] == 0)
rec_fib[n] = fib(n - 1) + fib(n - 2);
return rec_fib[n];
}
第 13 题
下面 search 函数的平均时间复杂度为( )。
int search(int n, int * p, int target) {
int low = 0, high = n;
while (low < high) {
int middle = (low + high) / 2;
if (target == p[middle]) {
return middle;
} else if (target > p[middle]) {
low = middle + 1;
} else {
high = middle;
}
}
return -1;
}
第 14 题
下面程序的时间复杂度为( )。
int primes[MAXP], num = 0;
bool isPrime[MAXN] = {false};
void sieve() {
for (int n = 2; n <= MAXN; n++) {
if (!isPrime[n])
primes[num++] = n;
for (int i = 0; i < num && n * primes[i] <= MAXN; i++) {
isPrime[n * primes[i]] = true;
if (n % primes[i] == 0)
break;
}
}
}
第 15 题
下列选项中,哪个不可能是下图的广度优先遍历序列( )。

单选题部分已到底了。