返回试卷目录

需要电子版时点「打印 / 保存为 PDF」,在打印对话框的「目标打印机」里选择「另存为 PDF」即可下载。登录后可下载,每天 10 次

GESP Python 编程三级 · 2026 年 9 月卷

GESP · Python · 共 27 题 · 满分 100 分

姓名:____________日期:____________得分:____________

  1. 1.单选题2 分

    第二届世界人形机器人运动会开幕式上,机器人方阵通过控制程序来完成整场表演。表演前,工程师们使用集成开发环境(IDE)编写并调试方阵的控制程序。下列关于 IDE 功能的描述,错误的是( )。

    • A.可以提供代码自动补全,提高编程效率
    • B.可以提供辅助信息,帮助排查程序逻辑错误
    • C.可以直接控制机器人电机转动
    • D.支持语法高亮,使代码更易阅读
  2. 2.单选题2 分

    计算机 CPU 中的高速缓冲存储器(Cache)主要为提升系统性能而设计。下列关于 Cache 的说法中正确的是( )。

    • A.Cache 的容量比主存大,速度比主存快
    • B.Cache 通常用于暂存 CPU 频繁访问的数据
    • C.Cache 中的数据断电后不会丢失,属于非易失性存储器
    • D.Cache 的访问速度比 CPU 寄存器还要快
  3. 3.单选题2 分

    8 位二进制原码能表示的最小和最大整数分别是?( )

    • A.-128 128
    • B.-128 127
    • C.-127 128
    • D.-127 127
  4. 4.单选题2 分

    在 Python 中,表达式-0b1111的十进制值是?( )

    • A.15
    • B.-15
    • C.-1
    • D.-7
  5. 5.单选题2 分

    在 Python 中,表达式~5+1的结果是?( )

    • A.-5
    • B.6
    • C.-6
    • D.4
  6. 6.单选题2 分

    执行下面 Python 代码后,输出的结果是?( ) 1 my_list = ['a', 'b', 'c', 'd', 'e', 'f'] 2 result = my_list[::2] + my_list[1::2] 3 print(result)

    • A.['a', 'c', 'e']
    • B.['b', 'd', 'f']
    • C.['a', 'c', 'e', 'b', 'd', 'f']
    • D.['a', 'b', 'c', 'd', 'e', 'f']
  7. 7.单选题2 分

    执行下面 Python 代码后,输出的结果是?( ) 1 numbers = [5, 2, 8, 1, 9] 2 i = 0 3 while i < len(numbers): 4 if numbers[i] < 5: 5 numbers.pop(i) 6 else: 7 i += 1 8 print(len(numbers))

    • A.1
    • B.2
    • C.3
    • D.5
  8. 8.单选题2 分

    执行下面 Python 代码后,输出的结果是?( ) 1 my_tuple = (10, 20, 30, 40, 50) 2 a, *b, c = my_tuple 3 print(b)

    • A.20
    • B.[20, 30, 40]
    • C.(20, 30, 40)
    • D.上述代码执行报错
  9. 9.单选题2 分

    执行下面 Python 代码后,输出的结果是?( ) 1 dict1 = {'a': 1, 'b': 2} 2 dict2 = dict1 3 dict2['c'] = 3 4 print(dict1 is dict2, dict1 == dict2)

    • A.True True
    • B.True False
    • C.False True
    • D.False False
  10. 10.单选题2 分

    执行下面 Python 代码,输入1a2b3c4,输出的结果是?( ) 1 s = input("请输入字符串:") 2 count = 0 3 for i in range(len(s) - 1): 4 if s[i].isdigit() and s[i + 1].isalpha(): 5 count += 1 6 print(count)

    • A.0
    • B.1
    • C.2
    • D.3
  11. 11.单选题2 分

    在 Python 中,表达式{x % 3 for x in range(6)}的结果是?( )

    • A.{0, 1, 2, 3}
    • B.{0, 1, 2}
    • C.{0, 1}
    • D.{3}
  12. 12.单选题2 分

    执行下面 Python 代码后,输出的结果是?( ) 1 my_tuple = (1, 2, 3) 2 my_list = list(my_tuple) 3 my_list.append(4) 4 new_tuple = tuple(my_list) 5 print(new_tuple)

    • A.(1, 2, 3)
    • B.(1, 2, 3, 4)
    • C.[1, 2, 3, 4]
    • D.代码会报错,因为元组不可修改
  13. 13.单选题2 分

    笔记本 5 元/本,笔 3 元/支,橡皮 1 元/个,用 100 元买 50 件文具。以下程序枚举所有购买方案,横线处应填写的代码是?( ) 1 for notebook in range(0, 21): 2 for pen in range(0, 34): 3 for eraser in range(0, 51): 4 if ________: 5 print(notebook, pen, eraser)

    • A.notebook + pen + eraser == 50 and notebook*5 + pen*3 + eraser*1 == 100
    • B.notebook + pen + eraser == 50
    • C.notebook*5 + pen*3 + eraser*1 == 100
    • D.notebook*5 + pen*3 + eraser*1 <= 100
  14. 14.单选题2 分

    以下 Python 代码的功能是?( ) 1 s = input("请输入字符串:") 2 words = s.split() 3 longest_word = "" 4 for word in words: 5 if len(word) > len(longest_word): 6 longest_word = word 7 print(longest_word)

    • A.找出字符串中出现次数最多的单词
    • B.找出字符串中长度最大的单词,若有多个则全部输出
    • C.找出字符串中最后一个出现的长度最大的单词
    • D.找出字符串中第一个出现的长度最大的单词
  15. 15.单选题2 分

    学校举行编程比赛,共有M个班级参加,总计N名学生提交了作品。每份作品有一个班级编号(1 到 M)和得分。现需要统计每个班级的最高得分,并计算所有班级最高得分的总和。分数为非负数。以下程序试图实现此功能,横线处应填写的代码是?( ) 1 M, N = map(int, input().split()) 2 max_score = [0] * (M + 1) 3 for _ in range(N): 4 cls, score = map(int, input().split()) 5 _____①_____ 6 max_score[cls] = score 7 _____②_____ 8 print(total)

    • A.① if score > max_score[cls]:,② total = sum(max_score[0:M])
    • B.① if score < max_score[cls]:,② total = sum(max_score[1:])
    • C.① if score > max_score[cls]:,② total = sum(max_score[1:])
    • D.① if score >= max_score[cls]:,② total = sum(scores)
  16. 16.判断题2 分

    Python 程序执行input()函数时通常是使用键盘等输入设备来输入某个变量的值。

  17. 17.判断题2 分

    执行下面 Python 代码后,输出的结果是C3。 1 s = "10110011" 2 num = int(s, 2) 3 hex_str = hex(num)[2:].upper() 4 print(hex_str)

  18. 18.判断题2 分

    对于任意整数x,x ^ (~x)的结果恒为-1。

  19. 19.判断题2 分

    下列程序用于输出 1 至 20 中,2 和 3 的共同倍数。 1 a = [i + 1 for i in range(20)] 2 for i in range(20): 3 if a[i] % 2 or a[i] % 3: 4 a[i] = 0 5 for i in range(20): 6 if a[i]: 7 print(a[i], end=" ")

  20. 20.判断题2 分

    执行下面两段 Python 代码后,输出结果是相同的。 1 b = [1, 2, 3] 2 c = b 3 b = b[::-1] 4 print(c) 5 b = [1, 2, 3] 6 c = b 7 b[:] = b[::-1] 8 print(c)

  21. 21.判断题2 分

    执行下面 Python 代码后,输出的结果是10。 1 a = len(x for x in range(10)) 2 print(a)

  22. 22.判断题2 分

    字典的键可以是列表,例如{[1,2]: 'a'}在 Python 中不会引发错误。

  23. 23.判断题2 分

    执行下面 Python 代码后,输出的结果是['a', 'b']。 1 s = "a..b".split('.') 2 print(s)

  24. 24.判断题2 分

    执行下面 Python 代码后,输出的结果是False。 1 s1 = set() 2 s2 = set("abc").clear() 3 print(s1 == s2)

  25. 25.判断题2 分

    执行下面 Python 代码后,输出的结果是{'x': 1, 'y': 2, 'z': None}。 1 z = zip(['x', 'y', 'z'], [1, 2]) 2 d = dict(z) 3 print(d)

  26. 26.编程题25 分

    试题名称:公共二进制位 时间限制:1.0 s 内存限制:512.0 MB 题目描述:小红有 n 个非负整数 a_1, a_2, …, a_n。她将每个整数转换为二进制后,想知道有多少个二进制位在所有整数中均为 1。 二进制位从右向左编号为 0, 1, 2, …。若某个整数的二进制表示中没有第 k 位,则认为它的第 k 位为 0。 请你求出满足条件的二进制位数量。 输入格式:第一行一个整数 n,表示整数的个数。 第二行 n 个非负整数 a_1, a_2, …, a_n。 输出格式:输出一个整数,表示所有整数的二进制表示中均为 1 的二进制位数量。 输入样例1:3 13 7 15 输出样例1:2 样例解释1:三个整数的二进制表示分别为 (1101)₂、(0111)₂ 和 (1111)₂。 其中第 0 位和第 2 位均为 1,因此答案为 2。 数据范围:2 ≤ n ≤ 20000,0 ≤ a_i ≤ 10^9。

    作答说明:按题目要求完成程序或作品;需要在线运行与自动判分时,可在站内选择「在线考试」。

  27. 27.编程题25 分

    试题名称:分割字符串 时间限制:1.0 s 内存限制:512.0 MB 题目描述:小明拿到了一段字符串文本,小明希望用下面的规则分割这个字符串: 1. 小明从左到右扫描字符串,遇到第一个空格后停止,并将字符串分割为左右两个部分(舍弃用于分割的这个空格); 2. 对于上次分割后右侧的字符串,小明继续扫描,第一次遇到连续两个空格后停止,并将字符串分割为左右两个部分(舍弃用于分割的这两个空格); 3. 对于上次分割后右侧的字符串,小明继续扫描,第一次遇到连续三个空格后停止,并将字符串分割为左右两个部分(舍弃用于分割的这三个空格); 4. 以此类推,小明每分割一次,下一次分割就需要更长的连续空格;直到字符串无法再次分割。 最后输出每次分割的左侧的字符串,以及最后一次分割的右侧字符串。 如果字符串完全无法进行任何一次分割,直接输出其本身。 输入格式:输入一行,一个字符串。 输出格式:输出若干行。每行为分割后的一个字符串,注意依次输出: 第一次分割左侧的字符串,第二次分割左侧的字符串,…,最后一次分割左侧的字符串,最后一次分割右侧的字符串。 输入样例1:sdfd 55 55 99312 输出样例1:sdfd 55 55 99312 样例解释1:1. 第一次分割将字符串分割为 sdfd 和 55 55 99312; 2. 第二次分割将字符串分割为 55 55 和 99312。 对于第二次分割,注意 55 和 55 之间虽然有空格,但是第二次分割需要连续两个空格才行; 另外,55 55 和 99312 之间有三个空格,第二次分割只需要两个,所以会分割为 55 55 和 99312,也就是右侧会留下一个空格;因为只留下了一个空格,所以不再满足第三次分割要求。 输入样例2:AbCd 999 输出样例2:AbCd 999 样例解释2:1. 第一次分割将字符串分割为 AbCd 和 999; 2. 第二次分割将字符串分割为空字符串和 999。 由于 AbCd 和 999 之间有三个空格,第一次分割消耗掉一个,因此还能进行第二次分割,这个时候会分割出空字符串,因此输出中会输出一个空行(不能省略)。 数据范围:字符串长度不超过 1000,字符串中只包含大写字母、小写字母,数字,或空格,且输入字符串不会以空格结尾。 特别强调:输入仅一行,但可能包含若干空格

    作答说明:按题目要求完成程序或作品;需要在线运行与自动判分时,可在站内选择「在线考试」。