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

2025年6月电子学会青少年软件编程(Python四级)等级考试试卷
客观题 四级 2025 2025-07-15 17:13:51 63

一、单选题

1.

一张彩纸厚度为0.2mm,求对折20次后的厚度,下面Python代码错误的地方是?( )

width= 0.2
for i in range(1,20):
   width = width *2
A.

循环体错误,应该是width = width **2

B.

循环次数错误,应该是range(20)

C.

循环次数错误,应该是range(19)

D.

循环体错误,应该是width +=width *2

2.

有如下Python程序段,执行该程序段后,输出的结果是?( )

def fun(x,y):
   if x >y:
       rst = 2 ** x
   else:
       rst = x ** 2
   return rst
x,y = 3,5
print(fun(x,y))
A.

6

B.

10

C.

9

D.

25

3.

社团活动中,小明分享一个编好的程序,小伙伴们试运行结果是?( )

def add(*arge):
   s=0
   for i in args:
       s+=i
   return s
s=add(2,3,4,5)
print(s)
A.

12

B.

13

C.

14

D.

15

4.

有如下Python程序段,执行该程序段后,输出的结果是?( )

def js(x,y):
   rst = x * y - x // y
   return rst
x,y = 3,5
print(js(x,y))
A.

15

B.

14.4

C.

13.67

D.

8

5.

在Python中自定义函数f(x,y,z),参数x、y、z是整型变量,下列函数调用语句正确的是?( )

A.

f

B.

f1,f2,f3

C.

f(1,2,3)

D.

f(123)

6.

小明用“分治算法”编写了一个函数。他的任务是计算1+2+3+......+100的和。

请选择下列哪一项填入①处,使程序运行成功?( )

def sum_range(start, end):
   if start == end:
       return start
   mid = (start + end) // 2
   return sum_range(start, mid) +    ①    
print(sum_range(1, 100))
A.

sum_range(mid, end)

B.

sum_range(mid+1, end)

C.

sum_range(mid+1, end+1)

D.

sum_range(mid, end-1)

7.

光明小学有128位同学参加夏令营,老师为这些学生从1~128编上号码。现在老师随机抽取一个号码,让小明找到这位同学,小明想用二分查找的方法去查找,请问最差情况下需要查找几次才能找到这位同学?( )

A.

5

B.

6

C.

7

D.

8

8.

以下lambda函数中,哪个会因变量未定义而报错?( )

A.

lambda x: x + y

B.

lambda x: x*2

C.

lambda x,y=5: x+y

D.

lambda x: x**0.5

9.

小明想用lambda函数计算两个数的平方和,正确的写法是?( )

A.

lambda a,b: a**2 + b**2

B.

lambda a,b: return a**2 + b**2

C.

lambda a,b -> a**2 + b**2

D.

lambda (a,b): a**2 + b**2

10.

小明每天做俯卧撑,第1天做10个,之后每天比前一天多2个。可以计算5天总训练量的Python递推程序是下列哪个选项?( )

A.
total = 0  
for day in range(1,6):  
   total += 8 + 2*day
B.
total = 10  
for _ in range(4):  
   total += total + 2
C.
total = 10  
current = 10  
for _ in range(4):  
   current += 2  
   total += current
D.
def push_up(n):  
   return 10*n + 2*(n-1)
11.

小明的班级有8个同学,每个人身上贴了一个不同的数字,

现在要举办一场”快速排序比赛“,规则如下:

(1)设置两个变量i, j,排序开始时,i=0,j=N-1 。
(2)以第一个元素作为关键数据,将其赋值给key, 即key = A[0] 。
(3)从j开始向前搜索,即由后向前搜索(j--), 找到第一个小于key的值A[j],将A[j]与A[i]交换。
(4)从i开始向后搜索,即由前向后搜索(i++),找到第一个大于key的值A[i], 将A[i]与A[j]交换。
(5)重复第(3),(4)步骤,直到i==j;
(6)分成的前后两组数据,分别再按(1)~(5)递归排序,直到全部数据有序排列。
初始队伍顺序:[5, 3, 9, 1, 7, 2, 8, 6]

请问如果第一趟快速排序后,分组结果是什么?( )

A.

前面[2, 3, 1], 后面[9, 7 , 8, 6]

B.

前面[1, 2, 3], 后面[7, 9, 8, 6]

C.

前面[2, 3, 1], 后面[7, 9, 8, 6]

D.

前面[2, 1, 3], 后面[9, 7, 8, 6]

12.

运行以下Python程序,表述中错误的选项是?( )

def de(a,b):
   c=a*2+b
   b=a
   return c
a=10
b=20
c=de(a,b)+b
A.

该函数名称为de

B.

执行该函数后,变量a的值为10

C.

执行该函数后,变量b的值为20

D.

执行该函数后,变量c的值为50

13.

在Python中显示第三方库的详细信息的pip指令是?( )

A.

pip install <第三方库名>

B.

pip list <第三方库名>

C.

pip show<第三方库名>

D.

pip download <第三方库名>

14.

某社团志愿者人数每天增长量为前一天的1.5倍,若第1天增长100人,用递归法计算第5天增长量,下面Python代码①处应该填入哪个选项?( )

