学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.40
所属科目:高中信息技术
某字符串加密程序,其功能是:输入一个仅由小写英文字母组成的字符串,输出加密后的密文,加密规则如下所述:
①将明文字符串分成3个字符一组,对每组字符进行②③处理,剩余不足3个的字符不做处理。
②随机产生由26个不重复的小写英文字母组成的密文串,将明文中的每组字符分别替换为密文串中对应的字符,若密文串如表1所示,则明文“abcdefghijkl”替换为“jpgntkwmaery”。
小写字母abcdefghijklmnopqrstuvwxyz
密文串jpgntkwmaeryldcqfixuhzbovs
表 1
③输入一串数字密钥(由1~9数字组成),密钥中每个数字依次为每组字符向右旋转次数,若密钥长度不足,则重复使用密钥,数字与对应旋转次数见表2。例如,数字密钥为“45”,则将第1组字符向右旋转1次,如“jpg”>“gjp”,将第2组字符向右旋转2次,如“ntk”>“knt”>“tkn”,第3组字符向右旋转1次,第4组字符向右旋转2次,依次类推。
表 2
数字123456789
旋转次数123123123
④将每组处理后的字符串顺序连接, 每组之间用“*”作为间隔符号,再将分组剩余的字符倒序连接,得到密文。
程序运行结果如下:

(1)若明文为“abc”,随机产生的密文串如图所示,数字密钥为“13”,则密文为________
(2)实现上述功能的Python程序如下,请在划线处填入合适的代码。
def jmdic():          #随机生成由26 个不重复的小写英文字母组成的密文串
#返回密文字符串,代码略
def rotate(array,k):   #旋转

for i in range(k):

temp=array[len(array)-1]

for j in range(          )

array[j+1]=array[j]

array[0]=temp


ming=input("请输入明文:")
mkey=input("请输入一串数字密钥: ")
n=len(ming);m=len(mkey)
a=[]
dic=jmdic()
print("26 个小写字母对应的密文串:",dic)
for i in range(n//3):        #对每组字符进行处理

a.append([])   #append():在列表末尾添加元素

for j in range(3):

a[i].append( dic[] )

keynum= ________

k=(keynum-1)%3+1

rotate(a[i],k)


ans=""
for i in range(n//3): #将每组字符进行连接

for j in range(3):

________

ans+="*"*(i+1)


ans=ming[i*3+3:]+ans
print("密文为: ",ans)
(3)加框处代码有错,请更正________
编辑解析赚收入
收藏
|
有奖纠错

同类型试题

优质答疑

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19
我要答疑
编写解析
解析:

奖学金将在审核通过后自动发放到帐

提交
我要答疑
我要答疑:
提交