2024年9月CCF—GESP(Python四级)编程能力等级认证试卷
四级
2024
2025-02-20 16:11:57
35次
一、单选题
执行下面Python代码后,输出的结果是?( )
tuples = [(1, 'apple'), (2, 'banana'), (0, 'cherry')] sorted_tuples = sorted(tuples, key=lambda x: x[1]) print(sorted_tuples)
| A. [(1, ‘apple’), (0, ‘cherry’), (2, ‘banana’)] |
B. [(2, ‘banana’), (1, ‘apple’), (0, ‘cherry’)] |
| C. [(0, ‘cherry’), (1, ‘apple’), (2, ‘banana’)] |
D. [(1, ‘apple’), (2, ‘banana’), (0, ‘cherry’)] |
【知识点】 CCF—GESP Python四级
文件numbers.txt的内容如下:
5 12 7 15 3 20 8
执行下面Python代码后,输出的结果是?( )
def func(file_path, threshold): lst = [] with open(file_path) as file: for line in file: number = int(line.strip()) if number > threshold: lst.append(number) return lst file_path = 'numbers.txt' threshold = 12 selected_numbers = func(file_path, threshold) print(selected_numbers)
| A. [15, 20] |
B. [12, 15, 20, 8] |
| C. [5, 12, 7, 15, 20, 8] |
D. [12, 15, 20] |
【知识点】 CCF—GESP Python四级
执行下面Python代码后,输出的结果是?( )
def tpADD(tpl): tpl = tpl +(5,6) return tpl tp = (1,2,3) tpADD(tp) print(tp,tpADD(tp))
| A. (1, 2, 3, 5, 6, 5, 6) (1, 2, 3, 5, 6, 5, 6) |
B. (1, 2, 3, 5, 6) (1, 2, 3, 5, 6) |
| C. (1, 2, 3) (1, 2, 3, 5, 6) |
D. (1, 2, 3) (1, 2, 3) |
【知识点】 CCF—GESP Python四级
假设你正在爬楼梯,每次可以爬1阶或2阶。给定楼梯的阶数 n ,计算有多少种不同的方法可以爬到楼顶。以下Python代码的横线处应该填写?( )
def climbStairs(n): if n == 1: return 1 if n == 2: return 2 # 初始化前两阶楼梯的数据 dp = [0] * (n + 1) dp[1] = 1 dp[2] = 2 # 从第3阶楼梯开始,计算每一阶楼梯的爬法数量 for i in range(3, n + 1): __________ return dp[n]
| A. dp[i] = 2 * dp[i - 1] + dp[i - 2] |
B. dp[i] = dp[i - 1] + dp[i - 2] |
| C. dp[i] = 2 * dp[i - 2] |
D. dp[i] = dp[i - 1] + 2 * dp[i - 2] |
【知识点】 CCF—GESP Python四级
执行下面Python代码后,输出的结果是?( )
def func(lst): lst.append(10) return lst lstA = [1,2,3] func(lstA) print(lstA,func(lstA))
| A. [1, 2, 3, 10, 10] [1, 2, 3, 10, 10] |
B. [1, 2, 3] [1, 2, 3, 10] |
| C. [1, 2, 3, 10] [1, 2, 3, 10] |
D. [1, 2, 3, 10] [1, 2, 3, 10, 10] |
【知识点】 CCF—GESP Python四级
二、判断题
三、编程题
黑白方块
时间限制:1.0 s
内存限制:512.0 MB
题面描述
小杨有一个n行m列的网格图,其中每个格子要么是白色,要么是黑色。
小杨想知道网格图中是否存在一个满足如下条件的子矩形:
子矩形由 4 行 4 列组成;
子矩形的第 1 行 和第 4 行只包含白色格子;
对于子矩形的第 2 行 和第 3 行,只有第 1 个和第 4 个格子是白色的,其余格子都是黑色的;
请你编写程序帮助小杨判断。
输入格式
第一行包含一个正整数t,代表测试用例组数。
接下来是t组测试用例。对于每组测试用例,一共n+1 行。
第一行包含两个正整数n,m,含义如题面所示。
之后n行,每行一个长度为m的01串,代表网格图第i行格子的颜色,如果为0,则对应格子为白色,否则为黑色。
输出格式
对于每组测试用例,如果存在,输出 Yes,否则输出 No。
输入样例
3 1 4 0110 5 5 00000 01100 01100 00001 01100 5 5 00000 01100 01110 00001 01100
输出样例
No Yes No
满足条件的子矩形形如:
0000 0110 0110 0000
对于全部数据,保证有1≤t≤10,1≤n,m≤100。
【知识点】 CCF—GESP Python四级
区间排序
时间限制:1.0 s
内存限制:512.0 MB
题面描述
小杨有一个包含n个正整数的序列a。
小杨计划对序列进行多次升序排序,每次升序排序小杨会选择一个区间[l,r](l≤r) 并对区间内所有数字,即al,al+1,...,ar进行升序排序。每次升序排序会在上一次升序排序的结果上进行。
小杨想请你计算出多次升序排序后的序列。
输入格式
第一行包含一个正整数n,含义如题面所示。
第二行包含n个正整数a1,a2,...,an,代表序列。
第三行包含一个正整数q,代表排序次数。
之后q行,每行包含两个正整数li,ri,代表将区间[li,ri] 内所有数字进行升序排序。
输出格式
输出一行包含n个正整数,代表多次升序排序后的序列。
输入样例
5 3 4 5 2 1 3 4 5 3 4 1 3
输出样例
1 3 4 5 2
第一次升序排序后,序列为[3,4,5,1,2];
第二次升序排序后,序列为[3,4,1,5,2];
第三次升序排序后,序列为[1,3,4,5,2];
对于全部数据,保证有1≤n≤100,1≤ai≤100,1≤q≤100,1≤li≤ri≤n。
【知识点】 CCF—GESP Python四级
