试卷总分:100分


选择题 15题 75分

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15


判断题 5题 25分

16 17 18 19 20

E959 全国青少年信息素养大赛 -算法应用 星火征途 Python 模拟题4-考试

选择题 共15道

01

运行以下程序,输出结果是( )

mileages = [120, 90, 150, 80, 110]
mileages.sort()
print(mileages[2])
5分
登录后查看选项
02 下列关于排序算法的说法,正确的是( ) 5分
登录后查看选项
03

长征途中某段里程数据已排序,用二分查找定位某日行军里程,运行以下程序,输出结果为( )

def search(x):
  routes = [50, 55, 60, 65, 70]
  left, right = 0, 4
  while left <= right:
    mid = (left + right) // 2
    if routes[mid] == x:
      return mid
    elif routes[mid] < x:
      left = mid + 1
    else:
      right = mid - 1
  return -1

print(search(65))
5分
登录后查看选项
04

计算英雄完成任务的方案组合数,编写递归函数,运行后输出是( )

def mission(n):
  if n < 2:
    return 1
  return n * mission(n-1)

print(mission(6))
5分
登录后查看选项
05

统计不同兵种在两次战役中的歼敌总数,运行以下双重循环,变量 total 的值是( )

total = 0
for i in range(1, 4):     # 代表兵种编号 1~3
  for j in range(1, i+1):  # 该兵种参加 j 次战斗
    total += i * j
print(total)
5分
登录后查看选项
06 对根据地粮食储备记录 [980, 820, 750, 690, 600] 进行升序冒泡排序,第一趟结束后列表变成( ) 5分
登录后查看选项
07 在革命历史数据库中,要想使用二分查找快速定位某个数据,必须满足( ) 5分
登录后查看选项
08

以下程序存储了英雄人物的信息,运行后输出结果是( )

heroes = [{"name":"董存瑞", "year":19}, {"name":"黄继光", "year":21}]
print(heroes[0]["year"] + heroes[1]["year"])
5分
登录后查看选项
09

统计某段时期不同兵种出击次数,运行下面代码,cnt 的值是( )

cnt = 0
for i in range(2, 5):
  for j in range(1, 4):
    if i * j > 5:
      cnt += 1
print(cnt)
5分
登录后查看选项
10 在选择排序中,每一轮通常做什么操作? 5分
登录后查看选项
11

在战役胜负分析中,用二分查找定位关键指标,运行如下代码,输出结果是( )

data = [20, 40, 60, 80, 100, 120]
left, right = 0, 5
while left < right:
  mid = (left + right + 1) // 2
  if data[mid] <= 80:
    left = mid
  else:
    right = mid - 1
print(left)
5分
登录后查看选项
12 关于 Python 函数的说法,错误的是( ) 5分
登录后查看选项
13

某战役的兵力部署矩阵如下,程序输出对角线元素之和,结果是( )

troops = [[5, 2, 1],
     [3, 8, 4],
     [6, 1, 9]]
total = 0
for i in range(3):
  for j in range(3):
    if i == j:
      total += troops[i][j]
print(total)
5分
登录后查看选项
14

运行以下嵌套函数调用,输出是( )

def bigger(a, b):
  return a if a > b else b

print(bigger(bigger(12, 8), 10))
5分
登录后查看选项
15

以下是某次战役缴获弹药数量的冒泡排序程序,排序后输出 ammo[3],结果是( )

ammo = [520, 310, 470, 290, 150]
for i in range(len(ammo)-1):
  for j in range(len(ammo)-1-i):
    if ammo[j] > ammo[j+1]:
      ammo[j], ammo[j+1] = ammo[j+1], ammo[j]
print(ammo[3])
5分
登录后查看选项

判断题 共5道

16 冒泡排序和选择排序在平均情况下的时间复杂度都是 O(n²)。 5分
登录后查看选项
17 二分查找只能应用于已排序的列表。 5分
登录后查看选项
18 Python 字典可以存储像 “英雄姓名——牺牲年龄” 这样的键值对信息,用以管理红色文化数据。 5分
登录后查看选项
19 递归函数如果没有正确的终止条件,可能引起无限递归,最终导致 RecursionError。 5分
登录后查看选项
20 双重循环中,内层循环的执行次数总等于外层循环次数乘以内层循环次数。 5分
登录后查看选项