万卷网> 电子学会考级 >Python等级考试 > 2025年9月电子学会青少年软件编程(Python四级)等级考试试卷

2025年9月电子学会青少年软件编程(Python四级)等级考试试卷
客观题 四级 2025 2025-10-24 20:39:58 66

一、单选题

1.

小明正在学习辗转相除法求两数的最大公约数,他用Python语言编写了如下程序,请问第二次调用gcd()函数时,函数实参是多少?递归函数总共调用了几次?( )

def gcd(a, b):
   if a % b == 0:
       return b
   return gcd(b, a % b)
print(gcd(168, 66))
A.

gcd(168, 66), 4次

B.

gcd(66, 36), 3次

C.

gcd(66, 36), 4次

D.

gcd(36, 30), 3次

2.

下列关于Python中函数的描述,不正确的是?( )

A.

函数的定义可以在函数调用语句之后

B.

函数中通过return语句返回结果

C.

函数能提高代码的模块性和代码的复用率

D.

Python中使用def 函数名称 格式定义函数

3.

更新已安装的matplotlib库到最新版本,应使用的命令是?( )

A.

update matplotlib

B.

pip install --upgrade matplotlib

C.

pip install matplotlib --latest

D.

pip upgrade matplotlib

4.

有如下Python程序段,执行该程序段后,变量s的值是?( )

s = 1def sums(num):
   global s
   s = 0
   s = s + num
sums(5)
A.

0

B.

1

C.

5

D.

None

5.

有如下Python自定义函数:

def myfun(x,y,z)

   return x+y*z

下列语句能正确调用该函数的是?( )

A.

myfun(1,2)

B.

myfun(1,2,3)

C.

myfun(x=1,2,3)

D.

myfun(1,y=2,3)

6.

下列关于函数返回值的描述中,正确的是?( )

A.

函数返回值的数据类型只能是整数

B.

函数中只能有一个return语句

C.

return语句中不能有表达式

D.

函数可以没有返回值

7.

小张想用Python爬取网页数据,老师建议安装requests库。正确的安装命令是下列哪个选项?( )

A.

python install requests

B.

pip install request

C.

install requests

D.

pip install requests

8.

自定义函数按性别处理学生身高与体重的体测数据,下列Python函数中参数设计最合理的选项是?( )

A.

def calculate(*args, gender='男')

B.

def calculate(weight, height, gender='男')

C.

def calculate(**kwargs,, gender='男')

D.

def calculate(parameters)

9.

Python定义函数语句中若传入的参数数量不确定,划线处正确的代码是?( )

def myfun(___):

      pass

A.

a

B.

[]

C.

a[]

D.

*args

10.

小明和小红在玩一种数字游戏。游戏规则如下:

(1)小明先从整数1开始写下一个数字;

(2)接下来,小红会将当前数字加3后写下新的数字;

(3)然后小明会将当前数字乘以2后写下新的数字;

(4)两人轮流按照这个规则操作,直到写下的数字第一次超过100为止。

请根据游戏规则模拟推理游戏结果?( )

A.

小明 102

B.

小红 106

C.

小明 106

D.

小红 102

11.

图书馆有1000本按编号排序的书(1-1000),小刚想用分治算法快速找到编号为450的书。分治算法的正确步骤是?( )

A.

从第1本开始逐本查找,直到找到450

B.

随机抽取100本检查,若未找到则换一批

C.

将书分成两堆,依次查找两堆

D.

先找中间第500本书,如果书的编号 < 500,则在1-499中重复折半查找

12.

自定义游戏得分计算函数,下列Python函数调用结果正确的是?( )

def calc_score(base, bonus=10):
   return base + bonus
print(calc_score(50))
A.

50

B.

60

C.

报错

D.

None

13.

小明用Python语言编写一个递归函数fun()来计算从1加到n的所有整数之和。

比如 1+2+3+4+5 = 15

请为小明编写正确的递归函数,选择正确的选项是?( )

A.
def fun(n):
   if n == 0:
       return 0
   else:
       return n + fun(n+1)
fun(1)
B.
def fun(n):
   if n == 0:
       return 0
   else:
       return n + fun(n-1)
fun(5)
C.
def fun(n):
   if n == 5:
       return 5
   else:
       return n + fun(n+1)
fun(5)
D.
def fun(n):
   if n == 5:
       return 5
   else:
       return n + fun(n-1)
fun(1)
14.

小红打算每次打扫一半区域,直到剩余区域≤1平方米时停止。分治算法中,递归终止条件是?( )

A.

剩余区域 >1平方米

B.

剩余区域 ≤1平方米

C.

打扫次数超过5次

D.

每次打扫后检查是否干净

15.

下列关于函数功能的描述中正确的是?( )

A.

可以避免编写重复的代码,提高代码复用

B.

函数允许将程序分解为多个模块或组件,每个组件负责完成一个特定的任务

C.

函数提供了一种抽象机制,允许我们隐藏实现细节,只暴露功能接口

D.

函数的大量使用增加了阅读程序的难度,使得程序可读性变差

16.

