题库 高中信息

题干

将6名选手的歌唱比赛成绩存放在数组a中,如下表所示:

若按升序排列,采用冒泡排序算法自右向左进行比较和交换,第二轮排序之后a(4)中的值为________
上一题 下一题 0.99难度 填空题 更新时间:2019-04-03 11:11:03

答案(点此获取答案解析)

同类题2

小明编写了一个 VB 程序对成绩数据进行排序。为保证相同分数的同学相对位置(指原数据中的前后关系)不发生改变,他试着采用一种新的排序算法来解决。为便于描述算法的实现过程,假定有如下数组 a:
下标
1
2
3
4
5

5
3
3
2
4
 
第一步:统计数组 a 中每个值 a(i)出现的次数,存入 b(a(i)),统计完成后数组 b 的情况如下:
下标
1
2
3
4
5

0
1
2
1
1
 
第二步:从前向后,依次使数组 b 中的每个值等于其与前一项之和,这样数组 b(a(i))就代表了数组 a 中小于或等于 a(i)的元素个数,完成第二步后数组 b 如下:
下标
1
2
3
4
5

0
1
3
4
5
 
第三步:从后往前,依次将数组 a 中元素填入数组 c 中,将数组元素 a(i)放在数组 c 的第 b(a(i))项,如元素 a(1)=5,应该放在数组 c 的 b(5)位(即 c(5) )。每放一个元素就将 b(a(i))递减;完成第三步后,数组 c 如下所示,已经完成升序排序,且相对位置不变,即原来 a (2)的值 3 仍然在 a(3)的值 3 前面。
下标
1
2
3
4
5

2
3
3
4
5
 
程序运行界面如右图所示:

实现上述功能的 VB 程序如下,回答以下问题:
(1) 从代码中可以得知,用于连接数据库的对象名是:________
(2) 请在划线处填上相应代码。
Dim a(1 To 50) As Integer '存放学生的成绩
Dim sname(1 To 50) As String '存放学生姓名
Dim n As Integer
Private Sub Command1_Click
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
App.Path + "\stu.accdb"
conn.Open
strSQL = "SELECT * From stucj"
Set rs.ActiveConnection = conn
rs.Open strSQL
n = 0
List1.AddItem "姓 名" & " " & "成绩"
Do While Not rs.EOF
n = n + 1
a(n) = rs.Fields("cj")
sname(n) = rs.Fields("xm")
List1.AddItem sname(n) & " " & Str(a(n))
①_________
Loop
rs.Close
conn.Close
End Sub
Private Sub Command2_Click
Dim i As Integer, k As Integer
Dim b(0 To 100) As Integer
Dim c(1 To 50) As Integer, c1(1 To 50) As String 'c 和 c1 作为临时数组
For i = 1 To n
b(a(i)) = b(a(i)) + 1
Next
For i = 1 To 100
b(i) = ②__________
Next
For i = n To 1 Step -1
c(b(a(i))) = a(i)
c1(b(a(i))) = sname(i)
③_________________
Next
For i = 1 To n '把临时数组 c 和 c1 中的数据放入 a 和 sname 数组
a(i) = c(i)
sname(i) = c1(i)
Next
List2.AddItem "姓 名" & " " & "成绩"
For i = 1 To n
List2.AddItem sname(i) & " " & Str(a(i))

Next

End Sub

同类题3

丢失的成绩。某校运动会上,高一男子100米决赛的成绩已出,前8名的成绩记录单由于不小心丢失一张,只剩下7个成绩,分别是(单位:秒)11.5,11.8,12.1,12.5,13.1,13.5,13.9。后来找到了,需将找到的成绩插入相应的位置,使数据序列仍保持有序,并求出该成绩的名次。
为实现这一目标,设计如下VB程序,界面如图所示:先输入7位选手成绩,自动将成绩从小到大排序后输出到列表框List1中。输入丢失成绩后,点击“插入”按钮将该成绩添加到适当位置并输出选手成绩到List2中,并在Label4中显示该成绩的名次。

实现上述功能的VB程序如下,请完成以下问题:
Dim a(1 To 8) As Single
Dim n As Integer,i As Integer,x As Single
Private Sub Form_Load()
Dim j As Integer,temp As Single
’输入7位选手100米成绩,代码略
’将7位选手成绩从小到大排序
For i=1 To 6
For j=7 To i+1 Step-1
If a(j)<a(j-1) Then
temp=a(j)
a(j)=a(j-1)
a(j-1)=temp
End If
Next j
Next i
’将排序好的选手成绩输出到列表框List1
List1.Clear
For i=1 To 7
List1.AddItem Str(a(i))
Next i
End Sub
Private Sub Command1_Click() ’确定该遗漏选手的成绩排名第几位?
x=Val(Text1.Text)
i=1
Do While x>a(i)
__   __
Loop
Label4.Caption=“该选手位列第”+Str(i)+“名!”
’ 将该遗漏选手成绩添加到适当位置,使数组仍保持有序并输出到列表框List2
For j=8 To i+1 Step-1
a(j)=a(j-1)
Next j
__   __
For i=1 To 8
List2.AddItem a(i)
Next i
End Sub
(1)Form Load事件处理过程中代码采用的算法是________(选择排序/插入排序/冒泡排序)
(2)①处代码应为:__________________________________________。
②处代码应为:____________________________________________。