题目

某校跳高比赛计分规则如下:每个高度每位选手最多试跳三次,成功记为1,失败或轮空记为0。如选手第一次试跳成功记为100,第二次试跳成功记为010,第三试跳成功记为001,三次失败则终止比赛。编写VB程序统计选手积分,在文本框Text1中输入姓名和成绩,在列表框List1中输出结果,其算法如下:1.将每个选手的跳高记录三位一组转换成十进制数存储到数组a (该数组元素的值都不相同)。2.先比较数组a中各数组元素的长度,长度长的排名在前;若长度相同的情况下从后往前依次比较字符大小,当前数值大的排名在前。程序运行界面如图所示: 请在划线处填入合适的代码。 Dim a(1 To 9) As String   '存储跳高成绩 Dim b(1 To 9) As String   '存储学生姓名 Dim c(1 To 9) As Integer Private Sub Command1_Click() Dim ch As String, tmp As Integer, t As Integer Dim p As Integer, k As Integer, i As Integer, j As Integer Dim s As String s = Text1.Text: t = 0 For i = 1 To .     If Mid(s, i, 1) <> "/" Then         ch = ch + Mid(s, i, 1)      Else         t = t + 1         If t Mod 2 = 0 Then           a(t \ 2) = zh(ch)         Else                   End If        ch = ""     End If   Next i For i = 1 To t\2 c(i) = i Next i   For i = 1 To t \ 2 - 1     p = i     For j = i + 1 To t \ 2        If Len(a(c(p))) < Len(a(c(j))) Then           p = j        ElseIf Len(a(c(j))) = Len(a(c(p))) Then           k = Len(a(j)): flag = True           Do While k >= 1 And flag              If Val(Mid(a(c(j)), k, 1)) > Val(Mid(a(c(p)), k, 1)) Then                 p = j                 flag=false              ElseIf val(Mid(a(c(j)), k, 1)) = val(Mid(a(c(p)), k, 1)) Then                 k = k - 1              Else                flag = False              End If           Loop        End If     Next j     If p <> i Then       tmp = c(i): c(i) = c(p): c(p) = tmp     End If   Next i   For i = 1 To t \ 2         Next i End Sub Function zh(cm As String) As String   Dim temp As String   Dim i As Integer, j As Integer   For i = 1 To      For j = 1 To 3         temp =temp * 2 + Val(Mid(cm, (i - 1) * 3 + j, 1)) .      Next j      zh = zh + CStr(temp)     'CStr函数可把表达式转换为字符串类型      temp = 0   Next i End Function 答案:【1】Len(s)/len(text1.text)【2】b((t + 1) \ 2) = ch【3】List1.AddItem Str(i) + " " + b(c(i)) + " " + a(c(i))【4】len(cm)\3
信息技术 试题推荐
最近更新