选择题 共15道

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


判断题 共10道

16 17 18 19 20 21 22 23 24 25


编程题 共2道

26 27

E1102 2026-09 CCF-GESP Python四级真题-练习

选择题 共15道
01

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

2分
登录后查看选项
02

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

2分
登录后查看选项
03

执行下面 Python 代码后,输出的结果是?

original = [{'key': 'value'}, [4, 5, 6]]
new = original.copy()
new[0]['key'] = 'new_value'
new[1].append(7)
print(original[0]['key'], original[1][-1])
2分
登录后查看选项
04

执行下面 Python 代码后,输出的结果是?

nested = [[1, 2], [3, 4], [5, 6]]
flat = [num for sublist in nested for num in sublist if num % 2 == 0]
print(flat)
2分
登录后查看选项
05

执行下面 Python 代码后,输出的结果是?

def func(d):
    d = {'new': 'value'}
    return d

data = {'old': 'data'}
func(data)
print(data)
2分
登录后查看选项
06

关于以下代码,说法正确的是?( )

def process(a: int, b: str = "default") -> str:
  return b * a
2分
登录后查看选项
07

执行下面 Python 代码后,输入`150 165 135 133`输出的结果是?

H1, H2, H3, H4 = map(int, input().split())
print(min([H2, H3, H4], key=lambda x: (abs(x - H1), x)))
2分
登录后查看选项
08

以下哪种文件打开模式允许同时读写文件,且文件指针从文件开头开始?

2分
登录后查看选项
09

以下代码的时间复杂度是?

n = int(input())
f = [0] * (n + 1)
f[0] = 0
f[1] = 1
for i in range(2, n + 1):
    f[i] = f[i - 1] + f[i - 2]
2分
登录后查看选项
10

关于 try‑except‑else‑finally 结构,以下说法正确的是?

2分
登录后查看选项
11

执行下面 Python 代码后,输出的结果是?

a = [1, 1]
for i in range(2, 10):
    a.append(a[i - 1] + a[i - 2])
print(a[8])
2分
登录后查看选项
12

执行下面 Python 代码后,输出的结果是?

students = [("Alice", "B", 25), ("Bob", "A", 23), ("Cathy", "A", 22)]
sorted_students = sorted(students, key=lambda x: (x[1], x[2]))
print([s[0] for s in sorted_students])
2分
登录后查看选项
13

以下代码实现了根据交通灯颜色返回动作 (停、等、行) 的功能,以下哪个选项是正确的?

def traffic_action(color):
    actions = {"红": "停", "黄": "等", "绿": "行"}
    if color in actions:
        return _____①_____
    else:
        return "无效颜色"

color = input("输入交通灯颜色: ")
action = traffic_action(color)
print(f"颜色 {color} 对应的动作是: {_____②_____}")
2分
登录后查看选项
14

文件 text.txt 的内容如下:

Python is a programming language. Python is easy to learn.
Many people use Python for data analysis and web development.
Python has a large community and many libraries.

以下代码实现了统计文件中单词 Python 出现的次数的功能,以下哪个选项是正确的?( )。

count = 0
with open("text.txt", "r") as f:
  content = f._____①_____
  words = content._____②_____
    for word in words:
      if word == "Python":
        count += 1
print(f"Python出现次数:{count}")
2分
登录后查看选项
15

以下代码实现了给定⼀个 的整数矩阵,能找出所有 ⼦矩阵中,元素最⼤平均值的功能,以下哪个选项是正确的?

n, m = map(int, input().split())
matrix = [list(map(int, input().split())) for _ in range(n)]

max_avg = float("-inf")
for i in range(_____①_____):
    for j in range(_____②_____):
        # 计算当前2×2子矩阵的和
        total = matrix[i][j] + matrix[i][j + 1] + matrix[i + 1][j] + matrix[i + 1][j + 1]
        avg = total / 4.0
        if avg > max_avg:
            max_avg = avg
print(f"{max_avg:.2f}")


2分
登录后查看选项
判断题 共10道
16

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

2分
登录后查看选项
17

执行下面 Python 代码后,输出结果为 [1, 2]。

a = [1, 2]
b = (a,)
a.append(3)
print(b[0])
2分
登录后查看选项
18

执行下面 Python 代码后,输出结果为 `[0,1,4] [0,1,4]`。

