GESP第五次认证真题解析|Python五级真题回顾

四季读书网 1 0
GESP第五次认证真题解析|Python五级真题回顾
GESP第五次认证真题解析|Python五级真题回顾-第1张图片-四季读书网

点击上方蓝字关注我们吧

GESP第五次认证真题解析|Python五级真题回顾-第2张图片-四季读书网

CCF编程能力等级认证,英文名Grade Examination of Software Programming(以下简称GESP),由中国计算机学会发起并主办,是为青少年计算机和编程学习者提供学业能力验证的平台。GESP覆盖中小学全学段,符合条件的青少年均可参加认证。GESP旨在提升青少年计算机和编程教育水平,推广和普及青少年计算机和编程教育。

GESP考察语言为图形化编程、Python编程及C++编程,主要考察学生掌握相关编程知识和操作能力,熟悉编程各项基础知识和理论框架,通过设定不同等级的考试目标,让学生具备编程从简单的程序到复杂程序设计的编程能力,为后期专业化编程学习打下良好基础。

本次为大家带来的是20243月认证Python五级真题解析。

GESP20243月认证Python五级

一、单选题(每题2分,共30分)

题号

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

答案

B

C

B

D

D

A

D

C

D

A

B

A

B

B

C



1下⾯流程图在yr输⼊2024时 ,可以判定yr代表闰年 ,并输出 2月是29天 ,则图中菱形框中应该填⼊(  )。

GESP第五次认证真题解析|Python五级真题回顾-第3张图片-四季读书网

A. (yr % 400 == 0)  or  (yr % 4 == 0)

B. ( yr % 400 == 0)  or  (yr % 4 == 0 and  yr %100 != 0)

C. ( yr % 400 == 0)  and  ( yr % 4 == 0)

D. (yr % 400 == 0) and (yr % 4 == 0 and yr % 100 != 0)

【答案】B

【考纲知识点】条件判断与逻辑运算

【解析】闰年的定义:1.能被4整除且不能被100整除;2.能被400整除;上面两个条件满足一个可以判断是闰年,两个条件用或连接,故选B

2TCP协议中 ,完成连接建⽴需要通过(  )握⼿。

A.一次

B.二次

C.三次

D.四次

【答案C

【考纲知识点】TCP协议连接过程

【解析】三次握手作用分别是:客户端向服务器请求连接、服务器通知客户端收到请求并准备好建立连接、客户端跟服务器确认已经建立连接。

3、下⾯有关排序算法的说法 ,正确的是  ( )

A.快速排序是稳定排序

B. Pythonlist类型的sort()是稳定排序

C.冒泡排序是不稳定排序

D.归并排序是不稳定排序

答案】B

【考纲知识点】排序的稳定性

【解析】常见排序算法中,具有稳定性的有:冒泡排序、插入排序、归并排序;不具有稳定性的有:快速排序、希尔排序、选择排序等;python中列表对象的sort()方法排序是稳定的。

4不同的排序算法 ,其空间复杂度也不同 。与冒泡法排序空间复杂度相同的是 ( )

A.归并排序

B.快速排序

C.计数排序

D.插入排序

【答案】D

【考纲知识点】排序的空间复杂度

【解析】归并排序空间复杂度O(nlogn);快速排序空间复杂度O(nlogn);计数排序空间复杂度O(n+k);插入排序空间复杂度O(1),冒泡排序空间复杂度也为O(1),故此题选D

5下⾯Python代码中 ,aFactorial()bFactorial()⽤于求正整数的阶乘 。有关说法 ,错误的是( )

GESP第五次认证真题解析|Python五级真题回顾-第4张图片-四季读书网

A. aFactorial( )⽤循环⽅式 ,bFactorial()递归⽅式

B. bFactorial( )更加符合数学定义 ,直观易于理解 ,⽽aFactorial()需要将数学定义转换为计算机程序实现

C.N值较⼤时 ,aFactorial( )执⾏效率更⾼ ,⽽bFactorial()因为有多次函数调⽤ ,效率将降低 ,且N如果较⼤, 将可能导致不能使⽤

