编写输出所有字符串子串的VB程序,实现如下功能:在文本框Text1中输入一串不重复的字符串,单击命令按钮“子串”Command1后,在列表框List1中输出该字符串的所有子串和子串的总数。程序运行界面如图所示,VB程序代码如下。

程序代码中,语句加框处有错,请改正。
Private Sub Command1_Click()
Dim s As String, sum As Integer
Dim i As Integer, j As Integer
List1.Clear
s = Text1.Text
n = len(s)
sum = 1     ’(1)________
For i = 1 To n
For j = 1 To n-i+1
List1.AddItem Mid(s,i,j) ’(2)________
sum = sum + 1
Next j
Next i
List1.AddItem "总共有" + Str(sum)  + "个子串"
End Sub
当前题号:1 | 题型:填空题 | 难度:0.99
玫瑰花数是一个四位正整数,该数每一位上的数字4次方之和等于它本身。如:1634=14+64+34+44,小张设计VB程序用于找出所有可能的玫瑰花数,程序运行界面如下图所示。

(1)在窗体中要显示玫瑰花图像(文件名为flower.bmp),需添加图像框image1,并设置其________属性(单选,填字母:
A.Image/B.Pictrue/C.Caption/D.Text)的值为“flower.bmp”。
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim sum As Integer, a As Integer, b As Integer
Dim i As Integer, c As Integer, d As Integer
List1.Clear
sum = 0     '玫瑰花个数
For i = 1000 To 9999
a = i Mod 10  '求个位上的数字
b =  ①______  '求十位上的数字
c = i \ 100 Mod 10 '求百位上的数字
d = i \ 1000  '求千位上的数字
If a ^ 4 + b ^ 4 + c ^ 4 + d ^ 4 = i Then
List1.AddItem Str(i)
②________
End If
Next i
Label1.Caption = "玫瑰花个数为:" + Str(sum)
End Sub
(3)解决该问题主要采用的算法是________
当前题号:2 | 题型:填空题 | 难度:0.99
(加试题)小王编写了一个依据成绩计算名次的VB程序,成绩为0到100之间的整数。算法的基本思想:先统计每个分数的个数,然后按照分数从高到低依次计算每个有效分数(该分数的个数不为0)对应的名次,分数相同时名次并列。最高分为第1名,该分数的名次与个数之和为下一个有效分数的名次,以此类推。程序用数组A存放每个分数对应的个数,数组B存放每个分数对应的名次。例如,下表中最高分100有2个,并列第1名,则分数96的名次为分数100的名次加上分数100的个数,即第3名。
分数
100
99
98
97
96
95
94

0
个数(A数组)
2
0
0
0
1
0
3

0
名次(B数组)
1
 
 
 
3
 
4

 
 
程序运行时,学生数据显示在列表框List1中,单击“计算”按钮Command1,计算结果显示在列表框List2中,程序运行界面如图所示。

实现上述功能的VB程序如下,请回答下列问题:
(1)如上表所示,若分数93的个数为2,则该分数对应的名次为_____________。
(2)请在划线处填入合适的代码。
Dim sName(1 To 50) As String '存放学生姓名
Dim sScore(1 To 50) As Integer    '存放学生分数
Dim recCount As Integer   '存放学生人数
Private Sub Form_Load()
'本过程从数据库中读取学生数据,存储在相应的变量中,并在List1中显示
'代码略
End Sub
'整数转换成长度固定的字符串
Function ads(x As Integer, n As Integer) As String
Dim sx As String, nx As Integer, i As Integer
sx =" Str(x):" nx = Len(sx)
For i =" 1" To n - nx
sx = " " + sx
Next i
__________①
End Function
Private Sub Command1_Click()
Dim A(0 To 100) As Integer    '存放每个分数的个数
Dim B(0 To 100) As Integer   '存放每个分数的名次
Dim mc As Integer, score As Integer, i As Integer
For i =" 0" To 100
A(i) = 0
Next i
For i =" 1" To recCount '计算每个分数的个数
___________②
Next i
mc = 1
For i =" 100" To 0 Step -1  '计算每个分数的名次
If A(i) <> 0 Then
B(i) = mc
___________③
End If
Next i
List2.Clear
List2.AddItem " 姓名  分数  名次 "
List2.AddItem " ---------------- "
For i =" 1" To recCount
score = sScore(i)
mc = B(sScore(i))
List2.AddItem sName(i) + ads(score, 5) + "第" + ads(mc, 3) + "名"
Next i
End Sub
当前题号:3 | 题型:填空题 | 难度:0.99
(二进制转十六进制)从文本框 TextB 输入一串不带符号位的二进制整数,单击“转换”按钮,将二进制转换为十六进制并显示在文本框 TextH 中。程序界面如图所示:

转换方法:先从右往左将二进制数分割成 4 位一组,若最左边的一组不足4位,则用 0 将高位补足,然后将每 4 位二进制数转换为 1 位十六进制数。
(1)观察程序代码,可知“转换”按钮的对象名为____________。(单选,填字母:
A.TextB/ B.TextH/B.Command1/C.Convert/D.转换)
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Convert_Click()
Dim a(1 To 100) As Integer, temp As Integer
Dim s As String, res As String, n As Integer, r As Integer
res = ""
s=TextB.text
n = Len(s)
For i = 1 To n
a(i) = Val(Mid(s, i, 1))
Next i
t = n \ 4
r =       
temp = 0
For i = 1 To r '将最高的 r 位转换为十六进制
      
