万卷网> 电子学会考级 >Python等级考试 > 2023年5月电子学会青少年软件编程(Python三级)等级考试试卷

2023年5月电子学会青少年软件编程(Python三级)等级考试试卷
操作/编程 三级 2023 2023-06-12 17:38:36 56

一、编程题

1.

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

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)

2.

某班“天天向上”小组共有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(        ③        )

3.

某班级期中考试成绩汇总在文件“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))

公众号
客服 反馈
顶部