2024年3月GESP等级认证Python编程八级真题及答案

2024-03-18 13:44

本文主要是介绍2024年3月GESP等级认证Python编程八级真题及答案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

答案

C

D

B

A

B

C

C

B

C

D

A

A

B

D

C

第 题  下列代码中 ,⽤到的算法是什么算法 ,去掉存储的空间 ,算法本⾝⽤到的空间复杂度是多少  ()

  A.  二分法 ,  O(log2N)

  B.  二分法 , O(N)

  C.  折半查找 ,  O(1)

  D.  折半查找   O(N log2N)

第  ⽆向图的临接矩阵存储⽅法中 ,下列描述正确的是  

  A.  对角矩阵

  B.  稀疏矩阵

  C.  非对称矩阵

  D.  对称矩阵

第  下列代码依次输⼊10,3,2 ,结果是  

来源:6547网 http://www.6547.cn/doc/msitz6u6rp 

  A.  23

  B.  120

  C.  16

  D.  155

第  ⼀个等边五边形 ,每个顶点上有⼀个蚂蚁 ,蚂蚁沿着五边形的边严格匀速⾏⾛ ,⽅向随机 请问 ,开始⾛以  ,蚂蚁两两不相碰的概率是多少  

  A.  1/16

  B.  1/4

  C.  1/32

  D.  1/8

第  ⼀根长度为1的⼩⽊棒 ,随机的折成三段 ,请问这三段能够组成⼀个三角形的概率是多少   

  A.  1/3

  B.  1/4

  C.  1/8

  D.  1/2

第  有北京 ,雄安 ,天津三个城市, 同样两个城市之间来回票价⼀样 。请问⽕车售票部门需要准备⼏种车票 ,⼏ 种票价  

  A.  3,3

  B.  6,6

  C.  6,3

  D.  3,6

第  对于如下图的⽆向图 ,在⽤Prim算法以节点F作为起点⽣成最⼩树的过程中 ,哪个选项不是产⽣最⼩树的中 间状态   

A.

B.

C.

D.

第  对于⼀棵是完全⼆叉树的排序⼆叉树 ,其平均搜索的时间复杂度为() 

 A0 )

0 B0(log n)

0 C. 0()

 D. 0(n2)

第  关于快速幂 ,下列说法错误的是  

  A. 使⽤了倍增思想

 B. 每⼀步都把指数分成两半 ,⽽相应的底数做平⽅运算

  C. 时间复杂度为 。(NlogN)

0 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. C31A44

  BA31A44

0  C. C31C44

0  D. A31C44

第 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)}

2      2  20

    1    2    3    4    5    6    7    8    9    10

答案                          

第 题  线性表可以是空表 ,树可以是空树, 图也可以是空。

第  在具有  个顶点、 条边的⽆向图中, ⽆向图的全部顶点的度的和等于边数的 倍。

第 题  图的任意⼏个点 ,⼏个边都可以组成这个图的⼦图。

第  在具有  个顶点、 条边的有向图中 ,⼊+出度的和是 

第 题  当⼀棵排序⼆叉树退化为单⽀⼆叉树后 ,其平均⽐较次数是  

第 题  不算数据的存储 ,插⼊排序算法的空间复杂度为 

第 题  图的存储⽅式主要有两种:邻接表和邻接矩阵。

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

第  排列问题与顺序有关 ,组合问题与顺序⽆关。

第 10 题  ⽤分治法可以优化等⽐数列的前  项求和的算法。

3     编程题  (每题 25 分  ,共 50 分)                                                                    

3.1     编程题 1                                                                                                                                             

  试题名称:公倍数问题

3.1.1     问题描述                                                                                                                                 

⼩ 写了⼀个 N X M 的矩阵 A ,我们看不到这个矩阵 ,但我们可以知道 ,其中第 i ⾏第j列的元素 Ai,j 是 i  j 的 公倍数  。现在有 个⼩朋友 ,其中第 个⼩朋友想知道 ,矩阵 中最多有多少个元 素可以是 k  。请你帮助这些⼩朋友求解。

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

⽅便起见 ,你只需要输出Kk=1 k × ansk 即可 ,其中 ansk 表⽰第 k 名⼩朋友感兴趣的答案。

3.1.2     输入描述                                                                                                                               

第⼀⾏三个正整数N,M, K

3.1.3     输出描述                                                                                                                               

输出⼀⾏ 即 Kk=1 k × ansk 

请注意 ,这个数可能很⼤ ,使⽤ C++语⾔的选⼿请酌情使⽤  long long 等数据类型存储答案。

