题目

在一个整数序列中找第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)
信息技术 试题推荐
最近更新