"计算计件工资"的 Visual Basic 程序运行界面如图所示,单击"计算"命令按钮 Command1,触发的事件处理过程名是(   )
A.Command1_ClickB.Text1_ClickC.Form_ClickD.Label3_Click
当前题号:1 | 题型:选择题 | 难度:0.99
对于 Visual Basic 语句 If b=2 Then s=s*2 Else s=s/2,下列说法正确的是(   )
A.b=2 为赋值语句
B.s=s*2 和 s=s/2 均为赋值语句
C.s=s*2 和 s=s/2 均为关系表达式
D.s=s*2 为关系表达式,s=s/2 为赋值语句
当前题号:2 | 题型:选择题 | 难度:0.99
在Visual Basic中,语句x="123"所定义的变量x属于(    )
A.整数型B.单精度实数型C.字符串型D.长整数型
当前题号:3 | 题型:选择题 | 难度:0.99
(加试题)某对分查找算法的 VB 程序段如下:
L = 1: R = 10: Key = 21
Do While L <= R
m = (L + R) \ 2
If a(m) <= Key Then
L = m + 1
Else
R = m - 1
End If
Loop
数组元素 a(1)到 a(10)的值依次为“ 3, 9, 21, 21, 21, 21, 27, 28, 39, 40”,执行该程序段,变量 R、 a(R)的值分别是(    )
A.2, 9B.3, 21C.6, 21D.7, 27
当前题号:4 | 题型:选择题 | 难度:0.99
(加试题)某VB程序功能:输入正整数n,单击命令按钮Command1后,则会衍生出一串有规律的数字,形式为“1 2 3…n-1 n n-1…3 2 1 ”。例如n=6时,显示的数字串为“1 2 3 4 5 6 5 4 3 2 1 ”。
Private Sub Command1_Click()
Dim a As intger, i As intger, s As String
n = Val(Text1.Text)
s = ""
For i = 1 To 2 * n - 1
If i > n Then   Else    
Next i
text2.Text = s
End Sub
为实现以上功能,①②处分别填写(    )
A.①s=Str(2*n-i)    ②s=Str(i)B.①s=s+Str(2*n-i)  ②s=s+Str(i)
C.①s=s+Str(2*n-1)  ②s=s+Str(2*n)D.①s= Str(2*n-1)   ②s= Str(2*n)
当前题号:5 | 题型:选择题 | 难度:0.99
(加试题) 有一组正整数,要求对其中的数据进行排列, 排列后奇数在前, 偶数在后。 其中最后一个数据排到奇数与偶数交接处;自前到后的第一个偶数排到最后一个位置,空出的位置排列自后向前的第一个奇数,依此类推。 排序示例如下。

实现上述功能的 VB 程序如下,但加框处代码有错,请改正。
Const n = 10
Dim a(1 To n) As Integer
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim temp As Integer, flag As Boolean
'读取一组正整数,存储在数组 a 中,代码略
i = 1: j = n
temp = a(j): flag = True
Do While i < j
If flag Then
If a(i) Mod 2 = 0 Then
a(j) = a(i)
j = j - 1
flag = Not flag
Else
'⑴__________________
End If
Else
If a(j) Mod 2 = 1 Then
a(i) = a(j)
flag = Not flag
Else
j = j - 1
End If
End If
Loop
   '⑵____________________
'依次输出排序后的数据,代码略。
End Sub
当前题号:6 | 题型:填空题 | 难度:0.99
(加试题)n堆金币,把两堆金币合并到一起,n堆金币经过n-1次合并之后就只剩下一堆了。如何消耗最少的体力,把这n堆金币合并成一堆?合并所消耗的体力等于每次合并两堆金币的重量之和。比如,n=3时表示共有3堆金币,每堆重量分别是2、1、9.一种合并方案是2和9合并,新堆重量是11,消耗体力为11;接着11和1合并,新堆重量是12,消耗体力为12,因此总消耗体力是11+12=23。另一种方案是:1和2合并,新堆重量是3,消耗体力为3;接着3和9合并,新堆重量是12,消耗体力为12,因此总消耗体力是3+12=15。可以证明这就是最少消耗体力。
 
