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

2024年12月电子学会青少年软件编程(Python三级)等级考试试卷
操作/编程 三级 2024 2025-02-09 18:56:09 97

一、编程题

1.

分解质因数

输入一个整数,分解质因数。例如:输入90,打印出90=2*3*3*5。请完善以下代码,运行程序。

target=int(input('输入一个整数:'))

print(target,'= ',end='')

if target<0:

    target=        ①        (target)

    print('-1*',end='')

flag=0

if target<=1:

    print(target,end='')

    flag=        ②        

while True:

    if flag:

        break

    for i in range(2,int(target+1)):

        if         ③        :

            print("%d"%i,end='')

            if target==i:

                flag=1

                break

            print('*',end='')

                    ④        

            break

2.

成绩系统

小王同学编写了一个成绩录入和查询系统,能实现输入多个互不相同的分数,自动进行从高到低排名,同时输入要查询的分数,可以获得相应同学的姓名。程序运行结果如下图所示,实现代码如下,请你补全空缺处。

n=int(input("请输入总人数:"))

name=[""]*n

score=[0]*n

#输入功能,分别输入姓名与分数

for i in range(n):

    name[i]=input("请输入第"+str(i+1)+"个人名:")

           ①        =int(input("请输入第"+str(i+1)+"个分数:"))

#排名功能

for i in range(n-1):

    for j in range(0,n-1-i):

        if score[j]        ②        score[j+1]:

            score[j],score[j+1]=score[j+1],score[j]

            name[j],name[j+1]=name[j+1],name[j]

print("——————各个同学分数排名如下——————")

print(name)

print(score)

#查询功能

i=0

        ③        

key=int(input("请输入要查询的分数:"))

b=-1

while i<=j and b==-1:

    m=(i+j)//2

    if score[m]==key:

        b=m

    elif score[m]<key:

        j=        ④        

    else:

        i=m+1

if b==-1:

    print("没有同学获得该分数!")

else:

print("分数为"+str(key)+"的同学是:"+        ⑤        )

3.

统计总分

有下图左边名为“虚拟学校5年级学生数据.csv”的文件,要实现下图右边统计每位同学语、数、外三门学科的总分,小明编写了以下程序,请将红色 ①、② 两处的代码补充完整:

f = open('/data/        ①        ','r',encoding='utf-8')

i = 1

for line in f:

    s = ""

    a = line.strip("").split(",") 

    if i >= 2 :     #第一行是每列的标题,不用计算,要从第二行开始计算

        s = str(        ②        ) + ' 的总分为:' + str(int(a[5]) +int(a[6]) +int(a[7]) )

    i = i + 1

    print(s)

f.close

公众号
客服 反馈
顶部