甲乙双方进行一场球类比赛,一局计分的规则是:赢1球得1分,用“1”表示;输1球失1分,用“0”表示。当任一方得分大于等于6分,且领先对方2分及以上,领先方赢一局。如甲选手一局比赛数据为“101110101”,表示甲选手得6分失3分,局比分 。 小王用一个字符串记录了甲选手多局比赛数据,其中有一处错误,位于连续多个“0”的最后一个。为了找出错误,小王的处理方法如图a所示,对示例中疑似错误位置6和20分别修改数据,并统计每局比分。他编写了VB程序,功能如下:在窗体Form l的文本框Text l中输入记录数据,单击“分析”按钮Command 1,在列表框List 1中输出修改位置以及修改后每局的比分。程序运行界面如图b所示。 图a 图b
(1)
下列对象中有Text属性的是(单选,填字母:A .Command 1/B .Form 1/C
.Text 1)。
(2)
实现上述功能的VB程序如下,请在划线处填入合适的代码。
Private Sub
Command 1_Click( )
Dim sp As String, s As String s ‘s存储甲选手多局比赛的记录数据, 长度小于50
Dim a(1 To 50)As
Integer, e(1 To 20)As Integer
Dim i
As Integer, j As Integer, k As Integer, n As Integer, m As Integer
Dim f1
As Integer, f2 As Integer
s=Text 1.Text
n=Len(s)
For i=2 To n
a(i)=Val()
Next i
m=0 : i=1
Do While i<=n
k=i
Do While a(i)=0 And i<=n 找出疑似错误位置
i=i+1
Loop
If Then
m=m+1:e(m)=i-1
End If
i=i+1
Loop
For i=1 To m ‘对每个疑似错误位置分别修改数据,并统计每局比分
f1=0 : f2=0
k=e(1)
a(k)=1
sp="" & k &""
For j=1 To n
If a(j)=1 Then f1=f1+1 Else f2=f2+1
If Then sp=sp & "/" & f1 &":" & f2 f1=0 : f2=0 End If Next j If f1+f2>0 Then sp=sp & "" & f1 & ":"& f2 List 1.AddItem sp Next i End Sub
(3)
程序中加框处代码有错,请改正。
答案: 【1】C
【1】Mid(s,i,1)【2】i-k>1或i-k>=2【3】a(k)=0
(f1>=6 Or f2 >=6 ) And Abs(f1-f2)>=2或(f1>=6 And Abs(f1-f2)>=2) Or (f2>=6 And Abs(f1-f2)>=2)或等价表达式