def growth(n):  
   if n == 1:  
       return 100  
   return     ①
A.

growth(n-1) + 100

B.

1.5 ** (n-1) * 100

C.

growth(n-1) * 1.5

D.

growth(n-1) * n

15.

小陈每年存100元,年利率5%,要计算5年后总额(假设年利率没有变化),下面Python程序段采用的算法是哪种?( )

def total_money(n):
   money = 0
   for i in range(n):
       money = (money + 100) * 1.05
   return money
A.

递归

B.

二分法

C.

递推

D.

冒泡排序

16.

有如下Python程序段,执行该程序段后,输出的结果是?( )

def zdz(a):
   m = 0
   for i in range(1,len(a)):
       if a[i] > a[m]:
           m = i
   return m
a = [1,5,6,5,4,3,9,0,8,9]
print(zdz(a))
A.

7

B.

9

C.

6

D.

0

17.

老师想用 *args 统计学生成绩总和,以下正确的结果是?( )

def total_score(*scores):
   return sum(scores)
print(total_score(80, 90, 70))
A.

240

B.

(80, 90, 70)

C.

报错

D.

0

18.

生成1-10之间的随机整数,下列程序段不能实现该功能的是?( )

A.
import random
t = random.randint(1,10)
B.
import random as ran
t = ran.randint(1,10)
C.
from random import randint
t = randint(1,10)
D.
import random
t = randint(1,10)
19.

在Python编程语言中,下面程序的输出结果是?( )

def f(a, b, c=0):    return a + b + c
print(f(3, 9))
A.

12

B.

3

C.

9

D.

报错

20.

有如下Python程序段,执行该程序段后输出的结果是?( )

def fac(n):
   s = 1
   for i in range(1,n+1):
       s = s * i
   return s
print(fac(5))
A.

0

B.

6

C.

24

D.

120

21.

五一节庆到来,各大商场都推出折扣活动,小红打算写一个计算折扣的函数,但调用时报错,以下是小红编写的代码,错误的原因是?( 

def discount(price=100, rate):
   return price * rate
print(discount(80))
A.

默认参数 price 必须放在最后

B.

rate 未指定默认值

C.

语法正确,无错误

D.

缺少关键字参数

22.

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

A.

函数中必须return语句

B.

函数优点是模块化,但不能提高代码的利用率

C.

定义函数内容以冒号起始,可以不缩进

D.

函数是可重复使用的,用来实现单一或相关联功能的代码段

23.

小明每天跑步距离是前一天的两倍,下列哪个选项可表示第n天距离?( )

A.

dis[n] = dis[n-1] * 2

B.

dis[n] = dis[n-1] + 2

C.

dis[n] = 2^n

D.

dis[n] = n * 2

24.

小刚用lambda函数计算游戏技能冷却时间,以下代码的结果是?( )

cool_down = lambda t: t // 2 + 5
print(cool_down(10))
A.

计算10秒的冷却时间为15秒

B.

计算10秒的冷却时间为10//2+5=10秒

C.

计算10秒的冷却时间为5秒

D.

语法错误

25.

某物流公司需要每日处理数十万条配送路线数据,技术团队考虑使用分治算法或顺序查找算法进行路线规划,以优化货车路径并减少燃油消耗。已知城市大部分路线可分解为独立子问题。在以下哪种情况下,分治算法相比顺序查找更具优势?( )

A.

当子问题之间存在大量重叠,需要重复计算时

B.

当问题可以分解为相互独立的子问题,且合并结果简单时

C.

当需要全局最优解且所有子问题必须精确计算时

D.

当问题规模较小,递归调用不会导致栈溢出时

二、判断题

1.

在Python语言编程中,递归函数必须包含for循环。( )

A.正确 B.错误
2.

有如下Python程序,

def jf(a,b=0):
   return a+b

使用语句 jf(10) 调用函数,程序后输出10。( )

A.正确 B.错误
3.

函数内修改全局变量时,必须使用global声明,否则会创建同名局部变量。( )

A.正确 B.错误
4.

Python语言编程中,必须把每一个循环语句组封装起来,设计成函数。( )

A.正确 B.错误
5.

下面的Python程序的时间复杂度是否为O(n2)?( )

n = 1000
total = 0
for i in range(n):
   for j in range(i, n):
       total += 1
print(total)
A.正确 B.错误
6.

定义函数时含有位置参数和关键字参数时,关键字参数必须写在位置参数之后,否则会造成语法错误。( )

A.正确 B.错误
7.

递推算法必须有明确的递推公式才能实现。( )

A.正确 B.错误
8.

将代码封装成函数可以提高程序的执行速度。( )

A.正确 B.错误
9.

调用Python库时可以给其取一个别名,如执行语句import numpy as np后,在程序中可以用np代替numpy。( )

A.正确 B.错误
10.

在用"分治算法"计算8^4时,为了体现”分而治之“的算法思想,我们可以先把问题分解成8^2 * 8^2,而不是直接计算8*8*8*8。( )

(备注:8^4就是8的四次方)

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