某信息加密程序,對輸入的明文(由英文字母或數字組成的字符串)進行加密,輸出加密后得到的密文。
數據加密方法為對明文中的每個字符進行如下處理:
1)將該字符的ASCII碼轉換成對應的8位二進制;
2)將對應的8位二進制數進行按位取反(1變0,0變1);
3)將產生的8位二進制數循環(huán)左移3次;
4)最后產生的8位二進制數轉換成對應的十六進制數。
例如,明文大寫字母“A”通過上述算法加密算法加密后生成的密文是“F5”,信息加密過程如圖a所示。小李編寫了加密算法的VB程序,在文本框Text1中輸入明文,單擊“生成密文”按鈕Command1,程序對明文數據依次進行加密處理,加密后生成的密文顯示在文本框Text2中。程序運行界面如圖b所示。
(1)如果輸入明文為大寫字母“F”,則生成的密文是 CDCD。
(2)實現上述功能的VB程序如下。請在橫線處填入合適代碼。
Function btoh(m As String) As String'將4位二進制數轉換成對應的十六進制數
Dim s As Integer,i As Integer
Dim str As String
str=“0123456789ABCDEF“
s=0
For i=1To 4
s=s*2+Val(Mid(m,i,1))
Next i
①both=Mid(str,s+1,1)both=Mid(str,s+1,1)
End Function
Private Sub Command1_Click ( ?。?br />Dim ans As String,s As String,ch As String,ret As String
Dim i As Integer,asc1As Integer,n As Integer
s=Text1.Text
ans=““
For i=1To Len(s)
ch=Mid(s,i,1)'取出第i個字符存入變量ch
asc1=Asc(ch)
ret=““
For m=1To 8'完成加密步驟1)和步驟2)
n=(asc1+1)mod 2
ret=n+ret
②asc1=asc1\2asc1=asc1\2
Next m
ret=Mid(ret,4,5)+Mid(ret,1,3)'完成加密步驟3)和步驟4)
s1=btoh(Mid(ret,1,4))
s2=btoh(Mid(ret,5,4))
ans=ans+s1+s2'將第i個加密后的字符添加到變量ans的末尾
Next i
Text2.Text=ans
End Sub
【考點】編輯事件處理過程的代碼.
【答案】CD;both=Mid(str,s+1,1);asc1=asc1\2
【解答】
【點評】
聲明:本試題解析著作權屬菁優(yōu)網所有,未經書面同意,不得復制發(fā)布。
發(fā)布:2024/6/27 10:35:59組卷:2引用:1難度:0.4
相似題
-
1.一球從100米高度自由落下,每次落地后反跳回原高度的一半,再下落。編寫一個C程序,求它在第10次落地時,其經過了多少米?第10次反彈多高?
發(fā)布:2025/1/2 11:0:1組卷:0引用:3難度:0.3 -
2.根據AQI值判斷城市的空氣質量。若城市的AQI值(整數)不超過100則空氣質量優(yōu)良,否則空氣質量有污染。當輸入的AQI值為-1時則退出程序。不要更改程序結構,將題中的①②③④填入正確的語句。
city=input(“請輸入城市名:”)
AQI=int(input(“請輸入空氣質量指數AQI的值:”))
①______ AQI!=-1:
if ②______:
print(city,“的空氣質量優(yōu)良?!保?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發(fā)布:2025/1/2 11:0:1組卷:0引用:0難度:0.4 -
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發(fā)布:2025/1/2 11:0:1組卷:0難度:0.4
把好題分享給你的好友吧~~