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

2023年5月电子学会青少年软件编程(Python五级)等级考试试卷
操作/编程 五级 2023 2023-06-12 16:36:49 97

一、编程题

1.

已知 IPv6 的地址字符串的格式为 X:X:X:X:X:X:X:X,其中每个 X 表示长度为 4 的字符串。例如:某 IPv6 字符串为“2A08:CCD6:0088:108A:0011:0002:202F:AA05”,IPv6 表示法需将每个 X 的前导零都省略,程序输出结果如下图所示:

现设计程序自动删除 IPv6 地址的前导零,请在划线处填入合适的代码。

s="2A08:CCD6:0088:108A:0011:0002:202F:AA05"

        ①        

flag=False

for i in range(len(s)):

    if s[i]==":":

                ②        

        flag=False

    elif         ③        :

        ans+=s[i]

        flag=True

print("原 IPv6 地址为:",s)

print("去前导零后:",ans)

2.

编写程序,实现分段函数的计算,分段函数的取值如下表所示。要求:可连续输入5次(也就是输入5个x值,求出对应的y值),根据对应的表达式求出y值之后,将结果转化成整数添加到列表a中。请判断存在于列表a中的5个元素是否为素数,如果为非素数则转化成元组之后存在b1中,如果是素数则转换成元组之后存放在b2中,分别输出b1、b2中非素数和素数的元素及元素个数。

a=[]

a1=[]#暂时存储非素数的值

a2=[]#暂时存储素数的值

b1=()

b2=()

for i in range(5):

    x=int(input("输入x="))

    if x<0:

        y=0

    elif 0<=x<5:

        y=x

    elif 5<=x<10:

        y=3*x-5

    elif 10<=x<20:

        y=0.5*x-2

    elif x>=20:

        y=2*x

            ①        

for  i  in  a:   

    if         ②        :

       a1.append(i)

    else:

        flag=True

        for j in range(2,i):

            if  i%j==0:

                        ③         

                break

        if         ④        :

            a2.append(i)

        else:

            a1.append(i)

b1=tuple(a1)

b2=tuple(a2)                

print("非素数的个数有"+str(len(b1))+"个,","非素数为:",b1)

print("素数的个数有"+str(len(b2))+"个,","素数为:",b2)

3.

给定一个完全由数字字符('0','1','2',...,'9')构成的字符串str,请写出str的p型编码串。例如:字符串1335554668可被描述为“1个1、2个3、3个5、1个4、2个6、1个8”,因此我们说1335554668的p型编码串为112335142618;00000000000可描述为“11个0”,因此它的p型编码串为110;类似的道理,编码串101可以用来描述1111111111;110003444225可描述为“2个1、3个0、1个3、3个4、2个2、1个5”,因此它的p型编码串为213013342215。如果输入非数字字符,则提示输入无效。

根据上述算法思想,补全下列代码。

s=input("请输入字符串str:")

s+=' '

lens=len(s)

for i in range(0,        ①        ,1):

    if '0'<=s[i]<='9':

                ②        

    else:

        print('输入无效!')

        exit()

sum=1

i=0

while i<lens-1:

    if          ③        :

        sum+=1

    else:

        print(sum,end='')

        print(s[i],end='')

                ④        

    i+=1

公众号
客服 反馈
顶部