2023年06月CCF-GESP编程能力等级认证Python编程四级真题

2024年03月05日

一、单选题(共15题,共30分)

第1题 高级语言编写的程序需要经过以下( )操作,可以生成在计算机上运行的可执行代码。

A:编辑
B:保存
C:调试
D:编译

答案:D

第2题 排序算法是稳定的(Stable Sorting),就是指排序算法可以保证,在待排序数据中有两个相等记录的关键字 R 和 S(R 出现在 S 之前),在排序后的列表中 R 也一定在 S 前。 下面关于排序稳定性的描述,正确的是()。

A:冒泡排序是不稳定的
B:插入排序是不稳定的
C:选择排序是不稳定的
D:以上都不正确

答案:C

第3题 下面代码执行后输出是( )。

A:12#20#220#220
B:20#10#220#220
C:20#10#30#220
D:10#20#30#220

答案:D

第4题 下面代码执行后输出是( )。

A:100, 110
B:110, 110
C:100, 100
D:110, 100

答案:A

第5题 下面代码执行后输出是( )。

A:[1, 2, 3] [1, 2, 3]
B:[1, 2, 3, 10] [1, 2, 3, 10]
C:[1, 2, 3] [1, 2, 3, 10]
D:[1, 2, 3, 10] None

答案:B

第6题 下面 Python 代码执行后输出是( )。

A:[1, 2, 3] [1, 2, 3]
B:[1, 2, 3, 10] [1, 2, 3, 10]
C:[1, 2, 3] [1, 2, 3, 10]
D:[1, 2, 3, 10] None

答案:D

第7题 下面 Python 代码所定义函数 AVG()的时间复杂度是( )。

A:O(1)
B:O(n)
C:O(n+4)
D:O(n

答案:B

第8题 下面 Python 代码的功能是在 dictA 中保存形如{12:[1,2,3,4,6,12]}数据,即键为1-100 中的每个数,值为其对应的因数,横线处应填入代码是( )。

A:dictA.get(i,[]).append(j)
B:dictA.get(i,list).append(j)
C:dictA.get(i,list())+ (j)
D:dictA.get(i,[])+[j]

答案:D

第9题 下面 Python 代码中的 dictA 是 1-100 所有数及其对应的因数,此处仅列出其中一部分。 在横线处填上合适代码,实现只输出质数对应的因数()。

A:itm for itm in dictA if len(itm) > 2
B:K: V for K, V in dictA if len(V) > 2
C:K: V for K, V in dictA.items() if len(V) > 2
D:K: K.value for K in dictA if len(dictA[K]) > 2

答案:C

第10题 要打开一个已经存在的文件并在末尾处续写新的内容,则打开模式应该设定为( )。

A:w
B:w+
C:r+
D:a+

答案:D

第11题 下列 Python 代码执行时如果输入 3.14,将输出的是( )。

A:2#
B:1#4#
C:2#4#
D:2#3#4#

答案:C

第12题 有关下面 Python 代码的说法正确的是()。

A:如果输入 1.414,1.732,2.236 也将被执行,输出为 2
B:如果输入 1,2,3,4,5 将会因输入过多而报错
C:如果输入 1,2 也将会执行,输出 3
D:程序存在语法错误,原因是*_

答案:C

第13题 下面 Python 代码程序用于复制图片文件,文件名仅为示例,文件位置假设正确,横线处分别应填入()。

A:rb wb
B:r w
C:r+ w+
D:a+ a+

答案:A

第14题 在下面 Python 代码中,lst 数据如代码所示,但仅包含部分数据此处为示例。要求实现第 1 个按升序第 2 个数按降序,在横线处填上合适代码()。

A:key = lambda x:(x[0],-x[1])
B:lambda x:(x[0],x[1])
C:key = lambda x:(-x[0],-x[1])
D:不需要填入代码,按默认排序即可

答案:A

第15题 有关下面 Python 代码的说法,正确的是()。

A:函数 Fx()定义错误,交换 a 和 b 参数的先后顺序,程序执行后将输出 11
B:上述代码执行后将输出 2
C:上述代码执行后将输出 11
D:在 Fx()函数定义中,a 被定义为整数,因此传入字符串将导致错误,因此第 3 行函数调用后将报错

答案:C

二、判断题(共10题,共20分)

第16题 域名是由一串用点分隔的名字来标识互联网上一个计算机或计算机组的名称,CCF 编程能力等级认证官方网站的域名是 gesp.ccf.org.cn,其中顶级域名是 gesp。

答案:错误

第17题 数列 1, 1, 2, 3, 5, 8 … 是以意大利数学家列昂纳多·斐波那契命名的数列,从第三个数开始,每个数是前面两项之和。如果计算该数列的第 n 项(其中 n>3) fib(n),我们采用如下方法:① 令 fib(1)=fib(2)=1 ②用循环 for i=3 to n 分别计算 f(i) ③输出fib(n)。这体现了递推的编程思想。

答案:正确

第18题 Python 列表的 sort()函数是稳定排序。

答案:正确

第19题 冒泡排序算法额外空间需求是 O(1),即额外所需空间为常数,与排序数据的数量没有关系。

答案:正确

第20题 {1}+{1}在 Python 中是合法的表达式。

答案:错误

第21题 下面 Python 代码执行后输出了文件 abc.txt 前 10 个字符,但由于没有关闭文件,可能存在风险。

答案:错误

第22题 如下 Python 代码的第 1 行可被正常执行,该文件内容由中文英文和数字构成。程序执行后输出值与文件所占字节数相同。

答案:错误

第23题 在 Python 中,文本文件不可以二进制方式读写。

答案:错误

第24题 在与异常处理相关的关键字中,else 所属内容一定是不发生异常时才会被执行。

答案:正确

第25题 根据下面 Python 函数定义,调用 Fx()函数时如果两个参数同为 int、float、tuple、list、str 都不会报错。

答案:正确

三、编程题(共2题,共50分)

第26题 幸运数

第27题 图像压缩