试卷 2024年3月CCF-GESP编程能力等级认证Python编程八级真题
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

第 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 。

答题卡
一、单选题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
二、判断题
三、编程题
26 27
题目总数:27
总分数:100
时间:不限时
QQ
公众号
客服
扫一扫