返回试卷目录

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

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

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

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

  1. 1.单选题2 分
    2026年春节联欢晚会上一个武术表演节目《武 BOT》。节目中多个人形机器人会表演空翻,它们落地可能会有微微踉跄,但都会迅速调整姿态站稳,并适当移动来和前后左右的其他机器人保持原来队列。如果将机器人视作一个计算机系统,那么在该计算机系统中下面哪一项不能作为输入设备( )。
    • A.用于检测重心的重力传感器
    • B.预装的AI算法程序
    • C.接收动作指令的遥控器
    • D.拍摄其他机器人的摄像头
  2. 2.单选题2 分
    下面代码用来找出输入的N个正整数中最大的一个。如果将代码段用流程图来表示,则L1标记的代码行应该使用的图形是()。
    Max = 0N = int(input())while(N):    val = int(input())    if val > Max: #L1        Max = val    N -= 1print(Max)
    • A.圆形框
    • B.椭圆形框
    • C.平行四边形框
    • D.菱形框
  3. 3.单选题2 分
    下列哪个表达式不能正确转换为十进制整数10?()
    • A.int('10')
    • B.int('12', 8)
    • C.int('0b1010', 2)
    • D.int('10', 2)
  4. 4.单选题2 分
    要获取32位整数0x48B2D6F1的最低字节(比特位0-7),正确的表达式是?( )
    • A.0x48B2D6F1 & 0xFF
    • B.0x48B2D6F1 | 0xFF
    • C.(0x48B2D6F1 >> 8) & 0xFF
    • D.0x48B2D6F1 ^ 0xFF
  5. 5.单选题2 分
    执行以下代码后,输出结果是?()
    lst = [10, 20, 30, 20]lst.remove(20)print(lst)
    • A.[10, 30, 20]
    • B.[10, 30]
    • C.[10, 20, 30]
    • D.上述代码执行后报错
  6. 6.单选题2 分
    对于列表data = [1, 2, 3, 4, 5],执行data[1:4] = [10, 20]后,data的值是?()
    • A.[1, 10, 20, 4, 5]
    • B.[10, 20, 5]
    • C.[1, 10, 20]
    • D.[1, 10, 20, 5]
  7. 7.单选题2 分
    执行以下代码后,输出结果是?()
    result = [x if x > 2 else 0 for x in range(1, 5)]print(result)
    • A.[1, 2, 3, 4]
    • B.[0, 0, 3, 4]
    • C.[0, 2, 3, 4]
    • D.[1, 0, 3, 4]
  8. 8.单选题2 分
    执行以下代码后,输出结果是?( )
    my_zip = zip((1, 2), ('a', 'b'))print(tuple(my_zip))print(list(my_zip))
    • A.第 8 题选项 A
    • B.第 8 题选项 B
    • C.第 8 题选项 C
    • D.第 8 题选项 D
  9. 9.单选题2 分
    下列关于元组解包的说法,哪一项是正确的?()
    • A.元组解包时,左侧变量个数必须与元组元素个数严格相等,否则会报错。
    • B.可以使用星号(*)操作符来捕获元组解包时多余的元素,并将其放入一个列表中。
    • C.解包只能用于等号右侧是元组的情况,不能用于其他可迭代对象。
    • D.元组解包操作会修改原始元组的内容。
  10. 10.单选题2 分
    执行以下代码后,输出结果是?()
    data = {'Math': 90, 'Science': 85, 'English': 92}subject = 'Science'if subject in data:    grade = data.get(subject, 0)    if grade >= 90:        level = 'A'    elif grade >= 80:        level = 'B'    else:        level = 'C'print(level)
    • A.A
    • B.B
    • C.C
    • D.上述代码执行后报错
  11. 11.单选题2 分
    在Python中,已知d = {'a': 1, 'b': 2} , 则d.keys()的数据类型是?()
    • A.list
    • B.dict_keys
    • C.set
    • D.tuple
  12. 12.单选题2 分
    执行以下代码后,输出结果是?()
    s = "programming"vowels = "aeiou"count = 0for char in s:    if char not in vowels:        count += 1print(count)
    • A.4
    • B.7
    • C.8
    • D.11
  13. 13.单选题2 分
    以下哪个操作可以返回两个集合中独有的元素(对称差集)?()
    • A.s1 - s2
    • B.s1 & s2
    • C.s1 ^ s2
    • D.s1 | s2
  14. 14.单选题2 分
    执行以下代码后,输出结果是?()
    set1 = {1, 2, 3}set2 = set1set2.add(4)print(set1)
    • A.{1, 2, 3, 4}
    • B.{1, 2, 3}
    • C.None
    • D.上述代码执行后报错
  15. 15.单选题2 分
    有10根长度分别为 1,2,3,…,10的木棒,现需要从中选出 3 根木棒组成一个三角形。三角形的成立条件是任意两边之和大于第三边。以下程序通过枚举顺序递增的三边长度组合来统计有效三角形的数量,请补全代码中缺失的条件判断部分。()
    count = 0for a in range(1, 11):    for b in range(a, 11):        for c in range(b, 11):            if ________: # 填空处                count += 1
    • A.a + b > c
    • B.a + b + c < 30
    • C.a*a + b*b == c*c
    • D.所有选项都错误
  16. 16.判断题2 分
    小明的妈妈最近刚刚给他买了一块电话手表,除了可以看时间,小明也可以用它和妈妈打电话、收发信息,那么可以推测这块手表中装有一款特定操作系统。()
  17. 17.判断题2 分
    对于 8 位有符号整数(补码表示),1000 0000 表示的是 -128。
  18. 18.判断题2 分
    在 Python 中,任何一个十进制整数都可以精确地转换为一个二进制整数,但并非所有十进制小数都能精确地转换为二进制小数。
  19. 19.判断题2 分
    表达式 (x << 3) - (x << 1) 的计算结果与 x * 10 等价。
  20. 20.判断题2 分
    使用 = 运算符将一个列表赋值给另一个变量时,会创建一个内容相同但独立的新列表。
  21. 21.判断题2 分
    执行以下代码后,输出结果是True。
    tuple1 = (1, 2)tuple2 = (3, 4)result = tuple1 + tuple2print(result is (1, 2, 3, 4))
  22. 22.判断题2 分
    执行以下代码后,输出结果是1。
    text = "i love china"char_count = {}for char in text:    if char != ' ':        char_count[char] = char_count.get(char, 0) + 1print(char_count.get('i', 0))
  23. 23.判断题2 分
    str.join()方法可以高效地连接一个列表中的多个元素,但要求该列表内的所有元素必须是字符串类型,否则会引发错误。
  24. 24.判断题2 分
    在 Python 中,集合的元素可以是列表或字典。
  25. 25.判断题2 分
    str()函数可以将任何列表转换为一个字符串,该字符串是只由列表中的所有元素直接拼接而成的字符串。
  26. 26.编程题25 分
    试题名称:二进制回文串 时间限制:1.0 s 内存限制:512.0 MB 题目描述:对于一个正整数 n,我们将其转换为不含前导零的二进制表示,如果这个二进制序列从左向右读与从右向左读完全相同,则称该数为二进制回文数。例如,9 的二进制表示为 (1001)₂,是二进制回文数;12 的二进制表示为 (1100)₂,不是二进制回文数。 你的任务是:给定一个正整数 n,计算在 1 到 n 的范围内二进制回文数的数量。 输入格式:输入一行,包含一个正整数 n。 输出格式:输出一行,包含一个数,表示在 1 到 n 的范围内二进制回文数的数量。 输入样例1:15 输出样例1:6 样例解释1:样例 1 中,1 到 15 范围内 1、3、5、7、9、15 是二进制回文数。 数据范围:1 ≤ n ≤ 10^5。

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

  27. 27.编程题25 分
    试题名称:凯撒密码 时间限制:1.0 s 内存限制:512.0 MB 题目描述:凯撒密码是一种替换加密技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是 3 的时候,所有的字母 A 将被替换成 D,B 将被替换成 E,C 将被替换成 F,以此类推,W 被替换成 Z,X 被替换成 A,Y 被替换成 B,Z 被替换成 C。这个加密方法是以罗马共和时期凯撒的名字命名的,据称当年凯撒曾用此方法与其将军们进行联系。 但是和所有的利用字母表进行替换的加密技术一样,凯撒密码非常容易被破解,而且在实际应用中也无法保证通信安全。 现在给你一个已破解的凯撒密码明文与密文,与一个有相同偏移量的未破解凯撒密码密文,请你帮忙破解它。 输入格式:输入共三行: 第一行包含一个字符串,表示已破解的凯撒密码明文; 第二行包含一个字符串,表示已破解的凯撒密码密文; 第三行包含一个字符串,表示待破解的凯撒密码密文。 输出格式:输出一行,包含一个字符串,表示待破解的凯撒密码对应的明文。 输入样例1:ABCDEFGVWXYZ DEFGHIJYZABC WKHTXLFNEURZQIRAMXPSVRYHUWKHODCBGRJ 输出样例1:THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG 样例解释1:样例 1 中,通过已破解的密码得出偏移量为 'D' - 'A' = 3,因此,对未破解部分进行逆向偏移:密文中的 W 对应明文中的 T('W' - 3 = 'T'),密文中的 K 对应明文中的 H('K' - 3 = 'H'),以此类推。 数据范围:保证密码长度均不超过 1000,所有字符串由大写字母组成。

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