青少年软件编程(Python四级)等级考试试卷(2022年3月)

2023年06月01日

选择题

第 1 题 单选题

关于函数,以下选项中描述错误的是? ( )

A. 函数能完成特定的功能,对函数的使用不需要了解函数内部实现原理,只要了解函数的输入输出方式即可。

B. 使用函数的主要目的是减低编程难度和代码重用。

C. Python 使用 del 保留字定义一个函数。

D. 函数是一段具有特定功能的、可重用的语句组。

第 2 题 单选题

Python机器学习方向的第三方库是? ( )

A. Turtle

B. TensorFlow

C. Pygame

D. Random

第 3 题 单选题

Python可以将形式参数定义为可变参数,即传入函数中的实际参数可以是任意多个,主要有“*parameter”以及“**parameter”两种形式。以下关于可变参数的定义形式表述错误的是? ( )

A. “*parameter”这种形式表示接受任意多个实际参数并将其放到一个列表中

B. 如果想要使用一个已经存在的列表作为函数的可变参数,可以在列表的名称前加“*”后作为形式参数进行调用

C. “**parameter”这种形式表示接受任意多个类似关键字参数一样显示赋值的实际参数并将其放到一个字典中

D. 如果想要使用一个已经存在的字典作为函数的可变参数,可以在字典的名称前加“**”后作为形式参数进行调用

第 4 题 单选题

关于以下程序,运行程序输出的结果是? ( )

def demo(a,b): 
	print(a+b) 
mydict={'a':1,'b':2} 
demo(**mydict) 
demo(*mydict)

A. 3 3

B. 3 ab

C. ab 3

D. ab ab

第 5 题 单选题

函数调用时通过“键-值”形式加以指定实际参数,即使用关键字参数,可以让函数更加清晰、容易使用,关于关键字参数的限制,以下表述中哪一个是错误的? ( )

A. 关键字参数之间不存在先后顺序

B. 不得重复提供实际参数

C. 关键字参数可以位于位置参数之前

D. 关键字参数必须位于位置参数之后

第 6 题 单选题

下列关于函数的说法,错误的是? ( )

A. 函数是一种功能抽象的模块

B. 使用函数的目的只是为了增加代码复用

C. 函数的使用包括定义函数和调用函数

D. 函数名可以是任何有效的Python标识符

第 7 题 单选题

下列哪个关键字可用来创建自定义函数? ( )

A. function

B. def

C. class

D. procedure

第 8 题 单选题

关于算法描述正确的是? ( )

A. 算法是一种程序设计语言

B. 算法每个步骤必须有确切的定义

C. 算法就是数值计算方法

D. 算法至少要有一个输入

第 9 题 单选题

以下哪个不是Python中的内建函数? ( )

A. ord(x)

B. abs(x)

C. chr(x)

D. def(x)

第 10 题 单选题

以下选项中,关于python函数参数的说法错误的是? ( )

A. 在调用一个函数时,若函数中修改了实参变量的值,则对应的形参变量的值也被修改

B. 函数一定要有参数和返回值

C. 位置形参必须在关键字形参的前面

D. 函数的形参在函数被调用时获得初始值

第 11 题 单选题

关于Python的自定义函数的描述,下列哪个选项是错误的? ( )

A. 函数名的命名规则与变量名的命名规则相同

B. 如果有多个参数,各参数之间使用“,”隔开

C. 函数没有参数,在函数名后面仍然要保留一对空的“()”,后面不需要加“:”

D. 函数体相对于自定义函数的关键字必须保持一定的缩进

第 12 题 单选题

执行以下程序,以下选项中哪一项是错误的? ( )

def miao(x,y): 
	z=x+y*2
	y=x
	return z 
x=2 
y=3
z=miao(x,y)+y

A. 该函数名称为miao

B. 执行该函数后,变量x的值为2

C. 执行该函数后,变量y的值为2

D. 执行该函数后,变量z的值为11

第 13 题 单选题

可以通过下列哪一个关键字,通过局部变量修改全局变量的值? ( )

A. nonlocal

B. global

C. nonglobal

D. globall

第 14 题 单选题

设有以下函数,运行程序输出的结果是? ( )

def fun(m,n): 
	m-=n 
	return m 
