【说明】 已知窗体上有两个名为cmdGene和cmdSort的命令按钮。单击cmdCene按钮时,随机产生10个[1,100]范围内的整数并将它们放在数组intA中;单击cmdSort按钮时,用选择法排序这10个数并输出。 【程序代码】 Dim intA(1 To 10)As integer Private Sub cmdGene_Click( ) Dim intl As Integer Randomize For intl = 1 To 10 intA(intl) = (1) Next intl End Sub Private Sub cmdSort_Click( ) Dim intl, intJ,intMin, intTemp As Integer For intl = 1 To 9 intMin = intA(intl) For intJ= (2) To 10 If intA(intJ) < intMin Then Temp = intA(intJ) intA(intJ)= (3) intMin = intTemp End If Next intJ (4) (5) For intl = 1 To 10 Print Str(intA(intl))+" "; Next intl Next lntl Print End Sub
参考答案:
解析:(1)1+int(rnd*100) (2)intI+1 (3)intMin (4)intA(intI)=intMin (5)Next intI 根据题意,第一个空应该是产生10个[1,100]范围内的随机整数,因此填“1+int(rnd*100)”。 选择排序思想是:第i趟排序开始时,当前有序区和无序区分别为 R[1..i-1]和R[i..n](1≤i≤n-1),该趟排序则是从当前无序区中选出关键字最小的记录R[k],将它与无序区的第1个记录R[i]交换,使R[1..i]和R[i+1..n)分别变为新的有序区和新的无序区。因为每趟排序均使有序区中增加了一个记录,且有序区中的记录关键字均不大于无序区中记录的关键字,即第i趟排序之后R[1..i].keys≤R[i +1..n].keys,所以进行n-1趟排序之后有R[1..n-1].keys≤R[n]. key。也就是说,经过n-1趟排序之后,整个文件R[1..n]递增有序。因此(2)空填“intI+1”;If intA(intJ)<intMin Then后的3条语句是实现数intA(intJ)与intMin的交换,因此(3)空填“intMin”;(4)空是实现最小数与无序区的第1个数交换,因此填“intA(intI)=intMin”;(5)空是循环结束语句,填“Next intI”。