计算机在存储数字字符时,1个字符占1个字节(8位),现在有如下算法可以对数字字符的存储进行压缩:以每2个数字字符为一组,将其组成一个两位的十六进制数(如输入的“41”组成十六进制数41H),再转换为对应的ASCII字符进行存储。(注意:ASCII的最大值为127D,所以2个数字字符为一组时,第1个字符必须小于8,否则不合法)
例如:
输入
输出
414243
ABC
758927
不合法
 
小波用Visual Basic 6. 0软件编写了一个压缩程序,功能如下:在文本框Text1中输入需压缩数据(偶数个字符),单击“压缩”按钮,程序对压缩数据依次进行压缩处理,压缩数据显示在文本框Text2中。程序运行界面如图所示:

(1)结合程序代码,命令按钮“压缩”的对象名是_________________
(2)为实现上述功能,请在程序划线处填入合适的代码。
Private Sub cm1_Click()
Dim s1 As String,s2 As String,c1 As String,c2 As String
Dim i As Integer,k As Integer
s1 = Text1. Text
For i = 1 To Len(s1) Step 2

c1 = Mid(s1,i,1)

______________

If c1 >= “8” Then

s2 = “不合法”
Exit For  ‘跳出For循环

Else

k = _____________
s2 = s2 + Chr(k) ‘ Chr函数的作用,将ASCII码转换为字符,例Chr(65) = “A”

End If

Next i
Text2. Text = s2
End Sub
(3)若在文本框Text1中输入“61A2”,单击“压缩”按钮后,变量i的值为_________(单选,填字母:
A.3 /B.4 /C.5 /D.程序错误)。
当前题号:1 | 题型:填空题 | 难度:0.99
能得到一个大于等于20且小于50的随机整数的VB表达式是( )
A.Int(rnd*50)-20B.Int(rnd*30)+20
C.Int(rnd*31)+20D.Int(rnd*30)+1
当前题号:2 | 题型:选择题 | 难度:0.99
在数组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
当前题号:3 | 题型:填空题 | 难度:0.99
小红编写了一个将5位以内的十六进制正整数转换成十进制数的VB程序,功能如下:在文本框Text1中输入一个十六进制正整数,单击“转换”按钮Command1,在标签Label3中显示结果。程序运行界面如图所示。

(1)要使窗体Form1标题显示“数制转换”,则需修改窗体的________(单击,填字母:A.Font/B.Caption/C.BackColor)属性。
(2)实现上述功能的VB程序如下,请在划线处填入合适代码。
Private Sub Command1_Click()
Dim x As String, ch As String
Dim flag As Boolean, i As Integer, result As Long
x=_________
i=1
result=0
flag=True
ch=Mid(x,1,1)
Do While i <=Len(x) And flag=True
If ch>= “0” And ch<= “9” Then
result=result * 16+Val(ch)
ElseIf ch>= “A” And ch <= “F” Then
result=result * 16+(Asc(ch)-Asc (“A”)+10)
ElseIf ch>= “a” And ch <= “f” Then
result=result * 16+(Asc(ch)-Asc (“a”)+10)
Else
flag=False
End If
i=i+1
ch=_________

Loop

If flag=True Then

Label3.Caption=Str(result)

Else

Label3.Caption= “输入错误”

End If

End Sub
(3)若在文本框Text1中输入5+9,单击“转换”按钮后,标签Label3中显示的内容是______(单选,填字母:A.14/B.E/C.输入错误)。
当前题号:4 | 题型:填空题 | 难度:0.99
在一个数字字符串中,求最长连续递增序列的长度。例如,字符串“123423416789”,最长的递增序列为“16789”,长度为5。编写一个程序,功能如下:在文本框Text1中输入数字字符串,单击“计算”按钮Command1,在标签Label3中显示最长连续递增序列的长度。程序设计界面与运行界面如图所示。

(1)要使程序运行时,按钮Command1上的文字显示为“计算”,可在___________事件过程中添加语句Command1. Caption="计算"。
(单选,填字母:
A.Command1_Click /B.Form_Load /C.Command1_DblCkick)。
(2)实现上述功能的VB程序如下,请在划线处填入合适代码。
PrivateSubCommand1_Click()
Dim s As String,max As Integer
Dim t As Integer,I As Integer
max=0:t=1
s=Text1. Text
i=1
Do While i <= Len(s)-1

