试卷 2023年6月CCF GESP编程能力认证Python等级考试(四级)试卷
2023年6月CCF GESP编程能力认证Python等级考试(四级)试卷
单选题
第 1 题    单选题

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

A.

编辑

B.

保存

C.

调试

D.

编译

第 2 题    单选题

下面 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

第 3 题    单选题

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

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

第 4 题    单选题

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

A.

100, 110

B.

110, 110

C.

100, 100

D.

110, 100

第 5 题    单选题

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

A.

12#20#220#220

B.

20#10#220#220

C.

20#10#30#220

D.

10#20#30#220

第 6 题    单选题

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

A.

冒泡排序是不稳定的

B.

插入排序是不稳定的

C.

选择排序是不稳定的

D.

以上都不正确

第 7 题    单选题

在下面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.

不需要填入代码,按默认排序即可

第 8 题    单选题

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


A.

rb wb

B.

r w

C.

r+ w+

D.

a+ a+

第 9 题    单选题

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

A.

如果输入 1.414,1.732,2.236 也将被执行,输出为 2

B.

如果输入 1,2,3,4,5 将会因输入过多而报错

C.

如果输入 1,2 也将会执行,输出 3

D.

程序存在语法错误,原因是*_

第 10 题    单选题

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

A.

2#

B.

1#4#

C.

2#4#

D.

2#3#4#

第 11 题    单选题

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


A.

w

B.

w+

C.

r+

D.

a+

第 12 题    单选题

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

A.

itm for itm in dictA if len(itm) > 2

B.

K:VforK,VindictAiflen(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

第 13 题    单选题

下面 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]

第 14 题    单选题

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

A.

O(1)

B.

O(n)

C.

O(n+4)

D.

O(n2)

第 15 题    单选题

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

A.

函数 Fx()定义错误,交换 a 和 b 参数的先后顺序,程序执行后将输出 11

B.

上述代码执行后将输出 2

C.

上述代码执行后将输出 11

D.

在 Fx()函数定义中,a 被定义为整数,因此传入字符串将导致错误,因此第 3 行函 数调用后将报错

判断题
第 16 题    判断题

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

A.
正确
B.
错误
第 17 题    判断题

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

A.
正确
B.
错误
第 18 题    判断题

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

A.
正确
B.
错误
第 19 题    判断题

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

A.
正确
B.
错误
第 20 题    判断题

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

A.
正确
B.
错误
第 21 题    判断题

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

A.
正确
B.
错误
第 22 题    判断题

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


A.
正确
B.
错误
第 23 题    判断题

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

A.
正确
B.
错误
第 24 题    判断题

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

A.
正确
B.
错误
第 25 题    判断题

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

A.
正确
B.
错误
编程题
第 26 题    问答题

图像压缩 

【问题描述】

  1. 灰度图像有256级灰阶,编码00-FF,对应0-255,即图像有很多点,每个点取值 是 00 到 FF。编程压缩到 16 级灰阶,对应 0-F

  2. 压缩规则:统计出每种灰阶的数量,取数量最多的前16种灰阶(如某种灰阶的数量 与另外一种灰阶的数量相同,则以灰阶值从小到大为序),分别编号 0-F。其他灰 阶转换到最近的 16 种灰阶之一,将某个点灰阶数与 16 种灰阶种的一种相减,绝对 值最小即为最近。

  3. 输入:多行数据,每行数据等长,每两个字符构成一个点,十六进制;输出:首先 连续最多输出 16 种灰阶编码,不足 16 种灰阶就按实际输出;然后各行输出压缩后 的编码,每行等长。

【输入描述】

  1. 1次输入正整数n,表示有多少行数据。

  2. 随后输入n行数据。

  3. 特别提示:常规程序中,输入时好习惯是有提示。考试时由于系统限定,输入时所

    有 input()函数不可有提示信息。

【输出描述】

  1. 首先输出16种灰阶编码,共计32个字符。不足16种按实际输出。输出数量最多 的 16 种灰阶,从多到少;如某种灰阶的数量与另外一种灰阶的数量相同,则以灰阶 值从小到大为序;

  2. 特别提示:注意输出字母为大写,小写将判为错误,数本身与字母TF之前没有 空格。

【样例输入 1

10 

00FFCFAB00FFAC09071B5CCFAB76 

00AFCBAB11FFAB09981D34CFAF56 

01BFCEAB00FFAC0907F25FCFBA65

10FBCBAB11FFAB09981DF4CFCA67 

00FFCBFB00FFAC0907A25CCFFC76 

00FFCBAB1CFFCB09FC1AC4CFCF67 

01FCCBAB00FFAC0F071A54CFBA65 

10EFCBAB11FFAB09981B34CFCF67 

01FFCBAB00FFAC0F071054CFAC76 

1000CBAB11FFAB0A981B84CFCF66 

【样例输出 1

ABCFFF00CB09AC07101198011B6776FC 

321032657CD10E
36409205ACC16D
B41032657FD16D

8F409205ACF14D 

324F326570D1FE 

3240C245FC411D 

BF4032687CD16D 

8F409205ACC11D 

B240326878D16E 

83409205ACE11D

第 27 题    问答题

幸运数 

【问题描述】

  1. 变化正整数的各个奇数位(从右到左,个位为第1位,奇数,16347),变化的规 则是乘以 7,如果该奇数位与 相乘的结果大于 则各位数相加,如相加结果仍然 大于 则继续各位数相加,直到结果不大于 9;如果该奇数位与 相乘的结果不大 于 则该数为该奇数位变化结果。偶数位不发生变化。各个奇数位变化完毕后,将 新数的各位数相加,如果相加之和是 的整数倍,则为幸运数;

  2. 例如16347,第17奇数位,乘以7结果为49,大于9各位数相加为13大于继续各位数相加最后结果为 4;然后变化第 位 3,第 位 1。最后变化结果为 76344, 对于结果 76344 其各位数之和为 24,是 的倍数,为幸运数;

  3. 首先输入N,随后输入N行正整数。输出N行,对应N个正整数是否为幸运数, 如是则输出 否则 F

【输入描述】

1. 首先输入正整数N随后输入N行正整数,每个一个数。不考虑输入不合规情形,负 数、负整数、非数字构成的字符串等。

2. 特别提示:常规程序中,输入时好习惯是有提示。考试时由于系统限定,输入时所 有 input()函数不可有提示信息。

【输出描述】
1. 输出N行,对应N个正整数是否为幸运数,如是则输出T否则F。;

2. 特别提示:注意输出字母为英文大写,小写或其他将判为错误。 【样例输入 1

2
16347
76344 

【样例输出 1

T
F

答题卡
单选题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
判断题
编程题
26 27
题目总数:27
总分数:100
时间:90分钟