1. 编写一个VB程序,实现功能为在n个数中寻找第m大的数。程序运行时,自动生成n个三位数随机整数,并显示在列表框List1中,单击“排序”按钮Command1,将数据进行排序,并将排好序的数据显示在列表框List2中,在文本框Text1中输入m,单击“计算”按钮Command2,在文本框Text2中显示第m大的数。程序运行效果如下图所示:

为实现上述功能的VB程序如下,在程序划线处填入合适的代码。

Dim d(1 To 20) As Integer

Const n = 20

Private Sub Form_Load()

    Dim i As Integer, j As Integer, t As Single

    List1.Clear

    Randomize

    For i = 1 To n

        

        List1.AddItem Str(d(i))

    Next i

End Sub

Private Sub Command1_Click()

    Dim i As Integer, j As Integer, t1 As Integer

    For i = 1 To n - 1

        For j =

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

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

            End If

        Next j

    Next i

    For i = 1 To n

        List2.AddItem Str(d(i))

    Next i

End Sub

Private Sub Command2_Click()

    Dim m As Integer

    m = Val(Text1.Text)

    Text2.Text = “第” + Str(m) + “ 大的数为:” +

End Sub

【考点】
排序算法及程序实现;
【答案】

您现在未登录,无法查看试题答案与解析。 登录
综合题 普通
能力提升
变式训练
拓展培优
真题演练
换一批
1. 对一个n×n的矩阵以“行”为单位进行升序排序,如下表所示是一个4×4的矩阵以行为单位进行升序排序。

李华编写了实现上述功能的程序,程序功能如下:程序运行时,在文本框Text1中输入n(1<=n<=10)单击“产生”按钮Command1产生n×n个随机数,随机数的范围为[0,9],随机存储在数组a中,并以矩阵的形式在列表框List1上显示。单击“排序”按钮Command2,对矩阵以“行”为单位进行升序排序,并在列表框List2输出排序后的矩阵。在程序运行界面如下图所示。

实现上述功能的VB程序如下,请在划线处填入合适的代码。

Dim n As Integer

Dim a(1 To 100) As Integer

Private Sub Command1_Click( )

    Dim i As Integer, s As String

    s = ""

   

    For i = 1 To n * n

        

        s = s + Str(a(i))

        If i Mod n = 0 Then

            List1.AddItem s

            s = ""

        End If

    Next i

End Sub

Private Sub Command2_Click()

    Dim i As Integer, j As Integer, t As Integer

    Dim s As String

    s = ""

    For i = 1 To n * n

        k = i

        For j = i + 1 To

            If a(j) < a(k) Then k = j

        Next j

        If k <> i Then t = a(k):a(k) = a(i):a(i) = t

       

        If i Mod n = 0 Then

            List2.AddItem s

            s = ""

        End If

    Next i

End Sub

综合题 普通
3. 小王编写了一个数据排序且将重复数删除的VB程序。算法的基本思想:先随机生成20个[1,50]区间内的整数,然后按照数据从低到高进行排序,最后删除重复数(相同的数据只保留一个)。

程序运行时,单击“生成随机数”按钮Command1,则生成20个[1,50]区间内的整数,存储在数组a中,并显示在文本框Text1中;单击“排序并去重”按钮Command2,则将数组a中数据进行从低到高排序,并将排序结果显示在文本框Text2中,将去重后结果显示在文本框Text3中,在标签Label4中显示共删除的重复数个数,程序运行界面如下图所示。

实现上述功能的VB程序如下,请回答下列问题:

(1) 若20个随机数分别为:7,18,5,7,7,12,7,1,10,14,17,7,9,7,10,16,5,18,8,18,则去掉的重复数共个。
(2) 请在划线处填入合适的代码。

Dim a(1 To 20) As Integer

Const n = 20

Private Sub Command1_Click()

    Dim i As Integer, s1 As String

    Randomize

    s1 = “ ”

    For i = 1 To n

        a(i) = Int(Rnd * 50 + 1)

        s1 = s1 + Str(a(i))

    Next i

    Text1.Text = s1

End Sub

Private Sub Command2_Click()

    Dim i As Integer, j As Integer, p As Integer, tt As Integer

    Dim ans As Integer, s2 As String, s3 As String

    For i = 1 To n - 1

        p = i

        For j = n To i + 1 Step -1

            If a(j) < a(p) Then p = j

        Next j

        If a(i) < > a(p) Then

            tt = a(i)

            a(i) = a(p)

            a(p) = tt

        End If

    Next i

    s2 = “ ”:s3 = “ ”

    ans = 0

    For i = 1 To n

        s2 = s2 + Str(a(i))

    Next i

    Text2.Text = s2

   

    s3 = Str(a(1))

    For i = 2 To n

    If a(i) < > q Then

        

        q = a(i)

    Else

        

    End If

    Next i

    Text3.Text = s3

    Label4.Caption = Str(ans)

End Sub

综合题 困难