小明设计了某社团积分系统,当输入用户ID和积分增值后可以更新积分和排名。具体功能如下:单击“读取"按钮Command1后,将n个用户的ID (依次为1到n)、积分和积分排名显示在列表框List1中。在Text1中输入ID和积分增值,用逗号作为分隔符和结束符,奇数位置整数表示ID,偶数位置整数表示积分增值。如输入“2,1,3,5,”表示ID为2的用户增加1积分,ID为3的用户增加5积分。单击“更新"按钮Command2,在列表框List2中显示更新后的积分和排名。程序运行界面如图所示。
请回答下列问题:
(1)
若要清空列表框List1,下列代码正确的是(单选,填字母:A .List1.Clear /B .List1.Caption / C .List1.Text")。
(2)
实现上述功能的VB程序如下,请在划线处填入合适的代码。
Const n= 12
Dim a(1 To n) As Integer, mc(1 To n) As Integer
Private Sub Command1_Click()
'n个用户的ID依次为1到n,读取n个用户的积分和排名数据分别存储到数组a和数组mc中,并在列表框Listl中显示ID、积分、积分排名,代码略
End Sub
Private Sub
Command2_Click()
Dim i As Integer, j As Integer, k As
Integer, d As Integer
Dim s As String, flag As Boolean, x As Integer,
y As Integer
Dim p(1To20) As Integer '存储输入的ID和积分增值,每次输入不超过10组
For i=1 To 20
p(i)=0
Next
i
s= Text1.Text
d=0:k=0
For i=
1 To Len(s)
If Mid(s, i, 1)= "," Then
If
flag Then
x
= Val(Mid(s, i-d, d))
For
j= 1 To k Step 2
If p(j) =x Then Exit For
Next j
If j> k Then
p(j)=x:k=k+2
End If
Else
y = Val(Mid(s, i-d, d))
p(i+1)=p(j+ 1)+y
End If
flag= Not flag: d= 0
Else
End If
Next i
For i=1 To k\2
x=p(2*i-1):y=p(2*i)
me(x)=
1
For j= 1 Ton
If j<> x Then
If a(j)<a(x)+y And a(j)>=a(x) Then End If If a(j)> a(x) +y Then mc(x)= m(x)+ 1 Next j Next i '在列表框List2中显示ID,积分、排名,代码略 End Sub
(3)
程序中加框处代码有错,请改正
答案: 【1】A
【1】flag = True【2】d=d+ 1【3】a(x) = a(x) + y
me(j) = mc(j) + 1