2023年5月青少年软件编程Python等级考试(三级)试卷
剩余时间 --:--:--
单选题 共 25 题
1.

请选择,下面代码运行之后的结果是?(

a = '2'
b = '4'
try:
    c = a * b
    print(c)
except:
    print('程序出错!')
else:
    print('程序正确!')
2.

下列数据中,最大的数值是?

3.

打开b.txt文件,将"Hello Tom!"写入文件,下列语句正确的是?

4.

下面程序执行结果是?(

s='123456789'
print(min(s)+max(s))

5.

下面程序执行结果是?( )

a=['春','夏','秋','冬']
c=list(enumerate(a))
print(c)
6.

已知x,y,z=map(int,['20','2','3']),则表达式x+y+z的结果是?

7.

下列表达中,和range(8)的结果相同的是?

8.

下列有关于函数的说法,正确的是?

9.

下列表达式的结果为True的是?

10.

若scores="9,7,8,9,6,5",则list(scores)的结果是?

11.

编写程序代码时,我们经常会犯错,对于Python的异常处理,描述正确的是?

12.

有代码如下:

s=["白日依山尽","黄河入海流","欲穷千里目","更上一层楼"]
f=open('sj.txt','w')
f.write('\n'.join(s))
f.close()


关于上述代码,说法不正确的是?( )

13.

有如下代码:

res = []
f = open('Python08.txt','r')  #Python08.txt中共4行诗句
p = f.readlines()
for s in p:
    res.append(s)
print(res)
f.close()

对于该段代码,说法不正确的是?( )

14.

达式int('13',8)的返回值是?

15.

十六进制数7E转换为二进制数是几位数?

16.

二进制数11110010转换为十六进制数是?

17.

对一组数据"6,1,3,2,8"进行排序,按从小到大的顺序进行排列,使用冒泡算法进行编程,则第一轮过后,排序的结果是?

18.

暴力破解是一种常见的网络攻击行为,它采用反复试错的方法去尝试破解用户的密码。这种黑客工具主要使用以下哪种算法进行设计?

19.

执行print(list(range(4)))语句后,显示的结果是?

20.

在交互式编程环境下执行a = input("请输入考试成绩:")语句后,通过数字键盘输入数值89.5。输入完成后,查看变量a的数据类型,会是下列哪一种?

21.

divmod()是Python的内置函数。对应变量x和y,divmod(y,x)返回的结果是?

22.

abs()是Python的内置函数,执行abs(-1.00)语句返回的结果是?

23.

使用open函数打开某个CSV格式文件后,如果要将整个文件里的内容读取到一个列表中,需要使用以下文件对象的哪个函数?

24.

下列关于二维数据的描述,正确的是?

25.

《孙子算经》是我国古代重要的数学著作,其中有一题:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”小王同学用Python编写了如下程序:
x=1
while x>0:
    if not (   ):
        x+=1
    else:
        print(x)
        x+=1
关于上述程序,下列说法不正确的是?( )

判断题 共 10 题
1.

下列这段代码能够正常运行。对吗?( )

while True :
    a = input('请输入一个整数,若不是整数将会让你重新输入:  ' )
    try:
        b = int(a)
    except:
        print('你输入的不是整数!将返回重输。')
    else:
        print('你输入的是整数,程序结束。')
        break
2.

sum()函数不仅可以对列表数据进行求和,也可以对元组数据进行求和。

3.

round()函数属于数学函数,可用于近似保留小数位数。

4.

sort()与sorted()函数的区别在于前者默认是升序,后者默认是降序。

5.

a=['shanghai','beijing','tianjin','chongqing','hangzhou']

with open ('city.csv','w')as f:

f.write(','.join(a)+'\n')

本段代码最后还缺少一条'f.close()'语句以关闭文件。

6.

file=open('fruits.csv','r')

name=file.read().strip('\n').split(',')

file.close()

上述代码的功能是读取文件中的数据到列表。(

7.

使用open()方法一定要保证关闭文件对象,即调用close()方法。

8.

二进制数1101011011转换成十六进制数是35B。

9.

十进制数转十六进制数以后,位数一定变少了。

10.

一组有n个元素的数列,如采用顺序查找法找到数列中的某一个元素,平均查找次数为 (n+1)/2 次。

问答题 共 3 题
1.

Python等级考试三级编程题:某班级期中考试成绩汇总在文件“score.csv”中,包含了语文、数学、英语三科的分数,数据内容如下图显示:

小明编写了如下程序,读取成绩文件中的数据,并分别计算语文、数学、英语三科成绩的平均分,请你补全代码。

import csv
ChineseNum=0
MathNum=0
EnglishNum=0
num=0
with open('/data/score.csv',encoding='utf-8') as csv_file:
    row = csv.reader(csv_file, delimiter=',')
    next(row)  # 读取首行
    for r in row:
        ChineseNum += float(        ①        )
        MathNum += float(        ②        )
        EnglishNum += float(        ③        )
        num +=         ④        
print("语文平均成绩是:%.2f"%(ChineseNum/num))
print("数学平均成绩是:%.2f"%(MathNum/num))
print("英语平均成绩是:%.2f"%(EnglishNum/num))
2.

Python等级考试三级编程题:图书借阅管理程序。

新学期到了,学校接收了一批捐赠的图书,小明编写了一个简单的程序用来管理图书,并支持借阅功能。为了提高查找图书的效率,小明使用了二分查找法来设计图书借阅功能。以下是小明编写的图书借阅管理程序,请你补全代码。

library=dict()  #用字典生成一个图书管理数据结构(字典的键为编号,字典的值为['书名',本数])
#书籍入库
nums=len(library)  #先计算图书编号总数
library[nums+1]=['红楼梦',5]     #在编号总数的基础上继续添加新书:library[新编号]=['书名',本数]
library[nums+2]=['西游记',10]
library[nums+3]=['水浒传',5]
library[nums+4]=['三国演义',10]
print(library)

blist=list(library.keys())
#按书名借阅:
bookname=input('请输入借阅图书名称:')

min_v = blist[0]
max_v = blist[-1]
turns=0

while min_v <=         ①        :
    turns += 1
    cur  =  (min_v + max_v)        ②         
    print(cur)
    if library[cur][0] ==         ③        :        
        if library[cur][1]  >  0: 
            library[cur][1]  -=         ④        
            print('《%s》借阅成功!'%bookname)
        else:
            print('抱歉,您选择的书籍已被借完!')
        break
    elif blist[cur-1] > cur:
        min_v =         ⑤           
    else:
        max_v =         ⑥       
print("经过%d轮二分查找,完成图书的搜索。"%turns)
3.

Python等级考试三级编程题:小组同学按身高从高到低输出名单

某班天天向上小组共有6个同学,姓名和身高数据分别存放在列表a中,编写程序实现小组同学按身高从高到低输出名单,运行结果如图所示:

程序代码如下,请在划线处补充完整:

a=[["李洪全",135],["王倩倩",154],["吴乐天",148],["周立新",165],["鲁正",158],["杨颖颖",150]]
for i in range(1,len(a)):
    for j in range(0,        ①        ):
        if a[j][1]        ②        a[j+1][1]:
            a[j],a[j+1]=a[j+1],a[j]
print("小组名单是:")
for i in range(len(a)):
print(        ③        )
C++ 编辑器
输入
输出