万卷网> 电子学会考级 >Python等级考试 > 2021年9月电子学会青少年软件编程(Python五级)等级考试试卷

2021年9月电子学会青少年软件编程(Python五级)等级考试试卷
操作/编程 五级 2021 2022-11-01 10:37:35 54

一、编程题

1.

罗马数字问题:

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。

27写做 XXVII,即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减去数 1 得到的数值 4。同样地,数字 9 表示为 IX。

这个特殊的规则只适用于以下六种情况:

I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。

X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。

C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。

现编写输入一个罗马数字,输出其整数结果,请编程实现上述功能,或补全代码。

例如,当输入XXII时,输出22;当输入MCMXC时,输出1990.

rmdict = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000} 

rm = list(input("请输入正确的罗马数字:"))

num, prew = 0, 1

for ch in rm[::-1]:

   w =     ①    

   if prew > w: 

      num = num - w 

   else :

      num = num + w

   prew =     ②    

print(  ③  )

2.

密码问题:

根据密码本和电子钥匙,破解笔记本电脑的密码。

密码本是一个非降的整数序列,电子钥匙是一个整数,得到密码的方法是在密码本中找到最接近电子钥匙的整数(如果多个符合条件,输出最小的一个)。

例如:

密码本为下面的列表

a=[1,22,43,45,45,55,60,70,89]

电子钥匙为整数44

满足条件的整数为43和45,最终的密码为43

补全下面的代码:

a=[1,22,43,45,45,55,60,70,89] #密码本

k=int(input())   #k为电子钥匙

l=0

r=8

while l+1!=r:

    mid=int (   ①  )

    if a[mid]<k:

           ②    

    else:

        r=mid

    if a[r]==k:

          ③      

if k-a[l] <=     ④   :

     print(a[l])

else:

    print(⑤)

3.

简单去重问题:

对于给定的列表,要求对列表中每个重复元素只输出一次,请你编程完成这个任务。

例如:对于测试列表a=[11,1,14,23,11,89,14,56,89]

有如下3种算法,请你补全代码。

#方法1

a=[11,1,14,23,11,89,14,56,89]

result=[]

for i in a:

    if i not in result:

        ①      

print("方法1:",result)

#方法2

a=[11,1,14,23,11,89,14,56,89]

for i in [j for j in a if a.count(i)>1]:

    for x in range(a.count(i)-1):

        ②     

print("方法2:",a)

#方法3

a=[11,1,14,23,11,89,14,56,89]

i=0

while i<=len(a)-1:

    if a.count(a[i])>1:

        ③       

    else:

        ④       

print("方法3:",a)

公众号
客服 反馈
顶部