ROI-13(回轉(zhuǎn)13位)是一種簡(jiǎn)易的替換式密碼,編碼解碼規(guī)則相同,針對(duì)英文字母,僅僅只需要檢查字母順序并用13位后的對(duì)應(yīng)字母取代它,超過時(shí)則重新繞回26個(gè)英文字母開頭即可。即A換成N、B換成O,以此類推到M換成Z,然后序列反轉(zhuǎn);N換成A、O換成B……
小明決定以ROT-13為基礎(chǔ)制定新的ROT-n,即每次回轉(zhuǎn)不是13位,而是n位。因此他引入了11位數(shù)字密鑰和字符位置來計(jì)算n的值,并擴(kuò)大加密范圍,使得大小寫字母和數(shù)字都能加密,從而達(dá)到加密效果增強(qiáng)的目標(biāo)。具體規(guī)則如下:
(1)字符在奇數(shù)位置上n的值即當(dāng)前對(duì)應(yīng)密鑰值,偶數(shù)位置上n的值為當(dāng)前段密鑰中已經(jīng)出現(xiàn)的所有數(shù)字之和。
(2)數(shù)字字符在“0”到“9”之間回轉(zhuǎn),即超過“9”部分返回“0”開始繼續(xù)計(jì)算:大寫字母在“A”到“Z”范圍內(nèi)回轉(zhuǎn),小寫字母在“a”到“z”范圍內(nèi)回轉(zhuǎn),其它字符不變。
程序代碼如下
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
請(qǐng)回答下列問題
(1)解密過程為加密過程的逆運(yùn)算,即由密文字符向前推導(dǎo)n位尋找原字符,現(xiàn)已知密鑰為123,密文“WEjpq j”(無雙引號(hào))對(duì)應(yīng)的原文是 VBgoodVBgood。
(2)程序功能實(shí)現(xiàn)則代碼中劃線部分請(qǐng)?zhí)钊牒线m代碼
①處代碼 c=mid(s,i,1)c=mid(s,i,1);②處代碼 i mod 2=0i mod 2=0;③處代碼 z=z+1z=z+1。
【考點(diǎn)】編輯事件處理過程的代碼.
【答案】VBgood;c=mid(s,i,1);i mod 2=0;z=z+1
【解答】
【點(diǎn)評(píng)】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書面同意,不得復(fù)制發(fā)布。
發(fā)布:2024/6/27 10:35:59組卷:0引用:1難度:0.4
相似題
-
1.一球從100米高度自由落下,每次落地后反跳回原高度的一半,再下落。編寫一個(gè)C程序,求它在第10次落地時(shí),其經(jīng)過了多少米?第10次反彈多高?
發(fā)布:2025/1/2 11:0:1組卷:0引用:3難度:0.3 -
2.根據(jù)AQI值判斷城市的空氣質(zhì)量。若城市的AQI值(整數(shù))不超過100則空氣質(zhì)量?jī)?yōu)良,否則空氣質(zhì)量有污染。當(dāng)輸入的AQI值為-1時(shí)則退出程序。不要更改程序結(jié)構(gòu),將題中的①②③④填入正確的語句。
city=input(“請(qǐng)輸入城市名:”)
AQI=int(input(“請(qǐng)輸入空氣質(zhì)量指數(shù)AQI的值:”))
①______ AQI!=-1:
if ②______:
print(city,“的空氣質(zhì)量?jī)?yōu)良?!保?br />③______:
print(city,“的空氣質(zhì)量有污染?!保?br />city=input(“請(qǐng)輸入城市名:”)
AQI=④(input(“請(qǐng)輸入空氣質(zhì)量指數(shù)AQI的值:”))
(1)序號(hào)①答案為
A.if
B.while
C.for
D.def
(2)序號(hào)②答案為
A.AQI>=100
B.AQI<=100
C.AQI>100
D.AQI<100
(3)序號(hào)③答案為
A.elif
B.break
C.if
D.else
(4)序號(hào)④答案為
A.int
B.float
C.str
D.else發(fā)布:2025/1/2 11:0:1組卷:0引用:0難度:0.4 -
3.利用海倫公式求解三角形面積。已知a,b,c為三角形的三條邊長(zhǎng),p為三角形的半周長(zhǎng),即p=(a+b+c)/2,計(jì)算此三角形面積S的海倫公式為:。不要更改程序結(jié)構(gòu),將題中的①②③填入正確的語句。
import math#導(dǎo)入數(shù)學(xué)模塊
def hl(a,b,c):#定義求三角形面積的函數(shù)
p=①
s=math.jye.ai(②)#sqrt用于計(jì)算算術(shù)平方根
return ③#返回面積的值
a,b,c=3,4,5#邊長(zhǎng)依次賦值
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)序號(hào)②答案為
A.(a+b+c)/2 B.p*(p-a)*(p-b)*(p-c)
C.(a+b+c)*2 D.(3+4+5)/2
(3)序號(hào)③答案為
A.p B.s
C.p*(p-a)*(p-b)*(p-c) D.0發(fā)布:2025/1/2 11:0:1組卷:0引用:0難度:0.4