试题

试题 试卷

logo

题型:综合题 题类:模拟题 难易度:困难

浙江省湖州市2021-2022学年高三上学期信息技术12月选考模拟(一)试卷

某志愿服务APP用于整理浙江省内各城市志愿者服务工作情况,每个志愿者的数据用一个长度为8的字符串表示,例如“6 YFH 5 ”,6表示城市序号,YFH为志愿者姓名字母编写,5为参加志愿者服务次数。整理要求:先按城市序号从小到大排列;然后,同一城市的志愿者按参加志愿服务的次数降序排列。按上述要求,编写VB程序,功能如下:在列表List1中显示整理前的数据,单击“整理”按钮Command1,整理结果显示在列表框List2中,程序运行界面如图所示。

(1)、在VB表达式Command1_Click()中,Command1、Click、Command1_Click()依次表示(单选,填字母:A .方法名、属性名、事件名/B .对象名、事件名、事件处理过程名/C .函数名、对象名、方法名)
(2)、实现上述功能的VB程序如下,请在划线处填入合适的代码。

Const nc=10    '城市数

Const n=200000'志愿者总人数

Dim a(1 To n) As String'存储志愿者数据

Private Sub Form_Load()

    '本过程读取志愿者数据,存入数组a并显示在列表框List1中,代码略

End Sub

Private Sub Command1_Click()

Dim city(1 To n) As Integer,pname(1 To n) As String,cs(1 To n) As Integer

    Dim t As Integer,t1 As String

    Dim b(1 To nc) As Integer           '存储每个城市的报名人数

    Dim index(1 To n) As Integer          '定义索引数组

    For i = 1 To n

city(i) = Val(Mid(a(i), 1, 1))

        pname(i) =

        cs(i) = Val(Mid(a(i), 7))

    Next i

    i = 1                '按城市序号升序排序

    Do While i < n

        k = i: i = n

        For j = n To k + 1 Step -1

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

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

                t1= pname(j): pname(j) = pname(j -1): pname(j -1) = t1

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

                

            End If

        Next j

    Loop

    For i = 1 To n

       

        index(i) = i

    Next i

    pos = 1       '相同城市志愿者按服务次数降序排序

    For i = 1 To nc

        For j = pos To pos + b(i) -2

            k = j

            For p = j + 1 To

                If cs(index(p)) > cs(index(k)) Then k = p

            Next p

            t = index(j): index(j) = index(k): index(k) = t

        Next j

        pos = pos + b(i)

    Next i

    '最终结果显示在列表框List2中,代码略

End Sub

(3)、程序中加框处代码有错,请改正。
举一反三
编写VB程序,功能为:单击“发牌”按钮“Command1”后,从一副扑克牌(不包括大王、小王、J、Q、K、A)中随机抽取5张牌,牌的花色(♠♥♣♦)忽略,显示在列表框“List1”中。如果这5张牌由一个对子和一个顺子(3张牌连续)组成,则在标签“Label1”中显示“运气不错:)”,否则显示“运气一般:|”。程序运行界面如图所示。

实现上述功能的VB程序如下:

Private Sub Command1_Click()

  List1.Clear

  Dim five(1 To 5) As Integer

  Dim i As Integer, j As Integer, k As Integer

  Dim p As Integer, find_pair As Boolean

  '随机抽取5张牌,将牌的点数存储在数组five中,并在List1中显示。代码略

  i = 5: p = 1: find_pair = False

  Do While i>= 2

    j=p

    Do While j <= i - 1

      If five(j) > five(j + 1) Then

        t = five(j): five(j) = five(j + 1): five(j + 1) = t

      ElseIf five(j) = five(j + 1) And Not find_pair Then

        t = five(1): five(1) = five(j): five(j) = t

        t = five(2): five(2) = five(j + 1): five(j + 1) = t

        find_pair = True

        i = i + 1

        p = _____________

        Exit Do

      End If

      j = j + 1

    Loop 

    i = i - 1

  Loop

  k = 0

  For i = 3 To 4

    If  Then k = k + 1

  Next i

  If five(1) = five(2) And k = 2 Then

    Label1.Caption = "运气不错:)"

  Else

    Label1.Caption = "运气一般:|"

  End If

End Sub

请回答下列问题:

返回首页

试题篮