image

编辑人: 独留清风醉

calendar2025-12-04

message4

visits444

2024年3月CCF-GESP编程能力等级认证Python编程八级真题参考答案

一、单选题

1、下列代码中,用到的算法是什么算法,去掉存储的空间,算法本身用到的空间复杂度是多少(   )

A 二分法 , O(log2N)

B 二分法 , O(N)

C 折半查找 , O(1)

D 折半查找 , O(Nlog2N)


2、无向图的临接矩阵存储方法中,下列描述正确的是(   )。

A 对角矩阵

B 稀疏矩阵

C 非对称矩阵

D 对称矩阵


3、下列代码依次输入10,3,2后,结果是(   )。

A 23

B 120

C 16

D 155


4、一个等边五边形,每个顶点上有一个蚂蚁,蚂蚁沿着五边形的边严格匀速行走,方向随机,请问,开始走以后,蚂蚁两两不相碰的概率是多少(   )。

A 1/16

B 1/4

C 1/32

D 1/8


5、一根长度为1的小木棒,随机的折成三段,请问这三段能够组成一个三角形的概率是多少?(   )。

A 1/3

B 1/4

C 1/8

D 1/2


6、有北京,雄安,天津三个城市,同样两个城市之间来回票价一样。请问火车售票部门需要准备几种车票,几种票价(   )。

A 3,3

B 6,6

C 6,3

D 3,6


7、对于如下图的无向图,在用Prim算法以节点F作为起点生成最小树的过程中,哪个选项不是产生最小树的中间状态?(   )。

A

B

C

D


8、对于一棵是完全二叉树的排序二叉树,其平均搜索的时间复杂度为(   )。

A O(1)

B O(logn)

C O(n)

D O(n2)


9、关于快速幂,下列说法错误的是(   )。

A 使用了倍增思想

B 每一步都把指数分成两半,而相应的底数做平方运算

C 时间复杂度为O(NlogN)

D 可以用快速幂方法计算斐波那契数列的第N项


10、下面实现杨辉三角形的程序中,横线处填写正确的是(   )。

A z = triangles(x, y-1) + triangles(x, y)

B z = triangles(x-1, y+1) + triangles(x-1, y-1)

C z = triangles(x-1, y-1) + triangles(x, y)

D z = triangles(x-1, y-1) + triangles(x-1, y)


11、设有编号为1,2,3,4,5的五个球和编号为1,2,3,4,5的盒子,现将这5个球投入5个盒子要求每个盒子放一个球,并且恰好有两个球的号码与盒子号码相同,问有多少种不同的方法(   )。

A 20

B 10

C 12

D 24


12、1名老师和4名获奖同学排成一排照相留念,老师不站两端的排法下列所列式子正确的是(   )。

A

B

C

D


13、关于赋权图中,从某一个点出发,寻找最短路径的算法Dijkstra,下列说法中错误的是(   )。

A 算法解决了赋权有向图或者无向图的单源最短路径问题

B 算法最终得到一个最短路径树

C 常用于路由算法或者作为其他图算法的一个子模块

D 算法采用的是一种贪心的策略


14、关于图的存储方法中,下列说法错误的是(   )。

A 图的存储结构主要分为:邻接矩阵和邻接表

B 图的邻接矩阵存储方式是用两个数组来表示图:一个一维数组存储图中顶点信息,一个二维数组(邻接矩阵)存储图中的边或弧的信息。

C 对于边数相对顶点较少的图,邻接矩阵结构存在对存储空间的极大浪费

D 如果图中边的数目远远大于n的平方称作稀疏图,这是用邻接表表示比用邻接矩阵表示节省空间


15、Dijkstra算法中,定义S集合是已求出最短路径的节点集合,对于下图中的图,Dijkstra算法的中间形成的S集合,错误的是(   )。


A S={0(3)}

B S={0(3),2(6)}

C S={0(3),2(6),1(5)}

D S={0(3),2(6),1(8)}


二、判断题

16、线性表可以是空表,树可以是空树,图也可以是空。

A 正确

B 错误


17、在具有n个顶点、e条边的无向图中, 无向图的全部顶点的度的和等于边数的 2 倍。

A 正确

B 错误


18、图的任意几个点,几个边都可以组成这个图的子图。

A 正确

B 错误


19、在具有n个顶点、e条边的有向图中,入度+出度的和是2e。

A 正确

B 错误


20、当一棵排序二叉树退化为单支二叉树后,其平均比较次数是O(N)。

A 正确

B 错误


