题型:填空题 题类:模拟题 难易度:困难
2017年浙江省高考信息技术模拟试卷(二)
1)用一个一维数组来模拟,编号1~N保存在数据a(1)~a(n)中,来代表N个小朋友。
2)K代表报数的起始位置,从数组的a(k)开始遍列,报到m出圈,将当前位置的元素删除,后面的元素依次往前移位。总数减1。
3)当报数报到数组元素的最后一个时,返回数组开头接着报数。
4)当总数只剩下一个数时,直接输出。
界面如下:
Private Sub Command1_Click( )
Dim i As Integer
Dim n As Integer
Dim m As Integer, k As Integer
Dim A(1 To 50) As Integer '存放编号的数组
n = Val(Text1.Text) '编号个数
k = Val(Text2.Text) '报数起始位
m = Val(Text3.Text) '报到出圈数
If n > 0 And k > 0 And m > 0 ① n <= 50 Then
For i = 1 To n '初始化编号a(1)=1,a(2)=2,……
A(i) = i
Next i
Label1.Caption = ② '调用出圈函数,得到返回的出圈顺序
Else
MsgBox "编号、起始位、报到出圈数都必须大于0!编号不能超过50!"
End If
End Sub
Private Function chuquan(b() As Integer, n As Integer, m As Integer, k As Integer) As String
Dim i As Integer, j As Integer
Dim s As String '出圈顺序存放
i = k - 1
s = "出圈顺序为:"
Do While n > 1
i = i + 1
m = m - 1
If ③ Then
s = s + Str(b(i)) + ","
For j = i To n - 1
b(j) = b(j + 1)
Next j
b(j) = 0
n = n - 1
i = i - 1
m = 4
End If
If i = n Then i = 0
Loop
chuquan = ④
End Function
①
②
③
④
选票序列 | 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
试题篮