试卷总分: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

E960 全国青少年信息素养大赛 -算法应用 丝路新程 Python 模拟题4-考试

选择题 共15道

01

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

goods = [180, 220, 150, 200, 170]
goods.sort()
print(goods[2])
5分
登录后查看选项
02 下列关于排序算法的说法,正确的是( ) 5分
登录后查看选项
03

驼队每日行程数据已排好序,用二分查找检索某日行程,运行以下程序,输出结果是( )

def search(x):
  miles = [35, 40, 45, 50, 55]
  left, right = 0, 4
  while left <= right:
    mid = (left + right) // 2
    if miles[mid] == x:
      return mid
    elif miles[mid] < x:
      left = mid + 1
    else:
      right = mid - 1
  return -1

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

丝绸织造中计算纹样排列方式数,运行递归函数,输出是( )

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

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

统计两批货物的总价值(每类货物数量×单件价值),运行以下双重循环,sum 的值是( )

sum = 0
for i in range(1, 4):     # 3类商品
  for j in range(1, i+1):  # 每类购进j批
    sum += i * j
print(sum)
5分
登录后查看选项
06 对丝路商品重量 [980, 860, 790, 720, 650] 进行升序冒泡排序,第一趟结束后列表变成( ) 5分
登录后查看选项
07 在丝路遗址数据库中,要使用二分查找快速定位某文物编号,前提是( ) 5分
登录后查看选项
08

以下程序存储了丝路城市的简介,运行后输出结果是( )

cities = [{"name":"敦煌", "relics":735}, {"name":"喀什", "relics":420}]
print(cities[0]["relics"] + cities[1]["relics"])
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

在丝路贸易数据中,用二分查找定位某个销量值,运行如下代码,输出结果是( )

sales = [100, 200, 300, 400, 500, 600]
left, right = 0, 5
while left < right:
  mid = (left + right + 1) // 2
  if sales[mid] <= 400:
    left = mid
  else:
    right = mid - 1
print(left)
5分
登录后查看选项
12 关于 Python 函数,下列说法错误的是( ) 5分
登录后查看选项
13

某丝路遗址的文物评分矩阵如下,程序输出对角线元素之和,结果是( )

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

运行嵌套函数,输出是( )

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

print(larger(larger(25, 18), 22))
5分
登录后查看选项
15

以下是丝路商品价格的冒泡排序程序,排序后输出 price[3],结果是( )

price = [88, 45, 67, 32, 56]
for i in range(len(price)-1):
  for j in range(len(price)-1-i):
    if price[j] > price[j+1]:
      price[j], price[j+1] = price[j+1], price[j]
print(price[3])
5分
登录后查看选项

判断题 共5道

16 冒泡排序和选择排序在平均情况下的时间复杂度都是 O(n²)。 5分
登录后查看选项
17 二分查找只能应用于已经排序的列表。 5分
登录后查看选项
18 Python 字典可以存储如 “商品名——数量” 这样的对应关系,适合管理丝路贸易数据。 5分
登录后查看选项
19 递归函数如果没有正确设置终止条件,可能导致 RecursionError 异常。 5分
登录后查看选项
20 双重循环中,内层循环的执行次数总是等于外层循环次数乘以内层循环次数。 5分
登录后查看选项