image

编辑人: 青衫烟雨

calendar2025-06-15

message3

visits500

2023年12月CCF-GESP编程能力等级认证Python编程三级真题参考答案

一、单选题

1、某公司新出了一款无人驾驶的小汽车,通过声控智能驾驶系统,乘客只要告诉汽车目的地,车子就能自动选择一条优化路线,告诉乘客后驶达那里。请问下面哪项不是驾驶系统完成选路所必须的。(   )(2023年12月py三级)

A、

麦克风

B、

扬声器

C、

油量表

D、

传感器


2、现代计算机是指电子计算机,它所基于的是( B )体系结构。(2023年12月py三级)

A、

艾伦·图灵

B、

冯·诺依曼

C、

阿塔纳索夫

D、

埃克特-莫克利


3、下面Python代码执行后 a 的类型不为 dict 的是(   )。

A、

a = {}

B、

a = dict()

C、

a = {i: i ** 2 for i in range(10)}

D、

a = {1}


4、在Python代码中,已执行 lst=list(range(100)) ,下面能反序输出偶数,形如: [98,96,...,0] 的是(   )。

A、

print(lst[-2::-2])

B、

print(lst[-1::-2])

C、

print(lst[-2:-1:-2])

D、

print(lst[-2:0:-2])


5、下面Python代码执行后不能输出 GESP 的是(   )。

A、

print("CCF GESP"[-4:])

B、

print("CCF GESP"[4:])

C、

print("CCF GESP"[-4::])

D、

print("CCF GESP"[4:-1])


6、执行Python代码 print(len([f"{i}*{j}" for i in range(10) for j in range(1,10,2) if i*j %2])) 输出是(   )。

A、

100

B、

50

C、

25

D、

0


7、执行Python代码 print(list('Ax1').sort()) 后,输出是(   )。

A、

['1', 'A', 'x']

B、

['1', 'x', 'A']

C、

None

D、

触发异常,无输出


8、执行Python代码 print(reversed('Ax1')) 后输出的是(   )。

A、

['1', 'x', 'A']

B、

1Ax

C、

['1', 'A', 'x']

D、

以上输出均错误


9、执行Python代码 print(sorted('Ax1')) 后输出的是(   )。

A、

['1', 'A', 'x']

B、

['1', 'x', 'A']

C、

"1Ax"

D、

以上输出均错误


10、下面Python代码执行后的输出是(   )。

A、

[2.2, 1.1, 1.3, -1.1, -2.2]

B、

[2.2, 1.3, 1.1, -1.1, -2.2]

C、

[-2.2, -1.1, 1.1, 1.3, 2.2]

D、

[1.1, 1.1, 1.3, 2.2, 2.2]


11、下面Python代码用于统计每种字符出现的次数,横线上应填入代码是(   )。

A、

dictCount[c] + 1

B、

dictCount.get(c) + 1

C、

dictCount.get(c, 1)

D、

dictCount.get(c, 0) + 1


12、Python变量 strNovel 中存储有某小说的全部文本内容,如果要获得该小说用了多少个不同的字符,应该使用的表达式是(   )。

A、

len(strNovel)

B、

strNovel.count()

C、

len(set(strNovel))

D、

strNovel.index()


13、Python表达式 [x for x in range(20) if x % 3 if x % 5] 的值是(   )。

A、

[15]

B、

[0, 15]

C、

[3, 6, 9, 12, 18]

D、

[1, 2, 4, 7, 8, 11, 13, 14, 16, 17, 19]


14、Python的 int() 函数可以将全部是数字组成的字符串转换为整数,假设不包含正负符号和小数点如12.5 、 -12 等。下面代码模拟该函数的功能,横线处应填入代码是(   )。

A、

rst * 10 + ord(i)-ord('0')

B、

rst * 10 + chr(i)-chr('0')

C、

rst * 10 + ord(i)

D、

rst + ord(i)-ord('0')


15、Python代码用于抽取字符串中的电话号码。约定:电话号码全部是数字,数字之间没有其他符号如连字符或空格等。代码中变量strSrc仅仅是示例,可以包含更多字符。下面有关第10、11、12行代码说法,正确的说法是(   )。

A、

第10到12行代码有语法错误,应与第7行的 if 对齐

B、

第10到12行代码的功能与第7到9行代码功能相同,可以删除

C、

第10到12行代码与 for 对齐,所以有语法错误,应删除

D、

第10到12行代码不能删除且没有语法错误,当电话号码出现在字符串结束时,否则将不能输出该号码


二、判断题

16、小杨最近在准备考GESP,他用的Python IDLE来练习和运行程序,所以Python IDLE也是一个小型操作系统。(   )(2023年12月三级)

A 正确

B 错误


17、任何一个 while 循环都可以转化为等价的 for 循环(   )。(2023年12月三级)

A 正确

B 错误


18、执行Python代码 print(5&2) 后将输出0。(   )

A 正确

B 错误


19、Python表达式 len("12,34,56".split(",")) 的值为3。 (   )

A 正确

B 错误


20、执行Python代码 print(5 or 2) 后将输出 True 。(   )

A 正确

B 错误