gen = (i ** 2 for i in range(3))
print(list(gen), list(gen))
2分
登录后查看选项
19

执行下面 Python 代码后,输出结果为 20。

num = 5
def test():
    num = 10
    global num
    num = 20
test()
print(num)
2分
登录后查看选项
20

在 Python 中,如果一个函数内部定义了一个嵌套函数,那么嵌套函数只能在外部函数内部被调用,不能在外部函数之外直接调用。但是嵌套函数若被作为返回值、赋给变量等,外部函数之外也可以通过该引用调用。

2分
登录后查看选项
21

执行下面 Python 代码后,oldest 的值为 `{'name': 'Alice', 'age': 30}`。

data = [{'name': 'Alice', 'age': 30}, {'name': 'Bob', 'age': 25}]
oldest = max(data, key=lambda d: d['age'])
2分
登录后查看选项
22

在 Python 中,f.readlines () 与 list (f) 的作用完全相同,都会将文件的所有行读入一个列表,并保留每行已有的换行符,即下列两段代码的输出结果相同。

with open("test.txt", "r") as f:
    print(f.readlines())

with open("test.txt", "r") as f:
    print(list(f))
2分
登录后查看选项
23

执行下面 Python 代码会抛出 KeyError 异常。

print({}.get('key'))
2分
登录后查看选项
24

对一组数据 `[5, 2, 6, 4, 8, 1, 7, 3]` 使用选择排序的方法按从小到大的顺序进行排序,则第 2 轮排序过后的结果是 `[1, 2, 6, 4, 8, 5, 7, 3]`。

2分
登录后查看选项
25

以下 Python 代码使用递推算法实现了计算正整数 n 的二进制表示中包含 1 个数的功能。

def popcount(n):
    cnt = [0] * (n + 1)
    for i in range(1, n + 1):
        cnt[i] = cnt[i >> 1] + (i & 1)
    return cnt[n]
2分
登录后查看选项
编程题 共2道
26

新汉诺塔

题目描述

汉诺塔问题是最经典的递推问题之一:

有三个可以放圆盘柱子,编号为A、B和C。开始时柱子A上套着 n 个圆盘,它们从上到下按照从小到大的顺序排列。我们的任务是要把这 n 个圆盘移到柱子C上,并保持它们的原有顺序不变。

在移动圆盘的过程中,需要遵守以下规则:

1.圆盘只能从一根柱子顶部拿出,从另一根柱子顶部放入。

2.每次只能移动一个圆盘。

3.小圆盘必须时刻位于大圆盘之上。

小杨在学习了汉诺塔问题后,决定添加一个新规则:

4.每一次移动,圆盘只能从A移动到B,从B移动到C,或者从C移动到A;其它移动是不允许的。

在新规则下,给定圆盘数量n,试问最少移动步数是多少?

输入

输入一个正整数 n,表示圆盘的数量。

输出

输出一个整数,表示在新规则下将 n 个圆盘从 A 移动到 C 所需的最少移动步数。

数据范围

n≤20

输入样例1

2

输出样例1

7

输入样例2

3

输出样例2

21

25分
登录后作答
27

有序网格

题目描述

小A有一个 n 行 m 列格子组成的二维网格,从上到下依次是第 1 行到第 n 行,从左到右依次是第 1 列到第 m 列。

每个格子里有一个数字,第 i 行第 j 列的格子里的数字是ai,j。

小A想让二维网格变得有序,因此他先对每一行从左到右按升序排序,再对每一列从上到下按升序排序。以下是一个先完成行排序再完成列排序的例子:

小 A 想知道二维网格经过以上排序后的结果。你能编写程序帮助他吗?

输入

第一行,两个正整数n,m,分别二维网格的行数与列数。

接下来n行,每行m个整数a_(i,1),...,a_(i,m),表示二维网格种的数字。

输出

输出n行,每行m个整数,表示二维网格先完成行排序再完成列排序后的结果。

数据范围

2≤n≤10,2≤m≤10,1≤a_(i,j)≤100

输入样例1

3 2

6 5

4 3

2 1

输出样例1

1 2

3 4

5 6

输入样例2

3 4

1 3 2 5

6 2 4 4

5 4 1 3

输出样例2

1 2 3 5

1 3 4 5

2 4 4 6

25分
登录后作答