题型:单选题 题类:模拟题 难易度:困难
浙江省2019年信息技术选考模拟试卷五
i = 1 : k = 0
Do While i<= 3
For j = 8 To i + 1 Step -1
If a(j) >= a(j - 1) Then
t = a(j): a(j) = a(j-1): a(j-1) = t
k = k + 1
End If
Next j
i = i + 1
Loop
若数组a中的数据依次为“24,29,31,24,12,10,12,25”,则加工结束后,变量k的值为( )
Dim class(1 To 30) As Integer '存放班级序号的数组定义为class
Dim score(1 To 8) As single '存放班级各评委打分的数组定义为score
Private Sub Formload() '提取某班级的评委打分
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + App.Path + "\bbygs.accdb "
conn.Open
Set rs.ActiveConnection = conn
rs.Open "SELECT * FROM score "
n = 0
Do While Not rs.EOF '到最后一条记录后退出循环
n = n + 1
class (n) = rs.Fields("班级序号").Value
score (n) = rs.Fields("评委打分").Value
rs.MoveFirst '①指针移动到下一条记录
Loop
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
for i=1 to n
List1.AddItem str(score(i))
Next i
End sub
Private Sub Command1Click()
Dim i as integer
Dim j as integer
Dim t as single
For i = 1 to 8 For j=1 to i If ② then t=score(j) score(j)=score(j+1) score(j+1)=t End if Next j Next i |
For i=1 to 8
List2.AddItem str(score(i))
Next i
End sub
Private Sub Command2Click() '计算班级平均得分
Dim i As Integer
Dim sum As single
For i=2 to 7
sum=sum+score(i)
Next i
Text1.text= ③
End sub
①检查产生号码是否重复:把产生的中奖号码放在数组a中,新产生的号码与已经产生的号码进行一一对比,如果找到相等的数,则重新产生新号码。
②找到新产生号码存放的数组下标:从下标为1的数组元素开始,新号码(第i个号码)分别与他们进行一一比较,找到第一个比新号码大的数,该数所在的下标就是新号码应存放的下标。如果在已经产生的数中没有找到比新号码大的数,则新号码应存放在下标为i的数组元素中。下表以产生第5个号码为例,如果产生的号码是130,第一个比他大的数是a(2),下标为2的数组元素应存放新号码;如果产生的号码是300,则新号码应存放在下标为5的数组元素中。
数组元素 |
a(1) |
a(2) |
a(3) |
a(4) |
数组元素的值 |
110 |
168 |
215 |
267 |
③移动数组元素到新的位置:如果在已经产生的号码中找到比新号码大的数,从上一个产生的号码开始,到新号码应存放的数组元素,依次把他们向后面移动。以②中产生130为例,从a(4)开始,让a(5)的值等于a(4),a(4)的值等于a(3),依次类推,直到新号码应存放的数组元素a(2)为止。
④将新产生的号码放在相应的数组元素中。
程序运行的界面如下图所示,实现上述功能的VB程序代码如下:
Dim a(10) As Single
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim temp As Single, k As Integer 'temp产生随机数,k随机数存放数组元素的下标
Randomize
a(1) = Int(Rnd() * 900 + 100)
For i = 2 To 10
temp = Int(Rnd() * 900 + 100)
If seach(temp, i - 1) = True Then
i = i - 1
Else
k = i
For j = 1 To i - 1
If temp < a(i) Then k = j: Exit For ‘①
Next j
For j = i - 1 To k Step -1
a(j + 1) = a(j)
Next j
②
End If
Next i
List1.Clear
For i = 1 To 10
List1.AddItem Str(a(i))
Next i
End Sub
‘函数实现在数组a中,从下标为1的数组元素到下标为t数组元素,查找有无s的数值
Function seach(s As Single, t As Integer) As Boolean
Dim i As Integer
seach = False
For i = 1 To t
If ③ Then seach = True: Exit For
Next i
End Function
试题篮