云计算百科
云计算领域专业知识百科平台

GESP2026年3月认证C++八级( 第二部分判断题(1-10))精讲



第1题

在C++中,若结构体中包含一个 static 成员变量,则该变量的存储空间属于结构体对象的一部分。

答案:错误(×)


1、什么是static成员?

例如:

#include<iostream>
using namespace std;

struct Student
{
int age;
static int cnt;
};

int Student::cnt = 0;

int main()
{
Student a, b;

a.age = 10;
b.age = 12;

Student::cnt++;

cout << a.age << endl;
cout << b.age << endl;
cout << Student::cnt << endl;
}


2、它到底存在哪里?

普通成员:

对象a

+——+
| age |
+——+

对象b

+——+
| age |
+——+

static cnt

只有

一份!

放在全局静态区

并不属于任何对象。


大家可以理解成:

学校

学生A
学生B
学生C

人数

只有一个

不会每个学生都保存一份人数。


3、为什么错?

因为

sizeof(Student)

不会计算

static

成员。

所以

static不是对象的一部分。



第2题

二项式展开式所有二项式系数之和等于2ⁿ。

答案:正确(√)


1、例如:

(a+b)^3

= a³ +3a²b +3ab² +b³

系数:

1

3

3

1

相加:

8

=


2、为什么?

a=1

b=1

代进去。

得到:

(1+1)^n

=

2^n

右边就是

所有系数之和。

所以一定成立。


3、八级考点:

杨辉三角

第n行和

=

2^n



第3题

const int & 可以绑定左值,也可以绑定右值。

答案:正确(√)


1、例如:

void fun(const int &x)
{
cout << x << endl;
}

int main()
{
int a = 5;

fun(a); // 左值

fun(100); // 右值
}

都合法。


2、为什么?

普通引用:

int &x = 5;

错误。


因为

5

没有地址


但是

const int &

允许绑定临时变量。

这是C++的重要特性。


3、为什么STL喜欢写:

const string &

因为:

既不用复制

又可以接收临时对象。

效率高。



第4题

若一个无向图最小生成树唯一,则所有边权一定不同。

答案:错误(×)


1、很多同学第一眼觉得:

好像是真的。

其实不是。


2、例如:

A

|

1

|

B

|

2

|

C

再加一条:

A—–5—–C

边权:

1

2

5

当然唯一。


3、再改一下:

A

|

1

|

B

|

1

|

C

还有:

A—–5—–C

最小生成树还是:

AB

BC

仍然唯一。

但是:

出现两个

1

说明:

边权

可以重复。


4、真正成立的是:

所有边权不同 ⇒ MST一定唯一。

反过来

不成立。



第5题

快速排序最好、平均、最坏都是O(nlogn)

答案:错误(×)


1、这是经典考点。


最好:

O(nlogn)

平均:

O(nlogn)

最坏:

O(n²)


2、什么时候最坏?

例如:

已经有序。

每次都拿第一个元素。

1

2

3

4

5


第一次:

划分:

左:

右:

4个


第二次:

又:

左:

右:

3个

一直退化。


最后:

n

+

n-1

+

+

1

就是

O(n²)


3、所以很多库都会:

随机化。

三数取中。

避免退化。



第6题

所有顶点度数都是偶数,就一定存在欧拉回路。

答案:错误(×)


1、这里最容易掉坑。

少了一个条件。

必须:

图连通。


2、例如:

两个圆。

○ ○

每个点度都是2。

但是:

两部分完全不连。

怎么走?

根本不可能。


3、欧拉回路条件:

①连通

②所有点偶度

缺一不可。



第7题

ST表预处理O(nlogn),查询O(1)

答案:正确(√)


1、这是RMQ经典复杂度。

ST表:

预处理:

O(nlogn)

查询:

O(1)


2、为什么?

因为:

提前把

2^0

2^1

2^2

全部算好了。


3、查询:

直接取两个区间。

一次max。

结束。


4、八级考点:

算法预处理查询
ST表 O(nlogn) O(1)
线段树 O(n) O(logn)
树状数组 O(n) O(logn)


第8题

所有边统一增加一个常数,最小生成树一定不变。

答案:正确(√)


1、为什么?

假设:

所有边:

全部

+100


2、例如:

原来:

1

3

5

变:

101

103

105

大小关系

有没有变?

没有。


因此:

Prim

Kruskal

每一步

选择边

完全一样。

所以:

MST不变。


3、注意:

这是

统一加同一个数。

如果:

不同边

加不同数字。

那就可能改变。



第9题

Prim和Kruskal得到的最小生成树权值一定一样。

答案:正确(√)


1、注意:

这里问的是:

总权值

不是:

树。


2、例如:

可能存在两棵不同MST

但是:

总代价

一定相同。

否则:

其中一个

就不是最小生成树了。


3、因此:

算法不同。

树可能不同。

权值一定相同。



第10题

递推DP和记忆化搜索时间复杂度总是相同。

答案:错误(×)


1、很多同学认为:

两者一样。

其实不是。


2、例如:

有100万个状态。

真正用到:

100个。


3、递推:

全部算。

1000000

状态。


4、记忆化:

只访问:

100

状态。

复杂度:

小得多。


5、所以:

不能说:

总是一样。

应该说:

很多经典DP

两者复杂度相近。

但:

并非所有问题都一样。


第二部分总结

题号答案知识点易错点
1 × static成员 不属于对象,占用静态存储区
2 二项式定理 系数和=2ⁿ
3 const引用 可以绑定右值
4 × 最小生成树 唯一MST≠边权互异
5 × 快速排序 最坏O(n²)
6 × 欧拉回路 还必须连通
7 ST表 预处理O(nlogn),查询O(1)
8 最小生成树 所有边统一加同一常数,MST不变
9 Prim/Kruskal 树可能不同,但总权值一定相同
10 × 动态规划 记忆化搜索不一定与递推复杂度完全一致

本套判断题最值得记忆的八级考点:

① static 不属于对象。
② 二项式系数和 = 2ⁿ。
③ const 引用可以绑定右值。
④ 边权互异 ⇒ MST 唯一,但反过来不成立。
⑤ 快排最坏 O(n²)。
⑥ 欧拉回路 = 连通 + 所有点偶度。
⑦ ST 表:预处理 O(nlogn),查询 O(1)。
⑧ 所有边统一加同一个常数,MST 不变。
⑨ Prim 与 Kruskal 的最小生成树总权值一定相同。
⑩ 记忆化搜索与递推 DP 不一定总有相同时间复杂度。


赞(0)
未经允许不得转载:网硕互联帮助中心 » GESP2026年3月认证C++八级( 第二部分判断题(1-10))精讲
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!