试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:困难

浙江省衢州市2020-2021学年高二下学期信息技术期末6月教学质量检测试卷

某市要组织高中生参加竞技比赛。现要求在报名的n名学生中挑选出m名身高大于等于175cm的学生,被挑选出的学生两两组队,且队内两名成员的体重之和不能超过175公斤。

编写VB程序,实现上述挑选、组队功能。运行程序,在列表框List1中显示m名身高大于等于175cm的学生信息,且根据体重数值降序排序。单击“组队”按钮,在符合条件的情况下尽可能多的两两组队,并将组队结果显示在列表框List2中。程序运行界面如图所示,实现上述功能的VB程序如下。

请回答下列问题:

(1)、观察代码可知,该程序“组队”按钮的对象名为
(2)、请在划线处填入合适的代码。

Const n = 20

Dim id(1 To 20) As Integer, h(1 To 20) As Integer,w(1 To 20) As Integer

Dim m As Integer

Private Sub Form_Load( )

    '从数据库中读取n名学生的编号、身高和体重分别存储在数组id、h和w中。

    '代码略。

    m=0    '存储身高≥175cm的学生总数

    For i=1 To n

        k=i

        For j=i+1 To n

            If h(j) >= 175 Then

                If  Then k= j    '⑶

            End If

        Next j

        If k<>I Then

            t = id(i): id(i) = id(k): id(k) = t

            t=h(i):h(i)=h(k):h(k)=t

            t=w(i):w(i)=w(k):w(k)=t

        End If

        If h(i) < 175 Then

            m=i-1

            Exit For     '结束挑选

        Else

            

        End If

        List1.AddItem str(id(i)) +“”+ Str(h(i)) +””+ Str(w(i))

    Next i

End Sub

Private Sub Com_Click()

    L=1:R=m

    Do While L< R

        If  Then

            List2. AddItem Str(id(L)) + “号和”+ Str(id(R)) +“号组队”

            L=L+1

            R=R-1

        Else

            

        End If

    Loop

End Sub

(3)、程序中加框处代码有错,请改正。
举一反三
下列VB程序实现数字字母混合序列分离后分别排序,最后又合并输出。具体算法如下:在文本框Text1输入若干组混合序列,每组序列中仅包含一组字母和一个多位数字,序列之间用逗号隔开,以逗号结束。单击“排序”按钮command1,把每组序列中的字母和数字分开,并分别排序,最后在列表框list1输出。排序规则如下:所有数字按从小到大升序排序,字母序列按长度升序排序,若长度相同,直接按字母序列大小升序排序(按字母的ASCII码排序,“A”<“Z”<“a”<“z”)。实现算法的部分程序界面如图所示,VB程序代码如下,回答下列问题:

Private Sub Command1_Click()

Dim a(1 To 6) As Integer, b(1 To 6) As String, i as integer, j as integer

Dim c As String, k As Integer, tmp1 As Integer, tmp2 As String

s=text1.text

i = 1: k = 1: tmp1 = 0: tmp2 = ""

Do While i <= Len(s)

      c = Mid(s, i, 1)

      If c = "," Then

         a(k) = tmp1: b(k) = tmp2

         tmp1 = 0: tmp2 = ""

              ①    

      Else

        If  Then 

           tmp2 = tmp2 + c

        Else

         tmp1=tmp1*10+val(c)

        End If

      End If

      i = i + 1

    Loop

    For i = 1 To 5

      For j = 1 To 6 - i

        If a(j) > a(j + 1) Then tmp1 = a(j): a(j) = a(j + 1): a(j + 1) = tmp1

    If Len(b(j)) > Len(b(j + 1)) Or      ②       Then

          tmp2 = b(j): b(j) = b(j + 1): b(j + 1) = tmp2

        End If

      Next j

    Next i

    For i = 1 To 6

      List1.AddItem Str(a(i)) + b(i)

    Next i

    End Sub

返回首页

试题篮