2021年09月青少年软件编程等级考试Python三级真题试卷
一、单选题 (共25题,每题2分,共50分)
1) 使用map函数可以实现列表数据元素类型的转换,而无需通过循环。则将列表L=[’1’,’3',’5’,’7',’9’] 转换为列表[1,3,5,7,9]的函数写法为?




查看答案
2) 以下关于len() 函数的说法中错误的是?




查看答案
3) 关于Python 异常处理的解释,描述正确的是?




查看答案
4) Python 文件常用的写入方式有w+和 a+, 它们的相同点是?




查看答案
5) Python 标准库math 中用来计算平方根的函数是?




查看答案
6) 某同学上完体育课回教室发现丢失了重要的物品,于是他找到班主任求助。班主任打开视频监控,然后把视频进度拖到这节课中间时间点,发现水杯已经丢了,于是判定是前半节课丢的。接着又把视频进度拖到前面一半的一半……重复以上过程,很快就锁定了物品丢失的真相。以上描述,体现出了哪一种算法思想?




查看答案
7) 去掉列表中的部分数据,例如去掉列表[1,2,3,4,5,6,7,8,9]中3的倍数,可以使用哪一函数来实现?




查看答案
8) 定义一个列表 num=list(range(3,6)) print(num) 输出的结果是?




查看答案
9) print(divmod(34,8)) 运行结果是?




查看答案
10) 八进制10的十进制值是?




查看答案
11) 如下代码:
a=3.1415926
round(a,2)
运行结果是?




查看答案
12) Python 内置函数(   )用来返回序列中的最小元素?




查看答案
13) 下面表达式的运行结果与print(divmod(37,9))运行结果相同的是?




查看答案
14) 已知输入变量x='hello world', 调用函数x.replace(‘l’,’h') 的结果为?




查看答案
15) 下列十六进制数中,转换为二进制数后含有偶数个“1”的是?




查看答案
16) 以下表达式是十六进制整数的选项是?




查看答案
17) 给已有文件“实验中学学生花名册.txt”增加两名学生,而且不能覆盖原有的内容。下面代码正确的是?




查看答案
18) 以下关于二进制整数的定义,正确的是?




查看答案
19) 设 s="happy time",那么 print(s[-2:]) 的结果是?




查看答案
20) 有如下程序:
filename =“中国诗人.txt”
with open(filename,"w") as file:
file.write("唐 李白\n")
file.write("唐 白居易\n")
执行程序后,”中国诗人.txt”  文件内容为? 




查看答案
21) ord() 函数可以将一个字符转化成ascii 码值,而chr 函数则是相反的过程。 已知’a’的 ascii 码值为97,’A'的 ascii 码值为65, 则 Python 完成小写转大写的核心代码为? 
a=input("请输入一个小写字母:\n") 
b=________print("转化结果为:"+b)




查看答案
22) 关于文件的读写,下列解释表述错误的是?




查看答案
23) 小明编写了一个插入排序的算法,为列表 arr=[5,33,21,67,39,73,7,43] 中的数值进行排序,他在调试时,如下所示有意修改了循环的次数,请问,现在代码运行后print(arr) 打印出的结果是? 
#插入排序范例调试
arr =[5,33,21,67,39,73,7,43]

for i in range(1,4); #请注意此处起、止两数各是多少!
    j=i
    k=arr[i] #每次循环选取一个数
    while j>0 and k<arr[j-1]: #从第二个数开始比较,若小于上一个数,则:
        arr[j] = arr[j-1] # 将当前数改为上一个数
        j = j-1
    arr[j]=k #把上一个数改为当前数,完成两数的位置交换

print(arr)




查看答案
24) 异常处理的作用是不想让程序终止,如果出错了需要特殊处理。下列实现异常处理的语句是?




查看答案
25) 小明想对列表arr=[5,33,21,67,39,73,7,43]中的数值进行排序,于是编写了“冒泡排序”代码,请问,下面横线处,应该填入哪段代码? 
#冒泡排序范例
arr=[5,33,21,67,39,73,7,43]
n=len(arr)

for i in range(0,n):
    for j in range(0,n-i-1):
        if ________________
            (arr(j),arr[j+1])=(arr[j+1],arr[j])

print(arr)




查看答案
二、判断题 (共10题,每题2分,共20分)
26) readline() 执行结果为字符串,readlines() 执行结果为列表。

查看答案
27) 猜一个20以内的随机数二分法比顺序查找的效率更高。

查看答案
28) Python 中避免使用反斜线’\’指定文件路径时出错,如\t; 常常使用斜线’/'或者双反斜线’\\’。

查看答案
29) bool 函数判断整数参数的布尔值时,只要是非0参数,结果就为True。

查看答案
30) 二进制数转换为十六进制的方法是:从右到左将4位分成一段,左边不满4位的可以用0补满,分别转换为十六进制。

查看答案
31) Python 中 的dir 函数是一个文件夹操作函数,其主要作用是创建一个文件夹。

查看答案
32) 二进制数与十六进制数的末位是“1”,各转换为十进制数后都是奇数。

查看答案
33) 在 try-finally 异常处理结构中,无论是否发生异常,都会处理最后的代码。

查看答案
34) song.csv 文件中第一列是歌曲名,使用以下Python 程序可以把歌曲名单一一读取出来。
import csv
with open('song.csv','r') as f:
    reader =csv.reader(f)
    for i in reader:
        print(i[0])

查看答案
35) 执行代码 x,y,z=sorted([1,3,2]) 之后,变量y的值为1。

查看答案
三、编程题 (共3题, 共30分)
36) 输入10个数据进行升序排序,并在这有序数据上插入一个数据,使之仍然有序。
程序代码如下,请补全。
lis=[]
for i in range(10)
    x=int(input(输入待排序数据%d:’%(i)))
    lis.append(x)
for i in range(____①____):
    for j in range(i,len(lis)):
        if ____②____:
            lis[i],lis[j]=lis[j],lis[i]
print(lis)
n=int(input(输入一个需要插入的数据:’))
lis.append(n)
for i in range(____③____):
    if____④____:
        for j in range(i,len(lis)):
            lis[j],lis[-1]=____⑤____
        break
print(lis)
查看答案
37) 小文的运动时间数据存储在文件“sport.csv”中,数据内容如下显示:
时长
47
41
31
30
43
34
45
下列代码实现了读取数据,求和并统计个数,输出平均时长,并保留2位小数,请你补全代码。
import csv
with open("/data/____①____") as f:
    rows=list(csv.reader(f))
    s=0
    c=0
    for row in rows[1:]:
        s+=int(____②____)
        c=c+1
print(round(____③____,2)
查看答案
38) 给定一个整数 num, 从 1 到 num  按照下面的规则返回每个数:
如果这个数被3 整除,返回’Apple'。
如果这个数被5 整除,返回’Pie'。
如果这个数能同时被3和5 整除,返回’ApplePie'。
如果这个数既不能被3 也不能被5 整除,返回这个数字的字符串格式。
n=int(input("请输入一个数字:“))
results=[]
for i in range(1,____①____)
    if ____②____:
        results.append("ApplePie")
    elif i%3==0:
        results.append("Apple")
    elif i%5==0:
        results.append("Pie")
    else:
        results.append(____③____)
print(results)
查看答案