a=fun(4,1) 
print(a)

A. 1

B. 2

C. 3

D. 4

第 15 题 单选题

有如下 Python 程序,运行该程序后,输出结果为? ( )

def fun(s):
	st=s[1]
	for i in range(1,len(s)):
		if len(st)==0 or s[i]!=st[len(st)-1]:
			st=st+s[i]
		else:
			st=st[0:len(st)-1]
	print(st)
fun("xxyyzzxyz")

A. xyz

B. xyzxyz

C. xyxyz

D. xxyyz

第 16 题 单选题

观察下列代码,说法错误的项是? ( )

def fi(n):
	if n==1 or n==2:
		s=1
	else:
		s=fi(n-1)+fi(n-2)
	return s
a=int(input("请输入a的值:"))
print(fi(a))

A. 该程序段用递归算法来实现

B. 语句“def fi(n):”中的n为形参

C. 边界条件为n==1

D. 当a=6时,程序输出8

第 17 题 单选题

以下函数要计算1到100自然数的和,则划线处应补充选项为? ( )

def su(n):
	s =0
	while n > 0:
	return s
print(su(100))

A. n=n-1 s=s+n

B. n=n+1 s=s+n

C. s=s+n n=n-1

D. s=s+n n=n+1

第 18 题 单选题

下列关于递归的描述不正确的是? ( )

A. 递归函数一定包含条件控制语句

B. 递归函数一定包含调用自身的语句

C. 在调用自身函数时需要明确的边界终止条件

D. 递归算法一般代码简洁,执行效率高,空间复杂度低

第 19 题 单选题

以下关于递归与递推方法的比较,正确的观点是? ( )

A. 递推是将复杂问题分解成若干个子问题,依次降解,求出低阶规模的解,代入高阶问题中,直至求出原问题的解

B. 递归是构造低阶规模的问题,并求出解,依次推导出高阶的问题以及解,直至求出问题的解

C. 数学上的递推关系可以通过递归的方法来实现

D. 递归算法代码简洁,运行速度比递推快,因此应该尽量采用递归的方法

第 20 题 单选题

下列程序段的运行结果为? ( )

def fun(a):
	if a<=1:
		return 1
	else:
		return fun(a-1)*2
print(fun(5))

A. 4

B. 8

C. 16

D. 25

第 21 题 单选题

以下函数要实现5的阶乘,则划线处应补充选项为? ( )

def fun(i):
	if i<=1:
		return 1
	else:
		return                
print(fun(5))

A.

i*(i-1)*(i-2)*...*2*1

B.

(i-1)*fun(i)

C.

i*fun(i+1)

D.

i*fun(i-1)

第 22 题 单选题

以下常见算法中,体现分治思想的是? ( )

A. 解析算法

B. 枚举算法

C. 冒泡排序

D. 对分查找

第 23 题 单选题

对于序列98,88,76,65,48,24,12,12,8,1,采用“对分查找”法查找8,需要查找多少次? ( )

A. 5

B. 4

C. 3

D. 2

第 24 题 单选题

分治法所能解决的问题一般具有以下几项特征,下列哪一项描述不正确? ( )

A. 该问题的规模缩小到一定的程度就可以容易地解决

B. 该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质

C. 利用该问题分解出的子问题的解可以合并为该问题的解

D. 该问题所分解出的各个子问题之间包含公共的子子问题

第 25 题 单选题

一般用于安装Python第三方库的工具是? ( )

A. import

B. install

C. setup

D. pip

判断题

第 26 题 判断题

如下图代码,运行之后,最终打印出的结果是4,请判断对错。

A. 正确

B. 错误

第 27 题 判断题

下图左右两段代码运行之后,打印出的结果不相同!请判断对吗?

根据题意,该题答案为:错误.

A. 正确

B. 错误

第 28 题 判断题

为实现下图左边的打印效果,小明编写了如下图右边的代码。

请问,他这代码能正确打印出左边效果来吗?

A. 正确

B. 错误

第 29 题 判断题

为打印出5、4、3、2、1这个数字序列,小明编写了一个递归函数,如下图所示。

请问,他这个程序是正确的吗?

A. 正确

B. 错误

第 30 题 判断题