小明在玩爬楼梯的游戏,需要爬n阶才能到达楼顶。规定每次只能爬1个或2个台阶,编写程序计算一共有多少种不同的方法可以爬到楼顶。

小明用Python语言编写了如下代码,下列哪个选项能得到正确结果?( )

def fun(n):
   if n in (1, 2):
       return n
   f1, f2, res = 1, 2, 0
   for i in range(3, n+1):
       __________
   return res
A.

res += f1 +f2

f1, f2 = f2, res

B.

res = f1 + f2

f1, f2 = f2, res

C.

res = f1 + f2

f1, res = f2, f1

D.

res += f1 + f2

f1, f2 = res, f1

17.

想用lambda函数快速实现两数相加,正确的写法是?( )

A.

s=lambda a,b: a + b

B.

s=lambda a + b

C.

s=lambda a,b: return a + b

D.

s=lambda: a + b

18.

自定义函数def weather(city,unit='C'),调用函数时参数传递正确的是哪个选项?( )

A.

weather(unit='F', '北京')

B.

weather('北京', unit='F')

C.

weather(city='北京', 'F')

D.

weather('北京', 'F)

19.

老师需要合并两个已排序的学生成绩表(A班:70,80,90,B班:75,85,95),用分治算法合并成一个有序列表。合并过程中,分治算法的关键步骤是?( )

A.

直接拼接两个列表,然后整体排序

B.

随机打乱两个列表,重新排序

C.

逐个比较两列表当前最小元素,按序插入新列表

D.

仅保留高分,丢弃低分

20.

小兔子有一堆胡萝卜,它每天都会吃掉原来的一半再多吃一根。 这样连续吃了3天,发现只剩下1根胡萝卜了。小兔子想知道第一天有多少根胡萝卜并且递推公式是什么,请选择正确的选项?( )

A.

10, a[n-1] = (a[n]-1) * 2

B.

10, a[n-1] = (a[n]+1) * 2

C.

10, a[n-1] = a[n] * 2 - 1

D.

10, a[n-1] = a[n] * 2 + 1

21.

关于Python自定义函数,下列说法正确的是?( )

A.

函数参数必须按顺序传递

B.

函数参数可以是任意数据类型

C.

函数参数必须有默认值

D.

函数参数不能是字符串

22.

植物园里有一棵智慧的老树精叫做“古拉”,它的生长能力极强。如果一棵树每年都能长出两棵新树,那么从第一年开始,第n年总共有多少棵树?

例如:

第1年:1棵树

第2年:1 + 2 * 1 = 3棵树

第3年:3 + 2 * 3 = 9棵树

第4年:9 + 2 * 9 = 27棵树

请你帮忙完善递归函数,并选择正确的选项?( )

def tree(n):
   if n == 1:
       return 1
   else:
       return _______________
A.

2*(2 * tree(n-1) - 1) + 1

B.

2*tree(n-1) + 1

C.

3*tree(n-1)

D.

2*(tree(n-1)+1) - 1

23.

自定义温度转换函数,下面Python代码横线处填入正确的是哪个选项?(  )

def celsius_to_fahrenheit(c):

   _______ c * 9/5 + 32

A.

return

B.

input

C.

output

D.

end

24.

编写计算两数乘积的匿名函数,下列语句中正确的是?(  )

A.

lambda a,b:a*b

B.

lambda a,b,a*b

C.

rst = lambda a,b,a*b

D.

rst = lambda a,b : a * b

25.

解决下列问题时,时间复杂度最大的是?( )

A.

打印输出100个已知的整数

B.

在100个数据中,查找数据25

C.

将100个数据用冒泡排序实现排序

D.

计算算式1-2+3-4+...-100的结果

二、判断题

1.

Python语言编程中,def buy(fruit="苹果", num):是合法参数定义。( )

A.正确 B.错误
2.

使用pip list命令可以查看当前Python环境中已安装的所有第三方库及其版本号。( )

A.正确 B.错误
3.

Python中编写自定义函数时,不能没有参数。( )

A.正确 B.错误
4.

阅读以下Python代码:

def fact(n):    if n <= 1:
       return 1
   else:
       return n*fact(n-1)
def fact2(n):
   s = 1
   for i in range(1, n+1):
       s = s * i
   return s

上述Python语言编写的两个函数,它们实现的功能是一样的。( )

A.正确 B.错误
5.

定义一个函数时可以没有参数,也可以有多个参数,但是参数的个数必须是确定。( )

A.正确 B.错误
6.

Python语言编程中,lambda x: x+1可以赋值给变量使用。( )

A.正确 B.错误
7.

分治算法在所有场景下都比暴力枚举法效率更高。( )

A.正确 B.错误
8.

算法的时间复杂度反应了程序执行时间随问题规模增长而增长的量级,在很大程度上能很好地反映出算法的优劣。( )

A.正确 B.错误
9.

递归算法有明确的结束递归的边界条件(又称终止条件)以及结束时的边界值,可以通过循环结构实现。( )

A.正确 B.错误
10.

Python函数必须有返回值。( )

A.正确 B.错误
公众号
客服 反馈
顶部