D. bFactorial( )因为代码量较少 ,没有循环, 因此其执⾏效率更⾼

【答案D

【考纲知识点】递归算法

【解析】递归算法实现手段为函数的自我调用,特点为代码相对简洁但效率相对低,故本题选D。递归函数因多次调用函数开销更大。

6有关下⾯Python代码的说法 ,正确的是( )

GESP第五次认证真题解析|Python五级真题回顾-第5张图片-四季读书网

A.代码中qSort()函数不是稳定排序

B.代码中qSort()函数空间复杂度为O(1)

C.代码中qSort()函数是就地排序

D.代码中qSort()函数是外排序, 因为排序后的结果保存在新的内存空间即外空间

【答案】A

【考纲知识点】快速排序算法

【解析】本题代码中体现的是快速排序算法,算法时间复杂度为O(n log n),空间复杂度为O(n log n),不具有稳定性,且属于内排序,故本题选A

7上题不能⽀持其他常见类型的排序 ,如实现该⽀持 ,横线处分别应填写代码是(  )

GESP第五次认证真题解析|Python五级真题回顾-第6张图片-四季读书网

A. is instance(iterData, list) == False lst == [x for x in iterData]

B. type(iterData) == list lst = [x for x in iterData]

C. is instance(iterData, list) lst = list(iterData)

D. type(iterData) != list lst = list(iterData)

【答案D

【考纲知识点】数据类型处理

【解析】当qSort()函数中,给出的iterData是其他可遍历但不改变类型时,需要对此参数进行数据处理,转换为list类型后再排序;故条件判断参数类型是否是list,再用list()内置函数进行类型转换。

8上上题qSort()函数不⽀持排序规则函数 ,形如sorted()函数的key参数 ,为实现类似⽬标 ,横线处分别应填⼊ 代码是(  )

GESP第五次认证真题解析|Python五级真题回顾-第7张图片-四季读书网

A. fx == None fx(x) >= fx(Pivot) fx(x) < fx(Pivot)

B. fx == None fx(x) >= Pivot fx(x) < Pivot

C. fx != None fx(x) >= fx(Pivot) fx(x) < fx(Pivot)

D. fx != None fx(x) >= Pivot  fx(x) < Pivot

【答案】C

【考纲知识点】lambda函数

【解析】根据代码中第18行设置的lambda函数含义,是指定按照列表中元素个位数进行升序排列,所以条件为当排序规则不为None时,调用匿名函数fx()去按照个位数比较大小对原有数值排列,故选C

9下⾯的Python代码中merge()函数的两个参数均为list类型 ,且是已按相同规则排序的数据 。下⾯有关说法中, 正确的是(  )

GESP第五次认证真题解析|Python五级真题回顾-第8张图片-四季读书网

A.3-7⾏代码将导致死循环, 因为没有循环变量及其改变

B.5⾏和第7⾏代码执⾏后 ,result的成员值为None

C.9⾏和第11⾏是否被执⾏ ,与arr1arr2的成员值有关 ,如果值转换为False,将不会被执⾏

D. merge()函数的代码没有错误 ,执⾏后参数arr1arr2将合并成新的list保存到result之中 ,且有序

【答案】D

【考纲知识点】列表的操作

【解析】当arr1arr2皆非空时,重复将两个列表中的值比较大小后,按从小到大的顺序加入result列表中并从原列表中弹出;当其中一个列表清空后,将剩余一个列表中的剩余有序数据,拼接到result中;此段代码实现了将两个列表元素加入新列表并排序,D选项正确。

10阅读下⾯Python代码 ,横线处应填⼊(    )

GESP第五次认证真题解析|Python五级真题回顾-第9张图片-四季读书网

A. isOdd isEven

B. isOdd isEven(10)

C. isOdd(10) isEven

D. isOdd(10) isEven(10)

【答案A

【考纲知识点】自定义函数、lambda函数