1、有abc三个口袋,a袋中有1粒糖,b袋中有2粒糖,c袋中有3粒糖

2、小红与小明两人轮流在任意一袋中取糖出来。每次可以在任意一袋中,取任意颗(比如,可在c袋中取3、2、1任意颗)

3、到最后,谁最后一次取,并将所有糖都取完了,谁就获胜,获胜者将得到所有的糖。

小明让小红先取,自己后取。

小红说:不!先取的人肯定会输!

请判断,小红所说,是正确还是错误?( )

A. 正确

B. 错误

第 31 题 判断题

小明听说,使用pygame模块可以编写很多有趣的小游戏,于是他想在自己的电脑上安装这个模块。

他使用了如下命令进行安装,请问,他下面这条命令正确吗?

pip  install  -i  https://pypi.doubanio.com/simple/  pygame

A. 正确

B. 错误

第 32 题 判断题

匿名函数L(x1,y1,x2,y2)的返回值是(x1-x2)**2 + (y1-y2)**2的计算结果。

   L = lambda x1,y1,x2,y2:(x1-x2)**2 + (y1-y2)**2

A. 正确

B. 错误

第 33 题 判断题

primenumber(number)函数是判断一个数是否是素数的函数,将函数的循环条件“for i in range(2,number)”更改为“for i in range(2,number//2)”能够降低primenumber(number)函数的时间复杂度。

def primenumber(number):
	if number < 2:
		print(number,"不是素数!")
	else: 
		for i in range(2,number):
			if number % i == 0:
				print(number,"不是素数!")
				break
		else:
			print(number,"是素数!")

A. 正确

B. 错误

第 34 题 判断题

在一个程序实现过程中,若某一部分的代码功能反复出现了多次,我们可以把这段反复出现的代码定义成一个函数,然后在需要的时候调用,这体现了函数代码的复用性。

A. 正确

B. 错误

第 35 题 判断题

执行以下代码:

def func(list_1):
	list_1=[5,8]
list_1=[20,12,53]
func(list_1)
t=tuple(list_1)
print(t)

程序输出的结果为:(5,8)。

A. 正确

B. 错误

编程题

第 1 题 问答题

7个评委给每个选手打分,评委分数中去掉最高分与最低分,计算所得平均分是每个选手的最后得分,保留2位小数。

根据上述计算规则,编写自定义函数完成程序功能,完善代码。

根据评委分数,计算去掉最高分与最低分后的平均分,保留2位小数

函数名 def getScore(fs):

参数 fs:表示评委的分数,为列表

返回值 :返回选手的得分,保留2位小数。

def getScore(fs):
	maxfs = 0
	minfx = 999999
	n =   ①    
	for f in fs:
		if f > maxfs:
			 ②    
		elif f < minfx:
			minfx = f   
	yxf = sum(fs)-maxfs-minfx
	avgfs =   ③    
	return avgfs
fs = [9.56,9.68,9.78,9.67,9.81,9.21,9.75]
defen =  ④    
print(defen)

第 2 题 问答题

素数是只能被1和本身整除的正整数,编写自定义函数,实现判断正整数是否为素数。完善程序代码。

判断正整数n是否为素数,若是返回True;否则返回False

函数名 def prime(n)

参数 n:表示正整数

返回值 :n是素数,返回True;否则返回False

def prime(n):
	if n < 2:
		return False
	else:
		for i in range(  ①   ,n):
			if   ②   :
				return False
	return   ③  
n = 7
if   ④  :
	print("{}是素数".format(n))
else:
	print("{}不是素数".format(n))

第 3 题 问答题

编写程序计算n(n<=10)位数中,包含奇数个5的个数。比如1位数中包含奇数个5的个数是1个。利用递推方法计算n位数包含奇数个5的个数。完善划线处的代码。

c = [[0 for i in range(2)] for i in range(11)]  #存放奇数个5和偶数个5的二维列表
c[1][0] = 9                           #一位数中包含偶数个5的个数
c[1][1] = 1                           #一位数中包含奇数个5的个数
k = 9
n = 5
for i in range(2,  ①  ):                   
	if i == n:
		k =   ②  
	c[i][0] = c[i-1][1] + k * c[i-1][0]
	c[i][1] =   ③  
print(c[n][1])