3.1.4     特别提醒                                                                                                                                 

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

3.1.5     样例输入 1                                                                                                                                                       

3.1.6     样例输出 1

3.1.7     样例解释 1

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

A1 A12  A2   A2,2  都可以是 2 ⽽其余不⾏

因此答案是 1  ×  1      2  × 4  9

3.1.8     样例输入 2

3.1.9     样例输出 2

3.1.10     数据规模

对于 30 的测试点 保证 NM, K     10

对于 60 的测试点 保证 NM, K  500

对于 100 的测试点 保证 N 105 K

3.1.11     参考程序

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

def count_divisors(limit, num):

s = [0] * (num + 1)

for i in range(1, limit + 1):

for j in range(i, num + 1, i):

s[j] += 1

return s

def main():

NMK = map(int, input().split())

s_N = count_divisors(N, 10 ** 6)

s_M = count_divisors(M, 10 ** 6)

result = 0

for k in range(1K + 1):

result += k * s_N[k] * s_M[k]

print(result)

if __name__ == "__main__":

main()

3.2     编程题 2

  试题名称:接⽵竿

3.2.1     题面描述

⼩杨同学想⽤卡牌玩⼀种叫做接⽵竿 的游戏。

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

⼩杨同学现在有⼀个长度为  的卡牌序列 A ,其中每张牌的点数为 Ai  。⼩杨同学有 次询问 。第    ( )  询问时 ,⼩杨同学会给出 iTi ,⼩杨同学想知道如果⽤下标在 [li  Ti的所有卡牌按照下标顺序玩接⽵  竿 的游戏 ,最后队列中剩余的牌数。

3.2.2     输入格式

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

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

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

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

接下来  ,每行两个正整数 i  Ti ,表示一组询问。

3.2.3     输出格式

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

3.2.4     样例 1

1

2

3

4

5

6

7

8

1

6

1 2 2 3 1 3

4

1 3

1 6

1 5

5 6

1

2

3

4

1

1

0

2

3.2.5     样例解释

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

对于第二次询问, 队列变化情况为:

{}  {1}  {1 , 2}  {1 , 2 , 2}  {1}  {1 , 3}  {1 , 3, 1}  {}  {3}  因此最后队列中只剩余张点数为 3 的卡 牌。

3.2.6     数据范围

子任务编号   数据点占比    T          n                  q           max Ai              特殊条件

1                     30           

5        

100            13

2                     30           

5   1

5  ×  104  ≤  1

5 ×  104      13

所有询问的右端点等于n

3                     40           

5    1

5  ×  104  ≤  1

5 ×  104      13

对于全部数据 保证有 1   T  5 1   n   1 . 5  ×  104   

3.2.7     参考程序

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

n = int(input())

= int(math.log(n, 2)) + 1

= list(map(int, input().split()))

pos = {}

nxt = [[n for i in range(+ 1)] for j in range(n)]

for i in range(n - 1, -1, -1):

if not (A[i] in pos):

nxt[i][0] = n

else:

nxt[i][0= pos[A[i]]

pos[A[i]] = i

for i in range(n - 1, -1, -1):

for j in range(1, m + 1):

if nxt[i][j - 1+ 1 < n:

nxt[i][j= nxt[nxt[i][j - 1+ 1][j - 1]

Q = int(input())

for q in range(Q):

lr = map(int, input().split())

l, r = l - 1, r - 1

x, ans = l, 0

while x <= r:

while x <= r and nxt[x][0] > r:

x, ans x + 1, ans + 1

if x > r:

break

for i in range(m, -1, -1):

if nxt[x][i] <= r:

x = nxt[x][i]

break

x += 1

print(ans)

这篇关于2024年3月GESP等级认证Python编程八级真题及答案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/822531

相关文章

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

基于Linux的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py

python使用库爬取m3u8文件的示例

《python使用库爬取m3u8文件的示例》本文主要介绍了python使用库爬取m3u8文件的示例,可以使用requests、m3u8、ffmpeg等库,实现获取、解析、下载视频片段并合并等步骤,具有... 目录一、准备工作二、获取m3u8文件内容三、解析m3u8文件四、下载视频片段五、合并视频片段六、错误

Python中提取文件名扩展名的多种方法实现

《Python中提取文件名扩展名的多种方法实现》在Python编程中,经常会遇到需要从文件名中提取扩展名的场景,Python提供了多种方法来实现这一功能,不同方法适用于不同的场景和需求,包括os.pa... 目录技术背景实现步骤方法一:使用os.path.splitext方法二:使用pathlib模块方法三

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.