2024.03中国计算机学会GESP等级考试python五级

标签:
普通图片版答案
2024-07-10
| 10页
| 144人阅读
| 0人下载

内容正文:

题号 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 Python 五级 2024 年 03 ⽉ 1 单选题(每题 2 分,共 30 分) 第 1 题 下⾯流程图在yr输⼊2024时,可以判定yr代表闰年,并输出 2月是29天 ,则图中菱形框中应该填⼊( )。 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) 第 2 题 在TCP协议中,完成连接建⽴需要通过( )握⼿。 A. ⼀次 B. ⼆次 C. 三次 D. 四次 第 3 题 下⾯有关排序算法的说法,正确的是( ) A. 快速排序是稳定排序 B. Python中list类型的sort()是稳定排序 C. 冒泡排序是不稳定排序 D. 归并排序是不稳定排序 第 4 题 不同的排序算法,其空间复杂度也不同。与冒泡法排序空间复杂度相同的是( ) A. 归并排序 B. 快速排序 C. 计数排序 D. 插⼊排序 第 5 题 下⾯Python代码中,aFactorial()和bFactorial()⽤于求正整数的阶乘。有关说法,错误的是( )。 A. aFactorial( )⽤循环⽅式,bFactorial()递归⽅式 B. bFactorial( )更加符合数学定义,直观易于理解,⽽aFactorial()需要将数学定义转换为计算机程序实现 C. 当N值较⼤时,aFactorial( )执⾏效率更⾼,⽽bFactorial()因为有多次函数调⽤,效率将降低,且N如果较⼤, 将可能导致不能使⽤ D. bFactorial( )因为代码量较少,没有循环,因此其执⾏效率更⾼ 第 6 题 有关下⾯Python代码的说法,正确的是( )。 A. 代码中qSort()函数不是稳定排序 B. 代码中qSort()函数空间复杂度为O(1) C. 代码中qSort()函数是就地排序 D. 代码中qSort()函数是外排序,因为排序后的结果保存在新的内存空间即外空间 第 7 题 上题不能⽀持其他常见类型的排序,如实现该⽀持,横线处分别应填写代码是( )。 A. isinstance(iterData, list) == False , st == [x for x in iterData] B. type(iterData) == list , lst = [x for x in iterData] C. isinstance(iterData, list) , lst = list(iterData) D. type(iterData) != list , lst = list(iterData) 第 8 题 上上题qSort()函数不⽀持排序规则函数,形如sorted()函数的key参数,为实现类似⽬标,横线处分别应填⼊ 代码是( )。 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 第 9 题 下⾯的Python代码中merge()函数的两个参数均为list类型,且是已按相同规则排序的数据。下⾯有关说法中, 正确的是( )。 A. 第3-7⾏代码将导致死循环,因为没有循环变量及其改变 B. 第5⾏和第7⾏代码执⾏后,result的成员值为None C. 第9⾏和第11⾏是否被执⾏,与arr1和arr2的成员值有关,如果值转换为False,将不会被执⾏ D. merge()函数的代码没有错误,执⾏后参数arr1和arr2将合并成新的list保存到result之中,且有序 第 10 题 阅读下⾯Python代码,横线处应填⼊( )。 A. isOdd , isEven B. isOdd , isEven(10) C. isOdd(10) , isEven D. isOdd(10) , isEven(10) 第 11 题 下⾯Python代码的平均时间复杂度是( )。 A. B. C. D. 第 12 题 有关下⾯Python代码的说法,正确的是( )。 A. 代码采⽤⼆分法查找,仅对有序list有效,不适⽤于set、dict等 B. 在函数内定义函数,存在多次调⽤多次定义,因此存在错误 C. 第16⾏代码__bSearch()最后⼀个参数val应为queryVal D. 第16⾏代码应为return __bSearch 第 13 题 在上题的算法中,其时间复杂度是( )。 A. B. C. D. 第 14 题 下⾯的Python代码中,idList变量为list类型,保存有⼤量⾝份编码,倒数第⼆位如为偶数,则为⼥性,奇数 为男性,从第7位开始连续8位为出⽣年⽉⽇,年为4位数⽉和⽇均为两位数。编码统计每天有⼏位男⽣⽣⽇⼥⽣⽣ ⽇。横线处应填⼊代码是( )。 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 第 15 题 有关下⾯Python代码的说法错误的是( )。 题号 1 2 3 4 5 6 7 8 9 10 答案 A. 代码中第17⾏执⾏后,firstNode(第⼀个节点)的下⼀个节点指向第3个节点,即secondNode(第2个节点)的下⼀ 个 B. 代码中第18⾏执⾏后,第3个节点的Previous(前向)指向第1个节点(firstNode) C. 仅仅通过firstNode节点,不能访问第2个节点,第2个节点已不在内存中存在,⾃动释放所占内存 D. 在第18⾏后,执⾏del secondNode后,第2个节点所占内存才会被释放。仅仅执⾏先有第16-18⾏,第2个节点 内存不会被释放。 2 判断题(每题 2 分,共 20 分) 第 1 题 ⼀个算法设计合理的话是可以没有输出的,⽐如冒泡排序就不输出任何信息( )。 第 2 题 流程图描述算法的能⼒是有限的,⽐如它⽆法对能够提前终⽌的循环给出等价描述 ( ) 。 第 3 题 归并排序的空间复杂度是 。( ) 第 4 题 在Python中,当对dict类型进⾏in运算查找元素是否存在时,其时间复杂度为 O(1) ,set类型也如此。( ) 第 5 题 在以下Python代码中,执⾏后输出是 5=>4=>3=>2=>1=>2=>3=>2=>1=>5 。( ) 第 6 题 贪⼼算法虽然可能不是局部最优,但可达到全局最优。 ( ) 第 7 题 Python内置函数sorted()可对⽀持for-in循环的数据类型排序。( ) 第 8 题 冒泡排序是就地排序,空间复杂度为 O(1) 。( ) 第 9 题 下⾯的Python代码能实现N的质因数分解,类似埃⽒筛法。( ) 第 10 题 Python代码print(sorted(list(range(10,20)), key = hex))执⾏后将输出[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]。( ) 3 编程题(每题 25 分,共 50 分) 3.1 编程题 1 试题名称:成绩排序 3.1.1 问题描述 有 名同学,每名同学有语⽂、数学、英语三科成绩。你需要按如下规则对所有同学的成绩从⾼到低排序: 1. ⽐较总分,⾼者靠前; 2. 如果总分相同,则⽐较语⽂和数学两科总分,⾼者靠前; 3. 如果仍相同,则⽐较语⽂和数学两科的最⾼分,⾼者靠前; 4. 如果仍相同,则⼆⼈并列。 你需要输出每位同学的排名,如遇 ⼈并列,则他们排名相同,并留空后⾯的 个名次。例如,有 名同学并 列第 ,则后⼀名同学⾃动成为第 名。 3.1.2 输入描述 第⼀⾏⼀个整数 ,表⽰同学的⼈数。 接下来 ⾏,每⾏三个⾮负整数 分别表⽰该名同学的语⽂、数学、英语成绩。 保证 。 3.1.3 输出描述 输出 ⾏,按输⼊同学的顺序,输出他们的排名。 注意:请不要按排名输出同学的序号,⽽是按同学的顺序输出他们各⾃的排名 3.1.4 特别提醒 在常规程序中,输⼊、输出时提供提⽰是好习惯。但在本场考试中,由于系统限定,请不要在输⼊、输出中附带任 何提⽰信息。 3.1.5 样例输入 1 3.1.6 样例输出 1 3.1.7 数据规模 对于 的测试点,保证 ,且所有同学的总分各不相同。 对于所有测试点,保证 。 3.1.8 参考程序 3.2 编程题 2 试题名称: -smooth 数 6 140 140 150 140 149 140 148 141 140 141 148 140 145 145 139 0 0 0 1 2 3 4 5 6 7 1 3 4 4 2 6 1 2 3 4 5 6 N = int(input()) students = [] for i in range(N): c, m, e = list(map(int, input().split())) students.append((c + m + e, c + m, max(c, m), i)) students.sort(reverse = True) rank = [None for i in range(N)] last_student = None for i, student in enumerate(students): if student[:-1] != last_student: last_student = student[:-1] curr_rank = i + 1 rank[student[-1]] = curr_rank for r in rank: print(r) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 子任务编号 数据点占比 1 2 3 3.2.1 题面描述 ⼩杨同学想寻找⼀种名为 -smooth 数的正整数。 如果⼀个正整数的最⼤质因⼦不超过 ,则该正整数为 -smooth 数。 ⼩杨同学想知道,对于给定的 和 ,有多少个不超过 的 -smooth 数。 3.2.2 输入格式 第⼀⾏包含两个正整数 ,含义如题⾯所⽰。 3.2.3 输出格式 输出⼀个⾮负整数,表⽰不超过 的 -smooth 数的数量。 3.2.4 样例1 3.2.5 样例解释 在不超过 的正整数中, -smooth 数有 ,共 个。 3.2.6 数据范围 对于全部数据,保证有 , 。 3.2.7 参考程序 10 31 71 n, B = map(int, input().split()) is_prime = [True] * (n + 1) primes = [] max_prime_factor = [0] * (n + 1) for i in range(2, n + 1): if is_prime[i]: primes.append(i) max_prime_factor[i] = i for p in primes: if i * p > n: break is_prime[i * p] = False max_prime_factor[i * p] = max(max_prime_factor[i], p) if i % p == 0: break cnt = 0 for i in range(1, n + 1): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 if max_prime_factor[i] <= B: cnt += 1 print(cnt) 21 22 23

资源预览图

2024.03中国计算机学会GESP等级考试python五级
1
2024.03中国计算机学会GESP等级考试python五级
2
2024.03中国计算机学会GESP等级考试python五级
3
2024.03中国计算机学会GESP等级考试python五级
4
所属专辑
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。