ROI-13(回轉13位)是一種簡易的替換式密碼,編碼解碼規則相同,針對英文字母,僅僅只需要檢查字母順序并用13位后的對應字母取代它,超過時則重新繞回26個英文字母開頭即可。即A換成N、B換成O,以此類推到M換成Z,然后序列反轉;N換成A、O換成B……
小明決定以ROT-13為基礎制定新的ROT-n,即每次回轉不是13位,而是n位。因此他引入了11位數字密鑰和字符位置來計算n的值,并擴大加密范圍,使得大小寫字母和數字都能加密,從而達到加密效果增強的目標。具體規則如下:
(1)字符在奇數位置上n的值即當前對應密鑰值,偶數位置上n的值為當前段密鑰中已經出現的所有數字之和。
(2)數字字符在“0”到“9”之間回轉,即超過“9”部分返回“0”開始繼續計算:大寫字母在“A”到“Z”范圍內回轉,小寫字母在“a”到“z”范圍內回轉,其它字符不變。

程序代碼如下
Private Sub Command1_Click)
Dim i,z,m,js As Integer
im s,c,h,t As String
Const my=“14159265358”
Text2.Text=“”
S=Text1.Text
z=1
For i=1 To Len(s)
①
If z=12 Then z=1:js=0
m=Val(Mid(my,z,1))
js=js+m
If ②Then n=js Else n=m
If c>=“0“And c<=“9“Then
h=CStr((Val(c)+n)Mod 10)
Elself c>=“A“And c<=“Z“Or c>=“a”And c<=“z“Then
t=Chr(Asc(c)+n Mod 26)
If c>=“A“And c<=“Z“Then
If Not (t>=“A“And t<=“Z“)Then h=Chr(Asc(t)-26)Else h=t
Else
If Asc(c)+n Mod 26>122 Then h=Chr((Asc(c)+n Mod 26)-26)Else h=t
End If
Else
h=c
End If
Text2.Text=Text2.Text+h
③
Next i
End Sub
請回答下列問題
(1)解密過程為加密過程的逆運算,即由密文字符向前推導n位尋找原字符,現已知密鑰為123,密文“WEjpq j”(無雙引號)對應的原文是 VBgoodVBgood。
(2)程序功能實現則代碼中劃線部分請填入合適代碼
①處代碼 c=mid(s,i,1)c=mid(s,i,1);②處代碼 i mod 2=0i mod 2=0;③處代碼 z=z+1z=z+1。
【考點】編輯事件處理過程的代碼.
【答案】VBgood;c=mid(s,i,1);i mod 2=0;z=z+1
【解答】
【點評】
聲明:本試題解析著作權屬菁優網所有,未經書面同意,不得復制發布。
發布:2024/6/27 10:35:59組卷:0引用:1難度:0.4
相似題
-
1.根據AQI值判斷城市的空氣質量。若城市的AQI值(整數)不超過100則空氣質量優良,否則空氣質量有污染。當輸入的AQI值為-1時則退出程序。不要更改程序結構,將題中的①②③④填入正確的語句。
city=input(“請輸入城市名:”)
AQI=int(input(“請輸入空氣質量指數AQI的值:”))
①______ AQI!=-1:
if ②______:
print(city,“的空氣質量優良?!保?br />③______:
print(city,“的空氣質量有污染?!保?br />city=input(“請輸入城市名:”)
AQI=④(input(“請輸入空氣質量指數AQI的值:”))
(1)序號①答案為
A.if
B.while
C.for
D.def
(2)序號②答案為
A.AQI>=100
B.AQI<=100
C.AQI>100
D.AQI<100
(3)序號③答案為
A.elif
B.break
C.if
D.else
(4)序號④答案為
A.int
B.float
C.str
D.else發布:2025/1/2 11:0:1組卷:0引用:0難度:0.4 -
2.一球從100米高度自由落下,每次落地后反跳回原高度的一半,再下落。編寫一個C程序,求它在第10次落地時,其經過了多少米?第10次反彈多高?
發布:2025/1/2 11:0:1組卷:1引用:3難度:0.3 -
3.利用海倫公式求解三角形面積。已知a,b,c為三角形的三條邊長,p為三角形的半周長,即p=(a+b+c)/2,計算此三角形面積S的海倫公式為:
。不要更改程序結構,將題中的①②③填入正確的語句。
import math#導入數學模塊
def hl(a,b,c):#定義求三角形面積的函數
p=①
s=math.jye.ai(②)#sqrt用于計算算術平方根
return ③#返回面積的值
a,b,c=3,4,5#邊長依次賦值
print(“此三角形的面積S為:“,hl(a,b,c))
A. (a+b+c)/2 B.p*(p-a)*(p-b)*(p-c)
C. (a+b+c)*2 D.s
(2)序號②答案為
A.(a+b+c)/2 B.p*(p-a)*(p-b)*(p-c)
C.(a+b+c)*2 D.(3+4+5)/2
(3)序號③答案為
A.p B.s
C.p*(p-a)*(p-b)*(p-c) D.0發布:2025/1/2 11:0:1組卷:0難度:0.4