Next i
If temp > 9 Then
res = Chr(temp + 55)
ElseIf temp > 0 Then
res = CStr(temp) ‘Cstr()函数用于将数值转换为字符串,同时删除前导空格
End If
For i = 1 To t '将t组4位二进制转换为十六进制
Temp=0
For j=1 to 4
temp = temp+a(j+r+4*(i-1))*2^(4-j)
Next j
If temp > 9 Then
res = res + Chr(temp + 55)
Else
res = res + CStr(temp)
End If
Next i
TextH.Text = res
End Sub
第①处代码为______________________________________________ 
第②处代码为______________________________________________    
(3)若在文本框 TextB 中输入“101000111”,则单击”转换”按钮后的输出结果为:_________。
当前题号:4 | 题型:填空题 | 难度:0.99
(加试题)在Excel中可采用双关键字排序,即先按主关键字排序,如主关键字相同再按次要关键字排序。小王学习了冒泡排序后,编写了一个VB程序模拟该排序过程。功能如下:在列表框 list1 中显示排序前数据(存储在数组 a、b 中),单击“排序”按钮 Command1 后,按主关键字数组 a 升序和次要关键字数组 b 升序排序,排序后的数据在列表框 list2 中显示。程序运行界面如图所示。
实现上述功能的 VB 程序如下,但加框处代码有错,请改正。

Const n = 10
Dim a(1 To n) As Integer,b(1 To n) As Integer
Private Sub Form_Load()
'各产生 10 个随机整数存数组 a、b,并在列表框 list1 中显示,代码略。
End Sub
Private Sub command1_Click()
Dim i As Integer, j As Integer
i = 1
Do While i <= n - 1
   ① 
Do While j >= i + 1
If a(j) < a(j - 1) Then
temp = a(j): a(j) = a(j - 1): a(j - 1) = temp
temp = b(j): b(j) = b(j - 1): b(j - 1) = temp

temp = a(j): a(j) = a(j - 1): a(j - 1) = temp
temp = b(j): b(j) = b(j - 1): b(j - 1) = temp
End If
j = j - 1  
Loop
i = i +1
Loop
For i = 1 To n
List2.AddItem Str(a(i)) + "  " + str(b(i))
Next i
End Sub
处代码改为______________________________________________ 
处代码改为______________________________________________
当前题号:5 | 题型:填空题 | 难度:0.99
在平面坐标系中,给定一组有序的点。从原点出发,依次用线段连接这些点,构成一条折线。要求编写一个“计算折线长度”的程序,功能如下:在文本框Text1中依次输入这些点的坐标值(数据都用逗号分隔并以逗号结尾),单击“计算”按钮Cmd后,程序计算这条折线的长度,结果显示在Label1中。例如,三个点的坐标(5,10)、(8,12)、(6,17)输入格式如图所示。

(1) Cmd对象属于______类。
(单选,填字母:
A.Form /B.Label /C.TextBox /D.CommandButton )
(2)实现上述功能的VB程序如下,请在划线处填入合适代码。
Private Sub Cmd_Click()
Dim i As Integer,j As Integer,k As Integer
Dim x1 As Single,y1 As Single,x2 As Single,y2 As Single
Dim d As Single,Totald As Single,v As Single,s As String
s =______
x1 =" 0:" y1 = 0'出发点为坐标原点
k =" 1" : j =" 1" : Totald = 0
For i =" 1" To Len(s)
If Mid(s,i,1) =","Then
v =" Val(Mid(s,j,i" - j))'提取坐标值,保存在变量v中
j =" i" + 1
If Then
x2 = v
Else
y2 = v
d =" Sqr((x2" — x1)^2 + (y2 — y1)^ 2)
Totald =" Totald" + d
x1 =" x2" : y1 = y2
End If
k =" k" + 1
End If Next i
Label1. Caption = Str(Totald)
End Sub
(3) 运行该程序,输入数据如上图所示,程序执行到循环结束时,变量k的值为______。
当前题号:6 | 题型:填空题 | 难度:0.99
某VB程序的一个事件过程如下:
Private Sub Command1_Click()
Dim a, b, h As Single
Dim v As Double
a = Val(Text1.Text)
b = Val(Text2.Text)
c= Val(Text3.Text)
v = a * b * h
label1.Caption = "长方体体积为:" + Val(v)
End Sub
运行程序,单击命令按钮command1后弹出如图所示的出错提示,引起该错误的语句是:
A.Dim a, b, h As SingleB.a = Val(Text1.Text)
C.v = a * b * hD.label1.Caption = "长方体体积为:" + Val(v)
当前题号:7 | 题型:选择题 | 难度:0.99
调试如下VB程序段,出现如图所示的错误信息。

For i = 1 To 10
If d(i) >= 0 Then
t=t+1
List1.AddItem Str(d(i))
Else
t=t-1
List2.AddItem Str(d(i))
Next
则该程序段出错的原因是缺少了(    )
A.NextB.iC.ForD.End If
当前题号:8 | 题型:选择题 | 难度:0.99
字符串中任意个连续的字符组成的子序列称为该字符串的子串,如字符串“123” 的子串有“1”、“2”、“3”、“12”、“23”、“123”。输出字符串s所有子串的VB程序段如下:
s = Text1.Text
List1.Clear
len1 = Len(s) ‘①
For i = 1 To len1 ‘②   
For j = 1 To len1- i   ‘③   
List1.AddItem Mid(s, j, i)  ‘④
Next j
Next i
运行时发现未输出所有子串,则修改(   )
A.①处所在行的语句为len1= Len(Text1.text)
B.②处所在行的语句为For i= 1 To len1+ 1
C.③处所在行的语句为For j= 1 To len1+ 1    - i
D.④处所在行的语句为List1.AddItem Mid(s, i, j)
当前题号:9 | 题型:选择题 | 难度:0.99
调试运行计算机程序的目的是
A.编写程序B.设计算法
C.分析问题D.检查程序的可行性
当前题号:10 | 题型:选择题 | 难度:0.99