在一个整数序列中找第k大的数,若有相同的整数,则位置靠前的整数的名次靠前。如有整数序列为“10,13,12,13,15”,则第1大的数为15,在第5个位置,第2大的数为13,在第2个位置,第3大的数还是13,在第4个位置,第4大的数是12,在第3个位置,第5大的数是10,在第1个位置。
编写一个VB程序,实现如下功能:程序启动时产生n个1~20之间的随机整数,在文本框
Text2中输人整数k(k≤n),单击“查找"按钮Command1后,在标签Label1上显示第k大的数及位置。程序运行界面如图所示。
(1)
下列对象不具有Caption属性的是(单选,填字母:A .Command1 /B .Form1 / C .Text1 /D .Label1)
(2)
实现上述功能的VB程序如下,请在划线处填入合适代码。
Const n= 10
Dima(1 To n) As Integer
Private Sub Form_ Load( )
'本过程产生n个1~20之间的随机整数存数组a中,并在文本框Text1中显示,代码略
End Sub
Private Sub Command1_Click()
Dimi As Integer,key As Integer,c As Integer,k As Integer
Dim b(1 To 20) As Integer
For i= 1 To n
b(a(i)) = b(a(i)) +1
Next i
i= 20
Do While i> 1 And b(i) < k
i=i-1
Loop
Label3.Caption="第"+Str(k)+"大的数是"+Str( key)
c=0
For i=1 To n
If a(i) = key Then c= c+1
If c= Then Exit For
Next i
Label3.Caption =Label3.Caption + ",在第"+Str(i)+"位置"
End Sub
(3)
程序代码中的加框处代码有误,请改正。
答案: 【1】C
【1】k = Val(Text2.Text)【2】b(i-1)=b(i)+b(i-1)【3】key=i
k-b(key+1)