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

人们所使用的手机上安装的App通常指的是

A.
一款操作系统
B.
一款应用软件
C.
一种通话设备
D.
以上都不对
第 2 题    单选题
以下选项在Python中能输出 (1, 4, 9, 16, 25, 36, 49, 64, 81, 100) 的是( )。
A.
print(tuple(i**2 for i in range(10)))
B.
print(tuple([i*i for i in range(1,10+1)]))
C.
print(tuple(i*i for i in range(10+1)))
D.
print(tuple(map(lambda x:x**2,range(10))))
第 3 题    单选题

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

A.
2#
B.
1#4#
C.
2#4#
D.
2#3#4#
第 4 题    单选题
要打开一个已经存在的图片文件并读取但不修改数据,则打开模式应该设定为( )。
A.
wb
B.
w+
C.
rb
D.
r+
第 5 题    单选题

下面Python代码中的 dictA 变量存储形如 {1: [1], 2: [1, 2], 3: [1, 3], 4: [1, 2, 4], 5: [1, 5], 6: [1, 2, 3, 6]} 的数据,即1~99之间每个整数的因数(所有能被整除的正整数),横线处应填入是( )。

A.
[j for j in range(i) if i % j != 0]
B.
[j for j in range(1,i+1) if i % j == 0]
C.
[j for j in range(1,i+1) if i % j]
D.
[j for j in range(i) if i % j == 0]
第 6 题    单选题

下面Python代码中的 dictA 存储为字典,key(键)为i和j的组合,value(值)为i*j,形如 {(1,1):1, (1,2):2} ,横线处应填上代码是( )。

A.
dict99[(i, j)]
B.
dict99[[i, j]]
C.
dict99(i, j)
D.
dict99{i, j}
第 7 题    单选题

bubbleSort() 函数的时间复杂度是( )。

A.

O(n)

B.

O(n2)

C.

O(n log n)

D.

O(1)

第 8 题    单选题

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

A.
[2, 3, 7, 11, 15]
B.
[15, 11, 7, 3, 2]
C.
[11, 2, 3, 7, 15]
D.
None
第 9 题    单选题

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

A.
(1, 2, 3),(1, 2, 3)
B.
(1, 2, 3, 4),(1, 2, 3)
C.
(1, 2, 3),(1, 2, 3, 4)
D.
(1, 2, 3, 4),(1, 2, 3, 4)
第 10 题    单选题

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

A.
[1, 2, 3]
B.
[1, 2, 3, 4]
C.
[4]
D.
None
第 11 题    单选题

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

A.
1, 2, 3
B.
1, 2, 22
C.
11, 11, 22
D.
11, 11, 3
第 12 题    单选题

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

A.
[1]
B.

[1, 2, 4]

C.

[1, 2, 4, 4]

D.
触发异常
第 13 题    单选题
下面有关 print() 函数的说法,错误的是 ( )。
A.
print() 函数的 sep 和 end 参数为带有默认值的命名关键字参数
B.
print() 函数可以输出多个表达式的值,其参数为变长参数
C.
如果 print() 函数同时使用 sep 和 end 参数,则要求 sep 在前 end 在后
D.
print() 函数可以输出多个不同数据类型表达式的值
第 14 题    单选题

下列流程图的输出结果是 ( ) ?

A.

9

B.

7

C.

5

D.

11

第 15 题    单选题
Python赋值语句是 lstA = [6, 7, 8, 9] ,删除值为8的元素,错误的语句是( )。
A.
lstA.remove(8)
B.
lstA.pop(2)
C.
del lstA[2]
D.
lstA.del[2]
判断题
第 16 题    判断题

我们常说的互联网(Internet)是一个覆盖全球的广域网络,不属于任何一个国家。

A.
正确
B.
错误
第 17 题    判断题
在与异常处理相关的关键字中, finally 所属内容不管是否发生异常都将会被执行。
A.
正确
B.
错误
第 18 题    判断题

下面的Python代码执行后最后一行将输出没有偶数的 lst 。

A.
正确
B.
错误
第 19 题    判断题
Python文本文件读取函数 readlines() 能按行读取文本文件,且返回值为 list 类型。
A.
正确
B.
错误
第 20 题    判断题

