(加试题)对 n 个互不相同的整数(整数的最大值不超过 m)进行排序,排序要求如下:①奇 数在前,偶数在后;②奇数升序排序;③偶数降序排序。小刘用 VB 编写了实现上述功能的程序。 程序运行时,自动产生 n 个不同的随机数存储在数组 a 中,并在列表框 List1 中显示。单击按钮 Command1 后,按要求在列表框 List2 中输出排序后的结果。

实现上述功能的 VB 程序如下,但加框处代码有错,请改正。
Const n = 15
Const m = 100   '整数的最大值
Dim a(1 To n) As Integer
Private Sub Form_Load
'本过程产生 n 个不同随机数存储在数组 a 中,并在列表框 List1 中显示
End Sub
Private Sub Command1_Click Dim i As Integer
Dim flag(1 To m) As Boolean   'flag(i) = True 代表数组 a 中存在值为 i 的元素
For i = 1 To m flag(i) = False
Next i
For i = 1 To n
flag(i) = True 
①________
Next i
For i = 1 To m-1 Step 2
If flag(i) Then List2.AddItem Str(i) Next i
For i =2 To m
②________
If flag(i) Then List2.AddItem Str(i) Next i
End Sub
当前题号:1 | 题型:填空题 | 难度:0.99
某算法部分流程图如图所示。流程执行时输入

x的值为12,那么输出的结果是( )
A.0100
B.1011
C.0-100
D.-6-3-1-1
当前题号:2 | 题型:选择题 | 难度:0.99
编写 VB 程序,实现如下功能:在文本框 Text1 中输入十进制数,文本框 Text2 中输入待转换进 制(范围 2~16),单击“转换”按钮 Command1,在列表框 List1 中输出该整数对应的进制转换结 果,运行效果如下图所示。

(1)要修改窗体中各对象字体为粗体,可选中对象后在属性窗口中设置________________属性。
(2)请在划线处填入合适的代码。
Private Sub Command1_Click
Const code = "0123456789ABCDEF" Dim s As String
Dim x As Long, r As Integer r = Val(Text2.Text)
If _____Then
x = Val(Text1.Text)
s = ""
Do While x > 0 y = x Mod r
x = x \ r
s =___
Loop
List1.AddItem "(" & Text1.Text & ")10" & "=(" & s & ")" & r
Else
MsgBox "请重新输入数据" End If
End Sub
(3)重新运行程序,若在文本框 Text1 中输入“255”,文本框 Text2 中输入“8”,单击“转换” 按钮后,列表框 List1 中显示的内容是_____。
当前题号:3 | 题型:填空题 | 难度:0.99
Visual Basic规定工程文件的扩展名是 (    )
A.vbw
B.frm
C.vbp
D.bas
当前题号:4 | 题型:选择题 | 难度:0.99
有如下程序段:
i = 1: j = 8: count = 0:
f = False
Key = Val(Text1.Text)
Do While i <= j
m = (i + j) \ 2

If a(m) = Key Then

count = count + 1
f = True
End If
If a(m) < Key Then
i = m + 1
Else
j = m - 1
End If Loop
数组元素 a(1)到 a(8)分别为 1,2,3,4,5,6,6,7,在 Text1 输入6,执行该程序段后,下 面 说法正确的是
A.f 的值为 FalseB.j 的值为 5C.count 的值为 2D.m 的值为 6
当前题号:5 | 题型:选择题 | 难度:0.99
有如下程序段:
Dim a(1 To 6) As Integer
a(1) = 33: a(2) = 24: a(3) = 45: a(4) = 16: a(5) = 77: a(6) = 8
For i = 1 To 3
For j = 5 To i + 1 Step -1
If a(j - 1) > a(j) Then t = a(j - 1): a(j - 1) = a(j): a(j) = t
Next j

If j Mod 2 = 0

Then i = i+ 1

Next i

执行该程序段后,a(1)到 a(6)分别为
A.8  33  16  24  45  77
B.8  16  24  33  45  77
C.16 33 24 45 77 8
D.16 24 33 45 77 8
当前题号:6 | 题型:选择题 | 难度:0.99
两个10 进制大整数相加可以用数组的方法逐位相加来实现,小王同学制作了如图的 VB 程序,以实现求2个50 位以内的10进制整数的和。