【解析】自定义函数Check()设有N, Fx两个参数,N表示需要检测的值,Fx为函数名,Check(N, Fx)函数功能为,返回FxN为参数的调用结果;isOdd()isEven是以两种形式定义的,判断数值N是否是奇数或偶数的两个函数,所以在第8行程序中,只需要以函数名作为参数写入Check()中即可,正确答案为A

11、下⾯Python代码的平均时间复杂度是( )

GESP第五次认证真题解析|Python五级真题回顾-第10张图片-四季读书网

A. O(N)

B. O(logN)

C. O(NlogN)

D. O(N²)

【答案B

【考纲知识点】算法时间复杂度

【解析】该算法递归的规模逐步减小,类似于二分算法的时间复杂情况,时间复杂度为O(logN)

12有关下⾯Python代码的说法 ,正确的是(    )

GESP第五次认证真题解析|Python五级真题回顾-第11张图片-四季读书网

A.代码采⽤⼆分法查找 ,仅对有序list有效 ,不适⽤于setdict

B.在函数内定义函数 ,存在多次调⽤多次定义, 因此存在错误

C.16⾏代码__bSearch()最后⼀个参数val应为queryVal

D.16⾏代码应为return __bSearch

【答案A

【考纲知识点】二分查找算法、分治算法

【解析】根据代码,参数类型需要是list,涉及到拼接、修改等操作,setdict不满足,A正确;函数内可以定义函数,函数名并没有冲突,B错误;16行代码需要返回的是函数bSearch()要查找的参数val,跟内部_bSearch()函数的参数queryVal无关,C错误;返回_bSearch()值时,需要按定义时给出设置的参数,D错误。

13在上题的算法中 ,其时间复杂度是(    )

A. O(N)

B. O(logN)

C. O(NlogN)

D. O(N²)

【答案B

【考纲知识点】二分查找算法、分治算法

【解析】二分查找每次将搜索区域减半,直到找到目标值或确定目标值不存在。因此,二分查找的时间复杂度是O(log n)

14下⾯的Python代码中 ,idList变量为list类型 ,保存有⼤量⾝份编码 ,倒数第⼆位如为偶数 ,则为⼥性 ,奇数为男性 ,从第7位开始连续8位为出⽣年⽉⽇ ,年为4位数⽉和⽇均为两位数 。编码统计每天有⼏位男⽣⽣⽇⼥⽣⽣⽇ 。横线处应填⼊代码是(   )。

GESP第五次认证真题解析|Python五级真题回顾-第12张图片-四季读书网

A. (1, 0) if gender == 1 else (1, 0) (0, 1)

B. (0, 1) if gender == 1 else (1, 0) (0, 0)

C. 0, 1 if gender == 1 else 1, 0 0, 0

D. (0, 1) if gender == 1 else (1, 0) 0, 0

【答案】B

【考纲知识点】

【解析】根据gender的值的不同,分别赋值malefemale,排除C。对于A,不管gender值的多少,其值都一样,错误。当Key不存在时,第5行的返回值为(0,0)即男生和女生的数量均为0。该值不能是0,0而是封装为(0,0)

15有关下⾯Python代码的说法错误的是(   )。

GESP第五次认证真题解析|Python五级真题回顾-第13张图片-四季读书网

A.代码中第17⾏执⾏后 ,firstNode(第⼀个节点)的下⼀个节点指向第3个节点, 即secondNode(2个节点)的下⼀ 个