21、不算数据的存储,插入排序算法的空间复杂度为O(1)。

A 正确

B 错误


22、图的存储方式主要有两种:邻接表和邻接矩阵。

A 正确

B 错误


23、对于边数相对顶点较少的图,使用邻接矩阵来存储更好。

A 正确

B 错误


24、排列问题与顺序有关,组合问题与顺序无关。

A 正确

B 错误


25、用分治法可以优化等比数列的前n项求和的算法。

A 正确

B 错误


三、实操题

26、公倍数问题

问题描述

小 A 写了一个N×M的矩阵A,我们看不到这个矩阵,但我们可以知道,其中第i行第j列的元素Aij是i和j的公倍数(i=1,...,N,j=1,...,M)。现在有K个小朋友,其中第k个小朋友想知道,矩阵A中最多有多少个元素可以是k(k=1,2,...,K)。请你帮助这些小朋友求解。

注意:每位小朋友的答案互不相关,例如,有些位置既可能是x,又可能是y,则它同可以时满足x,y两名小朋友的要求。

方便起见,你只需要输出即可,其中ansk表示第k名小朋友感兴趣的答案。

输入描述

第一行三个正整数N,M,K。

输出描述

输出一行,即

请注意,这个数可能很大,使用 C++ 语言的选手请酌情使用 long long 等数据类型存储答案。

特别提醒

在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。

样例输入 1

2 5 2

样例输出 1

9

样例解释 1

只有A1,1可以是1,其余都不行。

A1,1,A1,2,A2,1,A2,2都可以是2,而其余不行。

因此答案是1×1+2×4=9。

样例输入 2

100 100 100

样例输出 2

185233

数据规模

对于30的测试点,保证N,M,K≤10;

对于60的测试点,保证N,M,K≤500;

对于100的测试点,保证N,M<105,K<106

参考答案:```cpp#includeusing namespace std;typedef long long ll;ll n, m, k;ll gcd(ll a, ll b) return b == 0 ? a : gcd(b, a % b);int main() cin >> n >> m >> k;ll ans = 0;for (ll i = 1; i <= n; i++) {for (ll j = 1; j <= m; j++) {ll t = i * j;for (ll p = 1; p <= k; p++) {if (t % p == 0) {ans++;}}}}cout << ans << endl;return 0;```


27、接竹竿

题面描述

小杨同学想用卡牌玩一种叫做“接竹竿”的游戏。

游戏规则是:每张牌上有一个点数v,将给定的牌依次放入一列牌的末端。若放入之前这列牌中已有与这张牌点数相同的牌,则小杨同学会将这张牌和点数相同的牌之间的所有牌全部取出队列(包括这两张牌本身)。

小杨同学现在有一个长度为n的卡牌序列A,其中每张牌的点数为Ai(1≤i≤n)。小杨同学有q次询问。第i次(1≤i≤q)询问时,小杨同学会给出li,ri,小杨同学想知道如果用下标在[li,ri]的所有卡牌按照下标顺序玩“接竹竿”的游戏,最后队列中剩余的牌数。

输入格式

第一行包含一个正整数T,表示测试数据组数。

对于每组测试数据,第一行包含一个正整数n,表示卡牌序列A的长度。

第二行包含n个正整数A1,A2,...,An,表示卡牌的点数A。

第三行包含一个正整数q,表示询问次数。

接下来q行,每行两个正整数li,ri,表示一组询问。

输出格式

对于每组数据,输出q行。第i行(1≤i≤q)输出一个非负整数,表示第i次询问的答案。


样例输入

1
6
1 2 2 3 1 3
4
1 3
1 6
1 5
5 6

样例输出

1
1
0
2


样例解释

对于第一次询问,小杨同学会按照1,2,2的顺序放置卡牌,在放置最后一张卡牌时,两张点数为2的卡牌会被收走,因此最后队列中只剩余一张点数为1的卡牌。

对于第二次询问,队列变化情况为:{}-->{1}-->{1,2}-->{1,2,2}-->{1}-->{1,3}-->{1,3,1}-->{}-->{3}。因此最后队列中只剩余一张点数为3的卡牌。

数据范围

对于全部数据,保证有1≤T≤5,1≤n≤1.5×104,1≤q≤1.5×104,1≤Ai≤13 。

参考答案:对于每个询问,我们需要模拟接竹竿游戏的过程,计算最后队列中剩余的牌数。


喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:2024年3月CCF-GESP编程能力等级认证Python编程八级真题参考答案

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share