题号 1 2 3 4 5 6 7 8 9 10 11 1 2 13 14 15
答 案 B C B D D A D C D A B A B B C
P yth on 五级
2024 年 0 3 ⽉
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 题 在 TC P 协议中,完成连接建⽴需要通过( )握 ⼿。
A. ⼀ 次
B. ⼆ 次
C. 三 次
D. 四 次
第 3 题 下 ⾯有关排序算法的说法,正确的是( )
A. 快 速排序是稳定排序
B. P yth on 中 lis t 类型的 so rt( ) 是稳定排序
C. 冒 泡排序是不稳定排序
D. 归 并排序是不稳定排序
第 4 题 不 同的排序算法,其空间复杂度也不同。与冒泡 法排序空间复杂度相同的是( )
A. 归 并排序
B. 快 速排序
C. 计 数排序
D. 插 ⼊排序
第 5 题 下 ⾯ Pyth on 代码中, aF acto ria l( ) 和 bF acto ria l( ) ⽤于求正整数的阶乘。有关说法,错误的是 ( ) 。
A . a F acto ria l( ) ⽤循环⽅式, bF acto ria l( ) 递归⽅式
B. b F acto ria l( ) 更加符合数学定义,直观易于理解, ⽽ aF acto ria l( ) 需要将数学定义转换为计算机程序实现
C. 当 N 值较⼤时, aF acto ria l( ) 执⾏效率更⾼,⽽ bF acto ria l( ) 因为有多次函数调⽤,效率将降低,且 N 如果较⼤,
将 可能导致不能使⽤
D. b F acto ria l( ) 因为代码量较少,没有循环,因此其 执⾏效率更⾼
第 6 题 有 关下⾯ Pyth on 代码的说法,正确的是 ( ) 。
A . 代 码中 qS ort( ) 函数不是稳定排序
B. 代 码中 qS ort( ) 函数空间复杂度为 O(1 )
C . 代 码中 qS ort( ) 函数是就地排序
D. 代 码中 qS ort( ) 函数是外排序,因为排序后的结果保存在新的内存空间即外空间
第 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 题 上 上题 qS ort( ) 函数不⽀持排序规则函数,形如 so rte d () 函数的 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 题 下 ⾯的 Pyth on 代码中 merg e() 函数的两个参数均为 lis t 类型,且是已按相同规则排序的数据。下⾯有关说法中,
正 确的是( )。
A. 第 3-7 ⾏代码将导致死循环,因为没有循环变量 及其改变
B. 第 5 ⾏和第 7 ⾏代码执⾏后, re su lt 的成员值为 None
C . 第 9 ⾏和第 11 ⾏是否被执⾏,与 arr1 和 arr2 的成员值 有关,如果值转换为 Fals e ,将不会被执⾏
D. m erg e() 函数的代码没有错误,执⾏后参数 arr1 和 arr 2 将合并成新的 lis t 保存到 re su lt 之中,且有序
第 1 0 题 阅 读下⾯ Pyth on 代码,横线处应填⼊( )。
A. isOdd , isEven
B . isOdd , isEven(10)
C . isOdd(10) , isEven
D . isOdd(10) , isEven(10)
第 1 1 题 下 ⾯ Pyth on 代码的平均时间复杂度是( )。
A.
B.
C .
D.
第 1 2 题 有 关下⾯ Pyth on 代码的说法,正确的是( )。
A. 代 码采⽤⼆分法查找,仅对有序 lis t 有效,不适 ⽤于 se t 、 dic t 等
B. 在 函数内定义函数,存在多次调⽤多次定义,因此存在错误
C. 第 16 ⾏代码 __bS earc h () 最后⼀个参数 val 应为 query V al
D . 第 16 ⾏代码应为 re tu rn _ _bS earc h
第 1 3 题 在 上题的算法中,其时间复杂度是( )。
A.
B.
C .
D.
第 1 4 题 下 ⾯的 Pyth on 代码中, id L is t 变量为 lis t 类型,保存有⼤量⾝份编码,倒数第⼆位如为偶数,则为⼥性,奇数
为 男性,从第 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,
GESP 3月认证 Python五级真题,2024年3月GESP等级认证Python编程五级真题及答案