试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:困难

浙江省嘉兴五中2019-2020学年高二下学期信息技术期中测试卷

小王基于选择排序算法编写了一个 VB 程序,功能如下:数组 a 有 n * n 个元素,按 n 行 n 列进行排列,按列进行升序排序。例如 6 * 6 的数组,第一列将 a(1),a(7),a(13),a(19),a(25) ,a(31)进行排序。运行程序,在列表框 List1 中显示 n * n 个数列单击“排序”按钮 Command1,在列表框List2 中显示排序后的结果,程序运行界面如图所示。

请回答下列问题:

(1)、n=6时运行结果如图所示,图中1处“47”在数组 a中下标是(填数字)。
(2)、为了实现上述功能,请在划线处填写合适的代码。

Const n = 6

Dim a(1 To n * n) As Integer

Private Sub Form_Load()     '产生 n * n 个数组元素,每行按 n 个数显示在 list1 中

For i = 1 To n * n

     a(i) = Int(Rnd * 90) + 10

     s = s + Str(a(i))

If       ①        Then  

List1.AddItem s   

s = ""

      End If

Next i

End Sub

Private Sub Command1_Click()

Dim i As Integer, j As Integer, w As Integer, s As String

   For i = 1 To n * n

       k = i

For j = k + n To       ②        

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

       Next j

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

   Next i

'将排序后数组 a 的元素,按每行 n 个数显示在 list2 中,代码略

End Sub

 ② 

(3)、程序中加框处代码有错,请改正。
举一反三
竞选班长。编号分别为1、2、3、4、5的五位候选人参加班长竞选,现要设计一个计票程序,根据回收的选票信息统计各位候选人的得票数,得票数最多的被选为班长,并输出班长的编号。选票信息为一个数字序列,由每张选票的投票结果构成,如某选票序列为101233303,其含义见如下表所示。

选票序列

1

0

1

2

3

3

3

0

3

含义

第1张选票投给1号

第2张选票弃权

第3张选票投给1号

第4张选票投给2号

第5张选票投给3号

第6张选票投给3号

第7张选票投给3号

第8张选票弃权

第9张选票投给3号

备注:选票序列101233303,序列中的数字i,表示投票给编号为i的人,即编号为i的人得1票,其中数字0表示不投给任何人,即为弃权。表中选票序列的投票结果为:1号得2票,2号得1票,3号4得票,4号、5号均为0票(没人投),所以3号得票数最高,被选为班长。

程序运行时,在文本框Text1中输入选票信息,单击“计算”按钮Command1后,被选为班长的编号显示在文本框Text2中。程序运行效果如图所示。

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

Private Sub Command1_Click()

Dim a(1 To 5)As Integer

    ‘数组元素a(1)~a(5)依次存放编号为1~5的五位候选人的得票数

Dim st As String, i As Integer, j As Integer, n As Integer

Dim ans As Integer    ‘变量ans存放被选为班长的人的编号

Dim max As Integer    ‘变量max存放最多的得票数

st=Text1.Text

 {#blank#}1{#/blank#}

For i=1 To 5

a(i)=0

Next i

For i=1 To 5

For j=1 To n

If{#blank#}2{#/blank#}Then 

a(i)=a(i)+1

Next j

Next i

max=0

For i=1 To 5

If a(i)>max Then

max=a(i):ans=i

Next i

{#blank#}3{#/blank#}

End Sub

返回首页

试题篮