(1)根据程序代码,该事件过程名为____。
(2)把代码补充完整。
Private Sub Command1_Click()
Dim a(1 To 51) As Integer, b(1 To 51) As Integer, c(1 To 51) As Integer
Dim lens1 As String, lens2 As String
lens1 = Len(Text1.Text) :lens2 = Len(Text2.Text)
For i = Len(Text1.Text) To 1 Step -1   ‘读取数据,逐位保存在数组中
a(i) = Mid(Text1.Text, lens1 - i + 1, 1)
Next i
For i = Len(Text2.Text) To 1 Step -1
b(i) = Mid(Text2.Text, lens2 - i + 1, 1)
Next i
For i = 1 To 51    ‘从个位到高位逐位求和
c(i) =_______________ 
If c(i) > 9 Then
c(i) = c(i) - 10
c(i + 1)=__________________ 
End If
Next i
f = False  '从左到右输出第一个不为 0 的元素开始从高位到低位输出和 For i = 51 To 1 Step -1
If c(i) <> 0 Then f = True

If f

Then Text3.Text = Text3.Text & c(i)

Next i

End Sub
(3)第 14 题图中,为了使 Text1 和 Text2 文本框在 Form1 界面上能够左对齐,需要更改 Text1 的 Left 属性,则可以在 Form_Load()中添加代码 Text1.Left=__________
当前题号:7 | 题型:填空题 | 难度:0.99
某同学编写了一段模仿 Excel 的 Rank 排位函数 VB 程序,运行界面如图。 程序功能如下:程序运行后 先自动生成 1000 个取值范围在 [1, 100]的随机数(保留两位小数) 并显示在 List1 中,在 Text1 和 Text2 中输入排序范围的起始位置和结束位置,在 b(i)中存储 a(i) 在该范围中的排位,并输出排位到列表框 List2, 实现上述功能的 VB 程序如下,但加框处代码 有错,请改正。
Dim a(1 To 1000) As Single, b(1 To 1000) As Integer Private Sub Form_Load()
Randomize '生成 1000 个随机数 For i = 1 To 1000
   a(i) = ((Rnd * 99 + 0.05) * 1000 \ 10) / 100 + 1   '产生随机数,保留二位小数
b(i) = 1 '初始排位为 1
  List1.AddItem "a(" & i & ")=" & a(i) Next i
End Sub
Private Sub Command1_Click()
Dim ks As Integer, js As Integer ks = Val(Text1.Text) 
js = Val(Text2.Text) For i = ks To js
For j = ks To js
    If a(j) < a(j-1) Then b(i) = b(i) + 1
Next j
List2.AddItem "a(" & i & ")" & "在 a(" & ks & ")~a(" & js & ")中排位为" & b(i) Next i
End Sub
当前题号:8 | 题型:填空题 | 难度:0.99
用VB编程实现累加器,其功能如下:在文本框Text1中输入数字,中间用“,”隔开,单击命令按钮Command1后,其计算结果输出在标签框Label1中。运行界面如图所示,VB程序代码如下。

实现上述功能的VB程序如下,请回答下列问题:
(1)观察运行界面,该窗体中共有________个对象。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim ans As Integer, t As String, ch As String
Dim i As Integer,s As String
s = Text1.Text
t = "" : ans=0
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ch = "," Then
ans = ①________
t = ""
Else
t = ②________
End If
Next i
Label1.Caption = "累加的结果是:" & Str(ans)
End Sub
(3)如图,若输入的“,”用“;”来代替,输入保持不变,则输出为_______________ 。
当前题号:9 | 题型:填空题 | 难度:0.99
小王用VB编写一个自动统计英文字母和单词个数的程序。功能如下:在文本框Text1中输入任意的英文句子,单击 “统计”命令按钮Command1,程序自动统计出每个字母出现的频率,并将其输出到列表框List1,且将出现次数最多的字母输出在标签Label1中,另外将单词个数在标签label2中输出。程序界面如图所示,实现上述功能的VB程序如下。请回答以下问题:

(1)请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim a(65 To 122) As Integer
Dim i As Integer, ch As String, count As Integer
Dim Max As Integer, Maxi As Integer, flag As Boolean
List1.Clear
flag = False
count = 0
s = Text1.Text
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ch>= "a" And ch<= "z" Or ch>= "A" And ch<= "Z" Then
a(Asc(ch)) = ①________
If flag = False Then
count = count + 1
flag = True
End If
Else
②________
End If
Next i
Max = 0: Maxi = 0
For i = 65 To 122 ’A的ASCII码值为65,a的ASCII码值为97
If a(i) > 0 Then
List1.AddItem Chr(i) + ":  " + Str(a(i))
End If
If a(i) > Max Then
Max = a(i)
Maxi = i
End If
Next i
Label1.Caption = "频率最高字母:" + ③________
Label2.Caption = "共有单词数:" + Str(count) + "个"
End Sub
(2)从代码可知,当出现两个以上的字母次数最高时(例如字母a和d都出现4次,且为最高次数),则程序最终输出的是________(单选,填写字母:
A.排在前面的第一个频率最高字母/B.中间的某个频率最高字母/C.排在最后的一个频率最高字母/D.无法确定)。
当前题号:10 | 题型:填空题 | 难度:0.99