If Val(Mid(s,i,1)) < ___________Then

t=t+1

Else

If t > max Then max = t
______________
End If
i=i+1

Loop

 
If t > max Then max = t

Label3. Caption = Str(max)

End Sub
(3)如果删除加框处代码,并运行程序,在文本框Text1中输入“123423416789”,单击“计算”按钮,则标签框Label3中显示的内容为__________________。
当前题号:5 | 题型:填空题 | 难度:0.99
产生一个在[10,99]中随机整数的VB表达式是(  )
A.Int (Rnd * 99)B.10 + Int (Rnd * 99)
C.10 + Int (Rnd * 89)D.10 + Int (Rnd * 90)
当前题号:6 | 题型:选择题 | 难度:0.99
(加试题)数字个数统计。编写VB程序,实现如下功能:在文本框Text1中输入仅由ASCII码字符组成的字符串(长度不超过100),单击“数字统计”按钮Command1,在列表框List1中输出字符串中包含的不同数字及其相应的个数,程序运行效果如下图所示。

(1)为方便调试,要让程序每次运行时文本框Text1中的初始内容为“ab12*{}78ab12()778ab34”,应修改文本框Text1的________属性。
(2)实现上述功能的VB程序如下,请在划线处填入合适代码。
Private sub command1_click()
Dim a(0 to 9) as integer   ’数组元素a(i)中存放数字i的个数
Dim s as string , ch as string
Dim t as integer
For i=0 to 9
a(i)=0
next i
s=text1.text
for i=1 to len(s)
①____________    
if ch>=”0”and ch<=”9” then
t= ②________
a(t)= a(t)+1
end if
next i
list1.clear
for i=1 to 9
if  a(i)<>0   then
list1.additem  ”数字:”+str(i)+ ”,共有”+ str(a(i))+ ”个”
end if
next i
end sub
(3)与上述程序中加框处代码运行效果等价的条件表达式可以是________。
当前题号:7 | 题型:填空题 | 难度:0.99
下列表达式的值等于 25 的是(   )
A.Sqr(25)+25 Mod 10+15B.Len("20+5")
C.Abs(-26)+1D.Int(24.8)
当前题号:8 | 题型:选择题 | 难度:0.99
有一个单击按纽过程,其作用是产生50个60~100的随机数,统计其中被6整除余2的个数,并将这些数输出。请补充下面的程序:

Private Sub command1_click(   )

Dim X, N As Integer
Dim count As Integer   ' count用来保存能被6整除余2的数据的个数
Randomize Timer   ' 随机数初始化,以时钟为随机数种子

For N = 1 To 50

X = ___________ + int(Rnd * 40) ' 随机产生50个60~100的随机数

If  X Mod 6 = 2 Then

List1.AddItem Str(X)

_______________

End If

Next N

Label1.Caption = str (count)

End Sub

当前题号:9 | 题型:填空题 | 难度:0.99
设计一个VB程序,使其具有下列功能:在文本框Text1.Text输入字符串,单击“开始”按钮Command1,将输入的字符串中小写字母转换成大写字母后,在标签Label2中输出。界面设计如图所示。
 
(1)在应用程序界面设计时,要为窗口添加标题,需要修改图2所示的属性窗口中的____________项为“字符转换”。
(2)为实现上述功能, 请在划线处填入合适代码或选项。
Private Sub Command1_Click()
Dim ch As String, sh As String
Dim i As Integer, j As Integer
ch = Text1.Text
For i = 1 To _______ '从第一个字符到最后一个字符进行循环判断
j = Asc______________)   '(填字母:从下列A、B、C三个选项中选取一项)
If j > 96 And j < 123 Then
sh = sh + Chr(j - 32)
Else
sh = sh + Chr(j)
End If
_________ '(填字母:从下列A、B、C三个选项中选取一项)
Label2.Caption = sh
End Sub
划线②、③的选项:
A.  Next iB.j+1C.Mid(ch, i, 1)
当前题号:10 | 题型:填空题 | 难度:0.99