2025年6月电子学会青少年软件编程(Python四级)等级考试试卷
客观题
四级
2025
2025-07-15 17:13:51
63次
一、单选题
小明用“分治算法”编写了一个函数。他的任务是计算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) |
【知识点】 电子学会Python四级
小明每天做俯卧撑,第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) |
【知识点】 电子学会Python四级
小明的班级有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] |
【知识点】 电子学会Python四级
