万卷网> GESP认证 >Python > 2024年6月CCF—GESP(Python四级)编程能力等级认证试卷

2024年6月CCF—GESP(Python四级)编程能力等级认证试卷
四级 2024 2025-02-16 16:57:09 87

一、单选题

1.

执行下面Python代码后,输出的结果是?( )

def fun(x, y, **kwargs):
	res = x + y
	for i in kwargs.values():
		res += i
	return res
	
print(fun(10, 20, A=6, B=1, C=3))


A.

40

B.

36

C.

30

D.

语法错误

2.

执行下面Python代码后,输出的结果是?( )

lst = [1, 4, 3, 5, 2]
lst = [i[0] for i in sorted(enumerate(lst), key=lambda x: x[1])]
print(lst)


A.

[3, 1, 2, 4, 0]

B.

[0, 4, 2, 1, 3]

C.

[3, 0, 2, 1, 4]

D.

[0, 3, 2, 4, 1]

3.

程序段如下:

def fun(arr: list):
	n = len(arr)
	for i in range(n - 1):
		for j in range(0, n - i - 1):
			if arr[j] > arr[j + 1]:
				arr[j], arr[j + 1] = arr[j + 1], arr[j]

其中,n为正整数,则该段程序的最坏时间复杂度是?( )

A.

O(n)

B.

OO(2n)

C.

O(n3)

D.

O(n2)

4.

执行下面Python代码后,文件ip.txt中的内容用记事本打开时显示为?( )

with open("ip.txt", "w") as f:
	lst = ["202.206.224.21\n", "192.168.224.1\n"]
	f.writelines(lst)


A.

202.206.224.21192.168.224.1

B.

202.206.224.21

192.168.224.1

C.

202.206.224.21\n192.168.224.1

D.

202.206.224.21\n192.168.224.1\n

5.

在一个农场上,有一头母牛。根据农场的规则,这头母牛每年年初都会生出一头小母牛。每头新生的小母牛从它们出生的第四个年头开始,也会每年年初生出一头新的小母牛。假设没有母牛死亡,并且每头母牛都严格遵循这个规则。下列程序用来计算在第 年时,农场上共有多少头母牛,其中横线处填写的代码为?()

lst = [0] * 100
lst[1:4] = [1, 2, 3, 4]

def calculate_cows(n):
	if n <= 4:
		return lst[n]
	i = 5
	while i <= n:
		lst[i] = __________
		i += 1
	return lst[i - 1]
A.

lst[i - 1] + lst[i - 3]

B.

lst[i - 2] + lst[i - 3]

C.

lst[i - 1] + lst[i - 2]

D.

lst[-1] + lst[-3]

6.

执行下面Python代码后,输出的结果是?( )

users = [
	{"name": "Tom", "skills": {"Python", "Java", "C++"}},
	{"name": "Join", "skills": {"Python", "Java"}},
	{"name": "Gaia", "skills": {"Java", "C++", "SQL"}}
]

skills_sets = (user['skills'] for user in users)
common_skills = set.intersection(*skills_sets)
print(common_skills)
A.

{‘Java’, Python’}

B.

{SQL’, ‘C++’}

C.

{‘Java’, ‘SQL’, ‘Python’, ‘C++’}

D.

{‘Java’}

7.

执行下面python代码后,输出的结果是?( )

def add(c):
	d = c.append(40)
	return d
	
a = [10, 20, 30]
b = add(a)
print(a, b)


A.

[10, 20, 30] [10, 20, 30]

B.

[10, 20, 30, 40] [10, 20, 30, 40]

C.

[10, 20, 30] [10, 20, 30, 40]

D.

[10, 20, 30, 40] None

8.

下面流程图在yr输入2024时,可以判定yr代表闰年,并输出 2月是29天 ,则图中菱形框中应该填入(2024.6-4)( )。


A.

(yr%400==0) || (yr%4==0)

B.

(yr%400==0) || (yr%4==0 && yr%100!=0)


C.

(yr%400==0) && (yr%4==0)

D.

(yr%400==0) && (yr%4==0 && yr%100!=0)

9.

执行下面Python代码后,输出的结果是?( )

def fun(x, y, *nums):
	res = x + y
	for i in nums:
		res += i
	return res
	
print(fun(10, 20, 15, 25, 30))


A.

30

B.

45

C.

100

D.

语法错误

10.

执行下面Python代码后,输出的结果可能是?( )

name = ('Tom', 'Join', 'Gaia')
age = (10, 13, 12)
print({(a.upper(), b) for a, b in zip(name, age)})


A.

{‘Tom’: 10, ‘Join’: 13, ‘Gaia’: 12}

B.

{‘TOM’: 10, ‘JOIN’: 13, ‘GAIA’: 12}

C.

{(‘JOIN’, 13), (‘TOM’, 10), (‘GAIA’, 12)}

D.

{(‘Join’, 13), (‘Tom’, 10), (‘Gaia’, 12)}

11.

小杨父母带他到某培训机构给他报名参加CCF组织的GESP认证考试的第1级,那他可以选择的认证语言有几种?(2024.6-4)( )