B.代码中第18⾏执⾏后 ,第3个节点的Previous(前向)指向第1个节点(firstNode

C.仅仅通过firstNode节点 ,不能访问第2个节点 ,第2个节点已不在内存中存在, ⾃动释放所占内存

D.在第18⾏后 ,执⾏del secondNode后 ,第2个节点所占内存才会被释放 。仅仅执⾏先有第16- 18⾏ ,第2个节点 内存不会被释放

【答案】C

【考纲知识点】双向链表

【解析】firstNode为建立的双向链表,三个Node结点能实现双向链接;secondNode是另一个新生成的结点对象,其Next属性来源值secondNode.Next为默认值空。FirstNode第一个结点指向第二个结点,故A错误;第2个结点的Previous才指向第2个空结点,故B错误;当secondNode.Next指向firstNode.Next时,firstNode.Next变为空被释放,故C正确,D错误。

二、判断题(每题2分,共20分)

题号

1

2

3

4

5

6

7

8

9

10

答案

×

×

×

×

×

1⼀个算法设计合理的话是可以没有输出的 ,⽐如冒泡排序就不输出任何信息(  )。

【答案】错误

【考纲知识点】算法的特征

【解析】一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的

2流程图描述算法的能⼒是有限的 ,⽐如它⽆法对能够提前终⽌的循环给出等价描述 ( )

【答案】错误

【考纲知识点】流程图

【解析】可以使用菱形图设置条件,用来表示循环终止。

3归并排序的空间复杂度是GESP第五次认证真题解析|Python五级真题回顾-第14张图片-四季读书网( )

【答案】正确

【考纲知识点】算法的时间复杂度

【解析】无

4Python中 ,当对dict类型进⾏in运算查找元素是否存在时 ,其时间复杂度为 O(1)set类型也如此 。  ( )

【答案】正确

【考纲知识点】字典与集合

【解析】字典与集合访问元素采取的是哈希表查找方法,时间复杂度O(1)

5在以下Python代码中 ,执⾏后输出是 5=>4=>3=>2=>1=>2=>3=>2=>1=>5 (     )

GESP第五次认证真题解析|Python五级真题回顾-第15张图片-四季读书网

【答案】正确

【考纲知识点】递归的执行过程

【解析】详见图片。

GESP第五次认证真题解析|Python五级真题回顾-第16张图片-四季读书网

6贪⼼算法虽然可能不是局部最优 ,但可达到全局最优 。 ( )

【答案】错误

【考纲知识点】贪心算法特点

【解析】贪心算法总是选择当前情况下的最优选择,而不是从整体最优考虑。

7Python内置函数sorted()可对⽀持for-in循环的数据类型排序 。

【答案】错误

【考纲知识点】内置函数sorted()

【解析】Python内置函数sorted()可以对支持for-in循环的数据类型进行排序,但不一定所有支持for-in循环的数据类型都可以使用sorted()函数进行排序。例如,字典(dict)支持for-in循环,但sorted()函数无法对字典进行排序 。一般说来,sorted()可以对for-in循环的数据类型排序,除非该类型内部没有实现小于运算符。答案错误的原因就是如此。但sorted()可以对dict排序。

8冒泡排序是就地排序 ,空间复杂度为 O(1)

【答案】正确

【考纲知识点】冒泡排序空间复杂度

【解析】无

9下⾯的Python代码能实现N的质因数分解 ,类似埃⽒筛法 。  ( )

GESP第五次认证真题解析|Python五级真题回顾-第17张图片-四季读书网

【答案】正确

【考纲知识点】埃氏筛法

【解析】埃氏筛法思路为从最小质数开始,筛除范围内每个质数的倍数,实现排除非质数数据;此题代码为从最小质数开始,筛取数字的因数,得到原数字的质因数,算法思想类似。

  1. Python代码print(sorted(list(range(10,20)), key = hex))执⾏后将输出[10, 11, 12, 13, 14, 15, 16, 17, 18, 19] (  )

【答案】错误

【考纲知识点】sorted()函数的key参数

【解析】代码作用为,将1019间的整数进行排序,设置key=hex排序规则按照十六进制方式排序,其中1015作为十六进制时以字符a,b,c,d,e,f表示,排序后字典码数值大于16~19的数值,故结果为[16, 17, 18, 19, 10, 11, 12, 13, 14, 15]

三、编程题(每题25分,共50)

题号

1

2

答案



1、成绩排序

问题描述

N名同学,每名同学有语文、数学、英语三科成绩。你需要按如下规则对所有同学的成绩从高到低排序:

1.比较总分,高者靠前;

2.如果总分相同,则较语文和数学两科总分,高者靠前;

3.如果仍相同,则比较语文和数学两科的最高分,高者靠前;

4.如果仍相同,则二人并列。

你需要输出每位同学的排名,如遇多人并列,则他们排名相同,并留空后面的-1个名次。例如,有3名同学并列第1,则后1名同学自动成为第4名。

输入描述

第一行1个整数N,表示同学的人数。

接下来N行,每行三个非负整数ci,mi,ei分别表示该名同学的语文、数学、英语成绩。

保证0≤Ci,mi,ei≤150

输出描述

输出N行,按输同学的顺序,输出他们的排名。

注意:请不要按排名输出同学的序号,而是按同学的顺序输出他们各自的排名

特别提醒

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

样例输入1

GESP第五次认证真题解析|Python五级真题回顾-第18张图片-四季读书网

样例输出1

GESP第五次认证真题解析|Python五级真题回顾-第19张图片-四季读书网

数据规模

对于30%的测试点,保证N100,且所有的同学的总分各不相同

对于100%的测试点,保证2N10000

【题目大意】根据给出的数据,按照总分、两科总分、两科最高分的规则,对数据进行排序,输出排序后原来每位同学的排名。

【考纲知识点】基础数据类型处理操作、sort()排序函数的使用

【解题思路】1.输入数据,将总分、语文数学总分、语文数学最高分和当前序号存入列表;2.根据列表中存放的数据使用sort()函数对列表排序;3.遍历列表并重新记录排序后的序号

【参考程序】

GESP第五次认证真题解析|Python五级真题回顾-第20张图片-四季读书网

2、B-smooth

题面描述

小杨同学想寻找一种名为B-smooth数的正整数。

如果一个正整数的最大质因子不超B,则该正整数为B-smooth数。

小杨同学想知道,对于给定的nB,有多少个不超过nB-smooth数。

输入格式

第一行包含两个正整数n,B,含义如题面所示。

输出格式

输出一个非负整数 ,表示不超过nB-smooth数的数量。

样例1

GESP第五次认证真题解析|Python五级真题回顾-第21张图片-四季读书网

样例解释

在不超过10的正整数中,3-smooth数有{1,2,3,4,6,8,9},7个。

数据范围

子任务编号

数据点占比

n

B

1

30

<=1000

1<=B<=1000

2

30

<=100

2<=B<=100

3

40

<=106

1<=B<=106



对于全部数据,保证有1n 1061B 106

【题目大意】求给定范围内数字的最大质因数,将符合条件的数字数量输出

【考纲知识点】质数判断、枚举法

【解题思路】1.根据给出范围,用筛法求出范围内的全部质数(防止超时的可能)2.遍历质数列表,在题目限定范围内,筛除质数的倍数,同时记录下来每个质数倍数的最大质因数值;3.统计最大质因数列表中符合条件的质数个数。

【参考程序】

GESP第五次认证真题解析|Python五级真题回顾-第22张图片-四季读书网

技术支持:赵宏壮

策划:GESP技术委员会副主席 刘晓庆

GESP第五次认证真题解析|Python五级真题回顾-第23张图片-四季读书网

GESP第五次认证真题解析|Python五级真题回顾-第24张图片-四季读书网

GESP第五次认证真题解析|Python五级真题回顾-第25张图片-四季读书网
GESP第五次认证真题解析|Python五级真题回顾-第26张图片-四季读书网
联系方式

1. GESP微信:关注“CCF GESP公众号,点击“GESP小助手”即可交流。

2. GESP邮箱:gesp@ccf.org.cn

注:请在邮件中详细描述咨询的问题并留下考生的联系方式及姓名、身份证号,以便及时有效处理。

3. GESP电话:0512-67656856

咨询时间:周一至周五(法定节假日除外)上午 8:30-12:00;下午 13:00-17:30

扫码关注GESP公众号,了解更多资讯

GESP第五次认证真题解析|Python五级真题回顾-第27张图片-四季读书网
GESP第五次认证真题解析|Python五级真题回顾-第28张图片-四季读书网

抱歉,评论功能暂时关闭!