题库 高中信息

题干

李雷收到了朋友发给他的一封奇怪的邮件,里面有段内容是由一些数字和符号组成。信上面说,这段内容是加密后的内容,并给出了具体加密方法(假定原文的英文字母都是大写的),具体方法如下:
(1)“A”变为一个1到100内的随机整数×27+1,“B”变为一个1到100内的随机整数×27+2,……,“Z”变为一个1到100内的随机整数×27+26;
(2)每个字母变为数字后会加上一个“-”用来分隔数字;
(3)其他空格和标点字符都按原文表示。
 
李雷利用VB编写了一个解密程序,功能如下:将邮件中密文的内容复制到文本框Text1中,点击“解密”按钮Command1后,程序将解密后的内容显示在文本框Text2中。
(1)实现上述功能的VB程序如下,请在划线处填入合适的代码。
(2)根据描述,若密文为“1905-1442-” ,则表示的是________________。
Private Sub Command1_Click()
Dim s As String, yw As String, t As String
Dim value As Integer    
s=Text1.Text
value=0
yw=""
For i=1 To Len(s)
___________________    ‘① 
If t>="0" And t<="9" Then 
value=value*10+Val(t)

ElseIf t="-" Then 

  yw=yw+Chr(Asc("A")+value Mod 27-1)

   ____________________   ‘② 
Else
___________________ ‘③ 
End If
Next i
Text2.Text=yw
End Sub
上一题 下一题 0.99难度 填空题 更新时间:2019-05-22 04:40:26

答案(点此获取答案解析)

同类题3

在数组a中按顺序找出一组升序子序列,可以不连续,但要求长度最长。例如:数组a的值分别为2,11,4,13,5,7。升序子序列分别有2,11、2,4、2,11,13、2,4,13、2,4,5、
2,4,5,7、11,13、4,13、4,5、4,5,7、5,7,其中最长升序子序列的数据是2,4,5,7。

算法思路如下:

(1)求以a(i)为结尾元素的最长升序子序列时,找到所有序号j(j=1,2……i-1),且a(j)<a(i)。

如果这样的元素存在,且d(j)>=d(i)(d(i)记录i位置的最长升序子序列长度),那么就增加i位置的最长升序子序列长度,并记录该升序子序列倒数第二个位置。

(2)在d数组中找出最大值,即最长升序子序列长度。

(3)例如,2、11、4、13、5、7,d(1)=1,d(2)=2,d(3)=2,d(4)=3,d(5)=3,d(6)=4,所以最长升序子序列长度为4,是以a(6)为结尾元素。

现设计了如下VB程序,界面如图所示,请回答下列问题:


(1)观察上图,最长升序子序列的数据是____________________________。
(2)请在划线处填入合适的代码。
Const n = 9
Dim a(1 To n) As Integer
Private Sub Form_Load()

‘生成n个1,10范围的随机数,存储在a数组,并显示在列表框List1。代码略

End Sub
Private Sub Command1_Click()
Dim d(1 To n) As Integer ‘记录i位置的最长升序子序列长度
Dim pre(1 To n) As Integer ‘记录i结尾的最长升序子序列前一数据的位置
Dim st As String,i As Integer,k As Integer,maxlen As Integer
For i = 1 To n

d(i) = 1

Next i
For i = 2 To n

For j = 1 To i-1

If a(j) < a(i) And d(j) >= d(i) Then
d(i) = ___________ 
pre(i) = j
End If

Next j

Next i
maxlen = 0:k = 0
For i = 1 To n

If ___________ Then maxlen = d(i):k = i

Next i
Do While k <> 0

st = a(k) & "," & st

_____________

Loop
Text1. Text = Mid(st,1,Len(st)-1)
End Sub