#YY02. 全国信息素养大赛初中组Python算法应用主题赛初赛模拟试卷01

全国信息素养大赛初中组Python算法应用主题赛初赛模拟试卷01

算法应用主题赛(初赛)模拟卷 · 初中组(Python)

▎ 共20题,满分100分 | 选择题15道(每题5分,共75分)+ 判断题5道(每题5分,共25分)


一、选择题(每题5分,共75分。每题有且仅有一个正确选项)

  1. 【考点:IPO 模块】 Python 程序中,用于从键盘获取用户输入的标准函数是( )。 {{ select(1) }}
  • cin
  • scanf()
  • input()
  • read()

  1. 【考点:运算模块】 Python 中,表达式 17 // 5 的值是( )。

{{ select(2) }}

  • 3.4
  • 3
  • 2
  • 4

  1. 【考点:分支结构】 阅读以下代码,输出结果是( )。


  score = 82
  if score >= 90:
      print("优秀")
  elif score >= 75:
      print("良好")
  elif score >= 60:
      print("及格")
  else:
      print("待提升")

{{ select(3) }}

  • 优秀
  • 良好
  • 及格
  • 待提升

  1. 【考点:for 循环】 执行以下代码后,变量 s 的值为( )。
s = 0
for i in range(2, 11, 2):
    s += i
print(s)

{{ select(4) }}

  • 20
  • 30
  • 25
  • 42

  1. 【考点:while 循环】 阅读以下代码,输出结果是( )。
n = 528
s = 0
while n > 0:
    s += n % 10
    n //= 10
print(s)

{{ select(5) }}

  • 528
  • 5
  • 15
  • 10

  1. 【考点:循环嵌套】 执行以下代码,变量 cnt 的最终值是( )。
cnt = 0
for i in range(1, 5):
    for j in range(1, i + 1):
        cnt += 1
print(cnt)

{{ select(6) }}

  • 4
  • 8
  • 10
  • 16

  1. 【考点:数学问题】 判断一个大于 1 的整数 n 是否为质数,为减少不必要的循环次数,通常只需检查 n 能否被 2 到( )之间的整数整除即可。

{{ select(7) }}

  • n
  • n - 1
  • sqrt(n)
  • n // 2

  1. 【考点:列表】 Python 中,列表 lst = [10, 20, 30, 40, 50],要访问值为 30 的元素,正确的索引写法是( )。

{{ select(8) }}

  • lst[2]
  • lst[3]
  • lst[1]
  • lst{2}

  1. 【考点:字符串】 阅读以下代码,输出结果是( )。
word = "heritage"
print(len(word))

{{ select(9) }}

  • 7
  • 8
  • 9
  • 程序报错

  1. 【考点:函数】 以下 Python 函数定义中,语法完全正确的是( )。

{{ select(10) }}

  • def add(a, b):
    return a + b
    
  • def add(a, b):
      return a + b
    
  • function add(a, b):
      return a + b
    
  • def add(a, b)
      return a + b
    

  1. 【考点:算法—枚举】 "百钱买百鸡"问题:公鸡 5 文一只,母鸡 3 文一只,小鸡 1 文三只,用 100 文恰好买 100 只鸡。若用枚举法求解,公鸡数量 i 的合理枚举范围是( )。

{{ select(11) }}

  • range(0, 101)
  • range(0, 21)
  • range(0, 34)
  • range(0, 51)

  1. 【考点:for 循环 + 分支结构】 阅读以下代码,输出结果是( )。
total = 0
for i in range(1, 21):
    if i % 3 == 0 or i % 5 == 0:
        total += i
print(total)

{{ select(12) }}

  • 78
  • 88
  • 98
  • 108

  1. 【考点:列表 + 循环 + 分支 — 丝路主题】 丝绸之路沿线某驿站记录了连续 7 天通过的商队数量(单位:支),现需统计通行量超过平均值的天数。
caravans = [14, 22, 10, 28, 16, 35, 8]
total = 0
count = 0
for i in range(len(caravans)):
    total += caravans[i]
avg = total // len(caravans)
for i in range(len(caravans)):
    if caravans[i] > avg:
        count += 1
print(count)

输出结果是( )。

{{ select(13) }}

  • 2
  • 3
  • 4
  • 5

  1. 【考点:循环嵌套 + 数学问题 — 非遗主题】 "中国剪纸"艺术中常出现三角形排列的纹样。若要输出如下 n = 4 的图案:
  *
  **
  ***
  ****

应选用以下哪段代码?( )

{{ select(14) }}

  • for i in range(1, n + 1):
      for j in range(1, n + 1):
          print("*", end="")
      print()
    
  • for i in range(1, n + 1):
       for j in range(1, i + 1):
          print("*", end="")
      print()
    
  • for i in range(n, 0, -1):
      for j in range(1, i + 1):
          print("*", end="")
      print()
    
  • for i in range(1, n + 1):
      for j in range(n, 0, -1):
          print("*", end="")
      print()
    

  1. 【考点:函数 + 字符串 + 模拟 — 红色文化主题】 某红色教育基地的来访登记系统需统计参观者姓名列表中某一姓氏的出现次数。已定义如下函数:
def count_char(s, ch):
    cnt = 0
    for i in range(len(s)):
        if s[i] == ch:
            cnt += 1
    return cnt

若执行 count_char("刘洋 张伟 刘芳 王明 刘磊", "刘"),返回值是( )。

{{ select(15) }}

  • 1
  • 2
  • 3
  • 5

二、判断题(每题5分,共25分)

  1. 【考点:运算模块】 在 Python 3 中,表达式 7 / 2 的值为 3。( )

{{ select(16) }}

  • 正确
  • 错误

  1. 【考点:分支结构】 Python 语言中,多分支结构的"否则如果"关键字写作 elif,写成 elseif 或 else if(同一行内有空格)都会导致语法错误。( )

{{ select(17) }}

  • 正确
  • 错误

  1. 【考点:while 循环】 阅读以下代码:
i = 1
while i <= 5:
    print(i, end=" ")
    i += 1

程序输出 "1 2 3 4 5 ",且循环结束后变量 i 的值为 6。( )

{{ select(18) }}

  • 正确
  • 错误

  1. 【考点:列表】 Python 中,列表的索引从 1 开始编号,因此声明 lst = [10, 20, 30] 后,lst[1] 的值为 10。( )

{{ select(19) }}

  • 正确
  • 错误

  1. 【考点:算法—枚举 + 循环嵌套 — 非遗主题】 "活字印刷"排版问题中,需要统计满足 a + b + c = 20(a、b、c 均为正整数)的解的个数。以下代码的输出结果为 190。
cnt = 0
for a in range(1, 21):
    for b in range(1, 21):
        for c in range(1, 21):
            if a + b + c == 20:
                cnt += 1
print(cnt)

{{ select(20) }}

  • 正确
  • 错误