下面代码中的Nums.txt文本文件中含有0-9共计10个数字,分为两行存储,第1行为0-4,第2行为5-9,程序执 行后将输出10。

A.
正确
B.
错误
第 21 题    判断题
()+() 在Python中是合法的表达式,其值为 () 。
A.
正确
B.
错误
第 22 题    判断题
对包含N个元素列表(list)进行冒泡排序算法,其时间复杂度是O(N2) 。
A.
正确
B.
错误
第 23 题    判断题
Python的内置函数 sorted() 函数是稳定排序。
A.
正确
B.
错误
第 24 题    判断题
我国第一台大型通用电子计算机使用的逻辑部件是晶体管。
A.
正确
B.
错误
第 25 题    判断题
global 关键字只能用于自定义函数内,其功能是允许在函数内修改全局变量的值。
A.
正确
B.
错误
编程题
第 26 题    问答题

试题名称:进制转换

【问题描述】

N进制数指的是逢N进一的计数制。例如,人们日常生活中大多使用十进制计数,而计算机底层则一般使用二进制。除此之外,八进制和十六进制在一些场合也是常用的计数制(十六进制中,一般使用字母 A 至 F 表示十至十五;本题中,十一进制到十五进制也是类似的)。

在本题中,我们将给出N个不同进制的数。你需要分别把它们转换成十进制数。

提示

对于任意一个L位K进制数,假设其最右边的数位为第0位,最左边的数位为第L-1位,我们只需要将其第i位的数码乘以权值Ki ,再将每位的结果相加,即可得到原K进制数对应的十进制数。下面是两个例子:

1. 八进制数 1362 对应的十进制数为1×83+3×82+6×81+2×80=754 ;

2. 十六进制数 3F0 对应的十进制数为 3×162+15×161+0×160=1008。

【输入描述】

输入的第一行为一个十进制表示的整数N。接下来N行,每行一个整数K,随后是一个空格,紧接着是一个K进制数,表示需要转换的数。保证所有 进制数均由数字和大写字母组成,且不以 0 开头。保证K进制数合法。

保证N≤1000;保证2≤K≤16

保证所有K进制数的位数不超过9。

【输出描述】

输出N行,每一个十进制数,表示对应K进制数的十进制数值。

特别提醒

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

 

样例输入 1

2

8 1362

16 3F0

样例输出 1

754

1008

样例输入 2

2

2 11011

10 123456789

样例输出 2

27

123456789

第 27 题    问答题

试题名称:变长编码

【问题描述】

小明刚刚学习了三种整数编码方式:原码、反码、补码,并了解到计算机存储整数通常使用补码。但他总是觉得,生活中很少用到231-1这么大的数,生活中常用的0~100这种数也同样需要用4个字节的补码表示,太浪费了些。

热爱学习的小明通过搜索,发现了一种正整数的变长编码方式。这种编码方式的规则如下:

1. 对于给定的正整数,首先将其表达为二进制形式。例如,(0) {10}=(0) {2},(926) {10}=(1110011110) {2} 。

2. 将二进制数从低位到高位切分成每组7bit,不足 bit的在高位用0填补。例如, (0) {2}变为0000000的一组,(1110011110) {2}变为0011110和0000111的两组。

3. 由代表低位的组开始,为其加入最高位。如果这组是最后一组,则在最高位填上0,否则在最高位填上1。于是,0的变长编码为00000000一个字节,926的变长编码为10011110和00000111两个字节。

这种编码方式可以用更少的字节表达比较小的数,也可以用很多的字节表达非常大的数。例如,987654321012345678的二进制为(0001101 1011010 0110110 1001011 1110100 0100110 1001000 0010110 1001110) {2},于是它的变长编码为(十六进制表示) CE 96 C8 A6 F4 CB B6 DA 0D ,共9个字节。

你能通过编写程序,找到一个正整数的变长编码吗?

【输入描述】

输入第一行,包含一个正整数N。约定 0≤N≤1018

 

【输出描述】

输出一行,输出N对应的变长编码的每个字节,每个字节均以2位十六进制表示(其中,A-F使用大写字母表示),两个字节间以空格分隔。

样例输入1

0

样例输出1

00

样例输入2

926

样例输出2

9E 07

样例输入3

987654321012345678

样例输出3

CE 96 C8 A6 F4 CB B6 DA 0D

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