2023年5月电子学会青少年软件编程(Python五级)等级考试试卷
操作/编程
五级
2023
2023-06-12 16:36:49
97次
一、编程题
已知 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)
【知识点】 电子学会Python五级
编写程序,实现分段函数的计算,分段函数的取值如下表所示。要求:可连续输入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)
【知识点】 电子学会Python五级
给定一个完全由数字字符('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
【知识点】 电子学会Python五级
