202409 青少年软件编程等级考试Python三级真题 建议答题时长:60min(含答案及分析)
原连接:竞赛考级题库–202409 青少年软件编程等级考试Python三级真题 – Python
1. 编程题
鸡兔同笼
小明在解决经典的“鸡兔同笼”问题时,使用“穷举法”编写了以下代码。请将代码中红色①②③④处补充完整:
tou = int(input("请输入笼中鸡与兔脑袋的总数: "))
jiao = int(input("请输入笼中鸡与兔脚的总个数: "))
a = 0
for ji in range( ① ):
tu = ② – ji
if 2 * ji + 4 * tu == ③ :
print("鸡的个数为:", ji, "兔的个数为:", tu)
a = a + 1
if a == ④ :
print("头数与脚数不合理,没有合适的结果。")
查看答案https://tiku.kids-scratch.com/dist/#/topic?gid=b2b02d97bbec092c361d902ad14ead34
2. 编程题
有一个数字构成的列表 a = [6,2,3,5,4,5,2,6,5,5,4,3,7],小明用冒泡排序算法编写了一段程序,将列表中的数字从小到大排列,运行结果为: [2, 2, 3, 3, 4, 4, 5, 5, 5, 5, 6, 6, 7] ,请将下面程序中红色 ①②③ 处欠缺的代码补充完整。
a = [6,2,3,5,4,5,2,6,5,5,4,3,7]
for i in range(0, ① ) :
for j in range(i+1 , ② ) :
if ③ :
a[i] , a[j] = a[j] , a[i]
print(a)
查看答案https://tiku.kids-scratch.com/dist/#/topic?gid=8a05fd2bce0a0f8a13eea19cbdfff00f
3. 编程题
某实验小学举行了跳绳比赛,其中四年级1班和2班的比赛数据存储在“ts.csv”中,如图所示,现要求Python读取该比赛数据文件,并统计各班成绩在110(含110)以上的人数。实现代码如下,请你补全划线处代码:
import csv
with open ("/data/ts.csv") as fs:
hs=list(csv.reader( ① ))
c1=0
c2=0
for i in hs[1:]:
if i[0]=="1"and ② >=110:
c1+=1
elif i[0]=="2"and ③ >=110:
c2+=1
print("四(1)班110以上的有:"+str(c1)+"个") print("四(2)班110以上的有:"+str(c2)+"个")
查看答案https://tiku.kids-scratch.com/dist/#/topic?gid=f98f694f9b24cf2cf18b06024d3a2b26
4. 单选题
使用open函数打开一个csv格式文件后,如果要将整个文件里的内容读取存放到一个字符串变量中,需要使用以下文件操作的哪个函数?( )
A
read()
B
readline()
C
readlines()
D
write()
答案:A
分析:
read() 方法用于从文件读取指定的字节数,默认读取整个文件。readline() 每次读出一行内容,返回一个字符串对象。readlines() 方法用于读取所有行并返回列表。write() 用于向文件中写入指定字符串。
5. 单选题
使用 readline()和readlines()函数可以读取txt文件中的数据。D盘“jieqi.txt”文件内容如下图,小明编写了下面代码,运行后打印在屏幕上的结果是?( )
f=open(r"D:\jieqi.txt", "r")
s = f.readline()
s1=f.readlines()
f.close()
print(s1)
A
立春
B
雨水
C
[雨水,惊蛰,春分]
D
['雨水\n','惊蛰\n','春分\n']
答案:D
分析:
readline() 每次读出一行内容,返回一个字符串对象,文件指针下移。readlines()读取下面整个文件所有行,保存在一个列表变量中,每行作为一个元素。
6. 单选题
下列代码的运行结果是?( )
l=list(map(float, (1,2,3,4)))
print(l)
A
[1,2,3,4]
B
['1','2','3','4']
C
[1.0,2.0,3.0,4.0]
D
['1.0','2.0','3.0','4.0']
答案:C
分析:
将元组转换成浮点型列表。
7. 单选题
表达式[3] in [1, 2, 3, 4]的结果是?( )
A
2
B
3
C
False
D
True
答案:C
分析:
[3]in[1,2,3,4]是后面这个列表是否包含另一个列表,且这个列表里面还有个数字3,显然不包含,所以是False。
8. 单选题
运行以下代码,得到的结果是?( )
a='20'
b='24'
print(a+b)
A
44
B
2024
C
20+24
D
'44'
答案:B
分析:
两个字符串相加。
9. 单选题
关于filter()函数的使用,以下哪个选项不正确?( )
A
filter()函数可以用于过滤出一个序列里符合函数功能的元素
B
filter()函数接收两个参数
C
filter()函数只能过滤列表
D
filter()函数可与lambda匿名函数一起使用
答案:C
分析:
filter()可以过滤列表、元组、集合或字符串等。
10. 单选题
使用with语句可以读取csv格式文件中的数据,下图所示,有一个名为“jieqi.csv”的文件,小明针对这个文件编写如下代码,请问代码运行后打印在屏幕上的结果是?( )
A
立春,雨水,惊蛰,春分
B
[立春,雨水,惊蛰,春分]
C
['立春,雨水,惊蛰,春分']
D
['立春','雨水','惊蛰','春分']
答案:D
分析:
从csv格式文件中读出数据,表示为列表对象。
11. 单选题
表达式oct(11)的值是?( )
A
'0b11'
B
'0x11'
C
'0o13'
D
13
答案:C
分析:
oct()函数的功能是将十进制整数转换为八进制的数字字符串,结果为字符串。'0b'代表二进制,'0x'代表十六进制,'0o'代表八进制。
12. 单选题
表达式list(map(str, [1, 2, 3, 4, 5])) 的值为?( )
A
[1,2,3,4,5]
B
{1,2,3,4,5}
C
['1','2','3','4','5']
D
{'1','2','3','4','5'}
答案:C
分析:
将序列中的元素从整型转换为字符串类型。
13. 单选题
表达式[1, 2, 3]*3的执行结果为?( )
A
[3,6,9]
B
[1,2,3],[1,2,3,],[1,2,3,]
C
[1, 2, 3, 1, 2, 3, 1, 2, 3]
D
[123123123]
答案:C
分析:
将列表连续输出3次。
14. 单选题
表达式 sum(range(5)) 的值为?( )
A
5
B
55
C
10
D
15
答案:C
分析:
0到4相加等于10。
15. 单选题
s='abcdefg',min(s)='a',max(s)='g',所以结果为两个字符串相连,正确答案为:ag。
A
如果存在jieqi.csv文件,将覆盖jieqi.csv文件内容
B
如果不存在jieqi.csv文件,将产生一个jieqi.csv文件
C
程序运行后jieqi.csv文件内容不变
D
程序运行错误
答案:B
分析:
将列表对象输出为csv格式文件,如果不存在jieqi.csv文件,将产生一个jieqi.csv文件。参数“a”,为非覆盖,在原有内容之后,继续增加内容。
16. 单选题
十六进制数2024转换为二进制数是?( )
A
2024
B
10000000100100
C
11000011100
D
10000010100
答案:B
分析:
十六进制数转二进制数,从低位起,每1位十六进制数可转换为4位二进制数,最左边的0可以省略,但中间的0不可省略。A为十进制数,C中十六进制2应为0010,D选项将中间的部分0省略了,故选B。
17. 单选题
对于列表[3, 1, 5, 8, 2, 10]按从左往右进行升序的冒泡排序,则第几轮排序后的结果就是有序的?( )
A
3
B
4
C
5
D
6
答案:A
分析:
第1轮:1 3 5 2 8 10;第2轮:1 3 2 5 8 10;第3轮:1 2 3 5 8 10。
18. 单选题
对一组数据[7, 2, 9, 4, 8, 1, 4, 5]进行排序,使用选择排序按从大到小的顺序进行排列,则第1轮排序过后的结果是?( )
A
2, 7, 4, 8, 1, 4, 5, 9
B
9, 8, 7, 4, 2, 1, 4, 5
C
9, 2, 7, 4, 8, 1, 4, 5
D
7, 2, 4, 8, 1, 4, 5, 9
答案:C
分析:
选择排序算法的主要思想是每次从未排序部分选择最小(或最大)元素,然后将它放到已排序部分的末尾。
所以选项C正确,第1轮排序找到最大值9,将9和7交换位置;
选项A用的是冒泡排序;
选项B是第2轮排序后的结果;
选项D将9放到了数据的末端,排序后的结果是从小到大排序的。
19. 单选题
请选择,下面代码运行之后的结果是?( )
a = '2'
b = '4'
try:
c = a * b
print(c)
except:
print('程序出错!')
else:
print('程序正确!')
A
8
B
24
C
程序正确!
D
程序出错!
答案:D
分析:
变量a与b都是字符串,不能进行乘法运算,所以经过异常处理之后,会打印”程序出错!“。
20. 单选题
运行以下代码,输出的结果是?( )
s='abcdefg'
print(min(s)+max(s))
A
ag
B
a
C
g
D
ga
答案:A
分析:
s='abcdefg',min(s)='a',max(s)='g',所以结果为两个字符串相连,正确答案为:ag。
21. 单选题
十进制数15转换为二进制数,其结果是?( )
A
F
B
10101
C
1101
D
1111
答案:D
分析:
十进制转二进制,采用除2倒取余数的方法,故选D。A为十六进制数,B和C混淆了十六进制和二进制的转换方法。
22. 单选题
表达式divmod(6,2)结果为?( )
A
(3)
B
(0)
C
(3,0)
D
[3,0]
答案:C
分析:
divmod(6,2)返回一个元组(6//2,6%3),余数为0不能省略。
23. 单选题
以下表达式的值为True的是?( )
A
all(' ','1','2','3')
B
any([])
C
bool('abc')
D
divmod(6,0)
答案:C
分析:
A和B选项,False;D选项,报错;C选项,True。
24. 单选题
对分查找,也称作二分查找,对一个列表中的元素进行对分查找的前提条件是?( )
A
列表元素无序
B
列表元素有序
C
列表元素唯一
D
列表元素数量必须是偶数
答案:B
分析:
对分查找是一种基于比较的查找算法,它要求列表元素有序,以便在每次比较时能够缩小搜索范围。
25. 单选题
将水果价格一维数据['苹果','8元']写入"jiage.csv"文件操作,横线上填写正确的是?( )
f = open("jiage.csv", "w")
ls = ['苹果','8元']
f._____(",".join(ls)+ "\n")
f.close()
A
insert
B
append
C
write
D
read
答案:C
分析:
write() 用于向文件中写入指定字符串。
26. 单选题
下列有关数制的说法,错误的是?( )
A
二进制的基本数码是0、1、2
B
数据在计算机内部是以二进制方式存储和处理的
C
十六进制采用逢十六进一的进位规则
D
十进制的8大小等同于十六进制的8,但十进制的18不等同于十六进制的18
答案:A
分析:
二进制的基本数码是0、1,进位规则是逢二进一,故不存在2数码。
27. 单选题
write() 用于向文件中写入指定字符串。
A
它以 '0b' 开头,表示这是一个二进制数
B
它只包含字符 '0' 和 '1'
C
它的长度总是固定的
D
它表示的是输入整数的二进制表示
答案:C
分析:
bin() 函数返回的字符串长度不是固定的,它取决于输入整数的二进制表示所需的位数。例如,bin(2) 返回 '0b10',而 bin(10) 返回 '0b1010'。因此,选项 C(它的长度总是固定的)不是 bin() 函数返回值的特点。
其他选项 A、B 和 D 都是正确的。
28. 判断题
列表c=[[' 张三','88'],['李四','92'],['王五','85']]可以表示二维数据。( )
A
正确
B
错误
答案:正确
分析:
二维列表本身是一个列表,其中的每一个元素又是一个列表。c是二维列表数据。
29. 判断题
map()函数不改变原列表,而是返回一个新列表。( )
A
正确
B
错误
答案:正确
分析:
map()函数返回的是一个新列表。
30. 判断题
十六进制转换成十进制数,其位数一定会变多。( )
A
正确
B
错误
答案:错误
分析:
该说法太绝对。比如,十六进制0~9转换成十进制数,其结果是一样的。
31. 判断题
acsii(‘0’),运行的结果是48。( )
A
正确
B
错误
答案:错误
分析:
acsii(‘0’),运行的结果是“‘0’”。
32. 判断题
表达式bool(max(6,7,8))和max(bool(6,7,8))的运行结果都是
A
正确
B
错误
答案:错误
分析:
bool(max(6,7,8))的运行结果为True;max(bool(6,7,8))会报错,因为bool()最多有一个参数,此题有3个参数。
33. 判断题
在Python中使用with语句打开文件,程序运行处理结束后会自动关闭被打开的文件。( )
A
正确
B
错误
答案:正确
分析:
在Python中使用with语句,结束文件时,Python会自动调用close()关闭这个文件。
34. 判断题
请仔细阅读以下代码,判断这段代码能否正常运行?( )
while True :
a = input('请输入一个整数,若不是整数将会强制让你重新输入: ' )
try:
b = int(a)
except:
print('你输入的不是整数!将返回重输。')
else:
print('你输入的是整数,程序结束。')
break
A
正确
B
错误
答案:正确
分析:
本题需要学生正确理解 try—except—else三个语句的作用,代码利用了错误处理机制,所以能正确运行。
35. 判断题
假设五进制数2用(2)5表示,若表达式(6)n+(1)n=(10)n成立,那么该n进制一定为七进制。( )
A
正确
B
错误
答案:正确
分析:
由于数字6的存在,该进制一定是7进制及以上,6+1发生了进位,说明是逢七进一,所以一定是7进制,8进制及以上构不成进位。
36. 判断题
abs(-1.0)的运行结果为1。( )
A
正确
B
错误
答案:错误
分析:
abs(-1.0)的运行结果为1.0。
37. 判断题
在Python中open('city.csv','r')命令的作用是以可写入的方式打开文件名为city的csv格式文件。( )
A
正确
B
错误
答案:错误
分析:
open()函数中参数"r"是以只读方式打开文件。
作者:竞赛考级题库