试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:普通

浙江省高中信息技术 算法及VB语言基础单元检测

竞选班长。编号分别为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

 

For i=1 To 5

a(i)=0

Next i

For i=1 To 5

For j=1 To n

IfThen 

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

End Sub

举一反三
小吴为了研究冒泡排序过程中数据的”移动”情况,编写了一个VB程序,功能如下:在列表框List1中显示排序前数据(存储在数组a中),在文本框'Text1中输入初始位置(即下标值),单击“排序”按钮Command1后,在标签Labell中显示指定初始位置的数据在排序过程中的位置变化情况,排序后的数据显示在列表框List2中。程序运行界面如图所示。

实现上述功能的VB程序如下,但加框处代码有错,请改正。

Dim a(1 To 8)As Integer

Dim n As Integer

Private Sub Form_Load()

    a(1)= 30:a(2)= 47:a(3)= 30:a(4)= 72

    a(5)= 70:a(6)= 23:a(7)= 99:a(8)= 24

    n = 8

    For i = 1 To 8

      List 1.Addltem a(i)

    Next i

End Sub

Private Sub Command1_Click()

    Dim i As Integer, j As Integer, k As Integer

    Dim pos As Integer

    Dim s As String

    s = Text1.Text

    pos = Val(Text1.Text)

    For i = 1 To n- 1

      For j = n To i+1 Step-1

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

                ‘⑴

          a(j-1)= a(j)

          a(j)= k

          '如果pos位置的数据参与交换,则更新pos值,记录pos变化位置

          If pos = j Then

            pos = j-1

            s = s + " →" + Str(pos)

              ‘⑵

            pos = j

            s = s + " →" + Str(pos)

          End If

        End If

      Next j

    Next i

    Label1.Caption = "位置变化情况:" +s

    For i = 1 To n

      List2.AddItem Str(a(i))

    Next i

End Sub

⑴{#blank#}1{#/blank#} ⑵{#blank#}2{#/blank#} 

返回首页

试题篮