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

2026年6月电子学会青少年软件编程(Python四级)等级考试试卷
操作/编程 四级 2026 2026-07-09 19:40:32 86

一、编程题

1.

二分查找

小明在学习二分查找后,编写程序实现查找key所遍历的过程。如有原始数据是 12, 18, 27, 31, 46, 68, 75, 80, 90, 92,待查找的数据是90,打印输出key所遍历数分别是:

46,80,90。他编写的程序如下,完善划线处的代码。

def dfsearch(data,key): #二分法在data中查找key

p = [] #存放key所遍历数

flag = False

i,j = 0,len(data) - 1

while i <= j:

m = (i+j)//2

p.append(data[m])

if         ①        :

flag = True

return p,flag

elif data[m] > key:

j =         ②

else:

i =         ③

return p,flag

data = [12,18,27,31,46,68,75,80,90,92]

key = int(input())

rst,flag =         ④

if flag:

print('原始数据是',data,'待查找的数据是',key,'\n找到,查找的数分别是:')

for i in rst:

print(i,end = ',')

else:

print('原始数据是',data,'待查找的数据是',key,'\n没有找到,查找的数分别是:')

for i in rst:

print(i,end = ',')

2.

打印图案

打印图案,由“*”和“-”按规律构成。当行数等于4时,图案如下。用自定义函数实现图案输出,请在序号处填写正确的代码,实现效果。

----*

---

--*

-

def  tuxing(n):

for i in range(1,        ①        ):

print("-" *        ②        + "*"*        ③        )

m=int(input('请输入行数:'))

3.

求最小值

利用分治算法,求一个非空整数列表中的最小值。补全以下代码。

算法说明:将列表不断二分,直到子列表长度小于等于2,直接比较得出最小值,然后合并结果(返回两个子列表最小值中的较小者)。

def find_min(nums):

n = len(nums)

# 基线条件:问题规模足够小,直接求解

if n == 1:

return         ①

elif n == 2:

return         ②

# 分解:将大问题分成两个子问题

mid = n // 2

left_part = nums[:mid]

right_part = nums[mid:]

# 解决:递归求解子问题

left_min = find_min(left_part)

right_min = find_min(right_part)

# 合并:合并子问题的解

return         ③

# 测试

test_list = [34, 12, 5, 78, 3, 56, 91, 23]

print('列表中的最小值是:', find_min(test_list))

公众号
客服 反馈
顶部