小张经分析,每次n堆金币如果都是从小到大,将前两堆合并成新一堆,然后,继续进行从小到大排序,如此合并成最后一堆,此时消耗体力最少,为此他编写了一个解决上述问题,求最少体力的VB程序,功能如下:窗体加载时,自动读取n堆金币的数据,依次存储在数组元素a(1)、a(2)、a(3)…中,金币堆数存储在变量n中,n堆金币的重量数据显示在列表框List1中。单击“求解”按钮Command1,程序对n堆金币进行合并处理,消耗最少的体力显示在文本框Text1中。程序运行界面如图所示。
(1)如果有5堆金币,每堆重量分别是12、8、5、9、15,则将这5堆金币合并成一堆金币,最少消耗体力是__________。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Const n = 10
Dim i As Integer, j As Integer, t As Integer
Dim a(1 To n) As Integer
Private Sub Form_Load()

'本过程用于读取n堆的数据并存储在数据a中

'代码略

End Sub
'sort(x)过程的功能是对a(x)、a(x+1)、……、a(n)中的数进行从小到大排序
Private Sub sort(x As Integer)

For i =__________To n - 1

For j = n To i + 1 Step -1

If a(j) < a(j - 1) Then

t = a(j): a(j) = a(j - 1): a(j - 1) = t

End If

Next j

Next i

End Sub
Private Sub Command1_Click()
Dim sum As Integer, k As Integer

sum = 0

sort (1)

For k = 1 To n - 1

a(k + 1) = a(k) + a(k + 1)

sum = sum +  ___________ 

sort (______)

Next k

Text1.Text = Str(sum)

End Sub
当前题号:7 | 题型:填空题 | 难度:0.99
下列Visual Basic表达式的值等于56的是(   )
A.Mid("1234567", 5, 2)B.Abs(-55) + 1
C.Sqr(56)D.Len("55") + 1
当前题号:8 | 题型:选择题 | 难度:0.99
在一个文档中,每行包含一个字符串。现使用如下规则对其压缩:压缩时,对于每个字符串求其与前一字符串的公共前缀,然后使用公共前缀的长度和字符串的剩余部分(以空格隔开)表示该字符串,每个空格和字符都会占用一个字节空间。图a所示为该压缩规则示意图。小明为此编写了VB程序,功能如下:运行程序时,在列表框List1中显示原字符串内容,单击“压缩”按钮Command1,在列表框List2中显示压缩后字符串,并在标签Label2中显示压缩后容量。程序运行界面如图b所示。

实现上述功能的 VB 代码如下,但划线处代码有错,请改正。
Dim word(3000) As String, pre(3000) As String
Const n = 2000
Private Sub Form_Load()
'该过程的作用是从数据库读取 n 个单词,按字典顺序存储在数组 word 中,并在 Label1输出单词数量和容量
'代码略
End Sub
Private Sub Command1_Click()
Dim conp As Integer '存储压缩后的容量
Dim f As Boolean,m As Integer,k As Integer   'k 存储公共前缀的长度
conp=0
For i=1 To n
k=0
If i=1 Then f=False Else f=True
k=Len(word(i)) '(1)______________
Do While k<m And f=True
If Mid(word(i),1,k+1)=Mid(word(i-1),1,k+1) Then    
k=k-1 '(2)____________
Else
f=False
End If
Loop
pre(i)=CStr(k)+" "+Mid(word(i),k+1,Len(word(i)))
'Cstr()函数能够将数字类型的值转换为字符类型的值,并却掉前导空格。
List2.AddItem pre(i)
conp=conp+Len(word(i))   '(3)______________
Next i
Label2.Caption="压缩后容量为"+Str(conp)+"字节"
End Sub
当前题号:9 | 题型:填空题 | 难度:0.99
小刘编写了一个求序列所有子序列和的程序。程序能够输 出所有的子序列的和,同时输出最大的子序列和。如序列中有三个元素 a(1),a(2),a(3),其子序列包括“a(1),a(2)”,“ a(1),a(2),a(3)”,“ a(2),a(3)”。 程序运行界面如图所示。

实现上述功能的VB程序如下(数组每一项的值都为[-100,100]内的随机整数),请将程序代码补充完整。
Private Sub Command1_Click()
Dim  a(1 To 10) As Integer
Dim b(10) As Integer
Dim i As Integer, j As Integer
Dim k As Integer, max As Integer
Randomize
max=-32768
List1.Clear
List2.Clear
b(0)= 0
For i=1 To 10
a(i)=___________    '(1)
b(i)=b(i-1)+a(i)
List1.AddItem  Str(a(i))
Next i
For  I = 1 To 10
For  j=i+1  To  10
s="a("+Str(i)+")"+"至"+"a("+Str(j)+")"+"的和为"
k=_______________     '(2)
If  k>max Then  max=k
List2.AddItem s+Str(k)
Next j
Next i
Label3.Caption="子序列最大和为:"+___________ '(3)
End Sub
当前题号:10 | 题型:填空题 | 难度:0.99