21、已执行Python代码 a="china" 和 a.replace('c','C') 之后 print(a) 后将输出 China 。(   )

A 正确

B 错误


22、执行Python代码 print(list(filter(lambda n:n % 5 == 0,range(10)))) 后将输出 [0, 5] 。(   )

A 正确

B 错误


23、下面Python码执行后将输出 [0, 5] 。(   )

A 正确

B 错误


24、Python表达式 [1]*10 将形成一个有10个成员的 list ,每个成员的值为1。(   )

A 正确

B 错误


25、执行Python代码 print(list(range(100)).sort(key=lambda x:x%2)) 将输出一个 list ,偶数为前半部分,奇数为后半部分。(   )

A 正确

B 错误


三、实操题

26、小猫分鱼

时间限制:1.0 s

内存限制:128.0 MB

问题描述

海滩上有一堆鱼,N只小猫来分。第一只小猫把这堆鱼平均分为N份,多了i<N个,这只小猫把多的i个扔入海中,拿走了一份。第二只小猫接着把剩下的鱼平均分成N份,又多了i个,小猫同样把多的i个扔入海中,拿走了一份。第三、第四、……,第N只小猫仍是最终剩下的鱼分成N份,扔掉多了的i个,并拿走一份。

编写程序,输入小猫的数量 以及每次扔到海里的鱼的数量i,输出海滩上最少的鱼数,使得每只小猫都可吃到鱼。

例如:两只小猫来分鱼N=2,每次扔掉鱼的数量为i=1,为了每只小猫都可吃到鱼,可令第二只小猫需要拿走1条鱼,则此时待分配的有3条鱼。第一只小猫待分配的鱼有3*2+1=7条。

输入描述

总共 2 行。第一行一个整数N,第二行一个整数i。

保证0<N<10;i<N 。

输出描述

一行一个整数,表示满足要求的海滩上最少的鱼数。

特别提醒

在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。


样例输入1

2
1

样例输出1

7

样例输入2

3
1

样例输出2

25

样例解释2

三只小猫来分鱼N=3,每次扔掉鱼的数量为i=1,为了每只小猫都可吃到鱼,可令第三只小猫需要拿走3条鱼(拿走1条和2条不满足要求),则此时待分配的有10条鱼。第二只小猫待分配的鱼有10×3/2+1=16条。第一只小猫待分配的鱼有16×3/2+1=25条。

参考答案:```#include using namespace std;int main() int N, i;cin >> N >> i;int fish = i;for (int j = 2; j <= N; j++) {fish = (fish + i) * j / (j - 1);}cout << fish << endl;return 0;```


27、单位转换

时间限制:1.0 s

内存限制:128.0 MB

问题描述

小杨这周的数学作业是做单位转换,喜欢编程的小杨决定编程帮他解决这些问题。

小杨只学了长度单位和重量单位,具体来说:

长度单位包括千米( km )、米( m )、毫米( mm ),它们之间的关系是:1km=1000m=1000000mm。

重量单位包括千克( kg )、克( g )、毫克( mg ),它们之间的关系是:1kg=1000g=1000000mg。

小杨的作业只涉及将更大的单位转换为更小的单位,也就是说,小杨的作业只会包含如下题型:米转换为毫米,千米转换为毫米,千米转换为米,克转换为毫克,千克转换为毫克,千克转换为克。

现在,请你帮忙完成单位转换的程序。

输入描述

输入的第一行为一个整数N,表示题目数量。

接下来N行,每行一个字符串,表示转换单位的题目,格式为 x 单位1 = ? 单位2 。其中, x 为一个不超过1000的非负整数, 单位1 和 单位2 分别为两个单位的英文缩写,保证它们都是长度单位或都是重量单位,且 单位1 比 单位2 更大。

例如,如果题目需要你将1km转换为mm,则输入为 1 km = ? mm 。

保证1≤N≤1000。

输出描述

输出N行,依次输出所有题目的答案,输出时,只需要将输入中的 ? 代入答案,其余部分一字不差地输出即可。

由于小杨的题目只涉及将更大的单位转换为更小的单位,并且输入的 x 是整数,因此答案一定也是整数。

例如,如果题目需要你将1km转换为mm,输入为 1 km = ? mm ,则你需要输出 1 km = 1000000 mm 。

特别提醒

在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。输入格式将严格按照题目要求,且你的输出必须和标准答案完全一致才能得分,请在提交前仔细检查。


样例输入 1

2
1km=?mm
1m=?mm

样例输出1

1km=1000000mm
1m=1000mm

样例输入2

5
100m=?mm
1000km=?m
20kg=?g
200g=?mg
0kg=?mg

样例输出2

100m=100000mm
1000km=1000000m
20kg=20000g
200g=200000mg
0kg=0mg

参考答案:对于每个题目,首先判断单位类型,如果是长度单位,则使用公式“单位2=单位1×1000×1000”进行转换;如果是重量单位,则使用公式“单位2=单位1×1000”进行转换。然后将结果替换到原题中的“?”处输出即可。


喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:2023年12月CCF-GESP编程能力等级认证Python编程三级真题参考答案

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share