A.

1

B.

2

C.

3

D.

4

12.

执行下面python代码后,输出的结果是?( )

def add():
	count = 1
	def fun():
		nonlocal count
		print(count, end="#")
		count += 2
		
	return fun
	
a = add()
a()
a()


A.

1#3#

B.

1#1#

C.

3#3#

D.

add函数语法错误

13.

执行下面python代码后,输出的结果是?( )

s = 1

def sums(n):
	global s
	s = 0
	s = s + n
	print(s, end="#")
	
sums(5)
print(s, end="#")


A.

5#5#

B.

5#1#

C.

1#1#

D.

1#5#

14.

执行下面Python代码,输入0和字符串“abc”后,输出的结果是?( )

try:
	a = int(input())
	b = int(input())
	x = a / b
	print(x, end="#")
except ZeroDivisionError:
	print(0, end="#")
except:
	print(1, end="#")
else:
	print(2, end="#")
finally:
	print(3, end="#")
A.

0#2#3#

B.

0#3#

C.

1#2#3#

D.

1#3#

15.

函数fun的定义如下,调用该函数的语句错误的是?( )

def fun(x, y, z=3):
	print(x, y, z)


A.

fun(1, 2, 3)

B.

fun(1, 2)

C.

fun(y=2, x=1)

D.

fun(1, y=2, 3)

二、判断题

1.

执行下面Python代码后,输出的结果为za。

print(max('az', 'za', key=lambda a: a[0]))


A.正确 B.错误
2.

在Python中,print(list(“GESP”))执行后输出[‘G’, ‘E’, ‘S’, ‘P’]。( )

A.正确 B.错误
3.

要打开一个已经存在的图片文件并读取但不修改数据,则打开模式应该设定为rb。

A.正确 B.错误
4.

执行下面Python代码后,输出两个True。

lst1 = [1, 2, 3]
lst2 = lst1[:]
print(lst1 == lst2, lst1 is lst2)


A.正确 B.错误
5.

Python在处理程序异常时,异常处理结构能够发现程序段中的语法错误。

A.正确 B.错误
6.

GESP测试是对认证者的编程能力进行等级认证,同一级别的能力基本上与编程语言无关。(2024.6-4)( )

A.正确 B.错误
7.

执行下面Python代码,调用函数fun可以得到一个元组类型的数据。

def fun(a, b):
    return a // b, a % b
print(type(fun(8, 5)))


A.正确 B.错误
8.

Python程序中,全局变量与局部变量不允许重名。

A.正确 B.错误
9.

执行下面Python代码后,输出两个True。

print("h" in "hello")
print("he" in "hello")
A.正确 B.错误
10.

下面这段程序的时间复杂度为平方阶O(n2)。( )

def fun(n):
	sum1 = 0
	for i in range(n):
		sum1 += i
A.正确 B.错误

三、编程题

1.

宝箱

时间限制:1.0 s

内存限制:512.0 MB

题面描述

小杨发现了n个宝箱,其中第i个宝箱的价值是ai。

小杨可以选择一些宝箱放入背包并带走,但是小杨的背包比较特殊,假设小杨选择的宝箱中最大价值为x,最小价值为y,小杨需要保证x−y≤k,否则小杨的背包会损坏。

小杨想知道背包不损坏的情况下,自己能够带走宝箱的总价值最大是多少。

输入格式

第一行包含两个正整数n,k,含义如题面所示。

第二行包含n个正整数a1,a2 , . . . , an,代表宝箱的价值。

输出格式

输出一个整数,代表带走宝箱的最大总价值。


输入样例

5 1
1 2 3 1 2

输出样例

7


样例解释

在背包不损坏的情况下,小杨可以拿走两个价值为 2 22 的宝箱和一个价值为 3 33 的宝箱。

数据范围

对于全部数据,保证有 1 ≤ n ≤ 1000 , 0 ≤ k ≤ 1000 , 1 ≤ ai ≤ 1000

2.

黑白方块

时间限制:1.0 s

内存限制:512.0 MB

题面描述

小杨有一个n行m列的网格图,其中每个格子要么是白色,要么是黑色。

对于网格图中的一个子矩形,小杨认为它是平衡的当且仅当其中黑色格子与白色格子数量相同。

小杨想知道最大的平衡子矩形包含了多少个格子。

输入格式

第一行包含两个正整数n,m,含义如题面所示。

之后n行,每行一个长度为m的01串,代表网格图第i行格子的颜色,如果为0,则对应格子为白色,否则为黑色。

输出格式

输出一个整数,代表最大的平衡子矩形包含格子的数量,如果不存在则输出0。


输入样例

4 5
00000
01111
00011
00011

输出样例

16


样例解释

对于样例1,假设 (i,j) 代表第i行第j列,最大的平衡子矩形的四个顶点分别为 (1,2),(1,5),(4,2),(4,5)。

数据范围

对于全部数据,保证有 1 ≤ n , m ≤ 10。

公众号
客服 反馈
顶部