题库 高中信息

题干

在Excel中进行数据排序,先按主关键字进行排序,主关键字相同的记录再按次关键字进行排序。编写一个VB程序,功能如下:在文本框Text1中随机产生100个两位数的正整数作为主关键字,在文本框Text2中随机产生100个两位数的正整数作为次关键字,单击“排序”按钮Command1,在列表框List1中显示排序后的结果(主、次关键字均为降序)。程序运行界面如图所示。

(1)观察代码,该排序过程中,交换次数最多能达到______________次。
(2)实现上述功能的VB程序如下,请在划线处填入正确语句。
Dim z(1 To 100) As Integer
Dim c(1 To 100) As Integer
‘文本框获取主、次数组数据代码略
Private Sub Command1_Click()

Dim i As Integer, j As Integer

i = 1

Do While i <= 99

j = 100

Do While  _______

If z(j) > z(j - 1) Or _____________Then

t = z(j): z(j) = z(j - 1): z(j - 1) = t

t = c(j): c(j) = c(j - 1): c(j - 1) = t

End If

j = j - 1

Loop

________

Loop

List1.AddItem " " + "主" + " " + "次"

For i = 1 To 100

List1.AddItem Str(z(i)) + Str(c(i))

Next i

End Sub
上一题 下一题 0.99难度 填空题 更新时间:2019-06-15 10:30:01

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

同类题1

为了合理有效的共享学校图书馆自修室资源,学校实行自修室座位网上预约,学生
按学号登录系统进行预约(学号编码为六位数字,第一二位代表年级,第三四位代表班级,第五 六位代表顺序号。如 030102 表示高三 1 班 2 号同学)。为了方便老师管理,预约结束由电脑进行 排位。排位规则如下:
①年级优先原则,先高三再高二最后高一
②班号优先原则,同年级的班号小的排前面
③序号优先原则,同班级同学序号小的排前面 小张根据以上要求编写了 VB 程序,程序界面如下图所示:

实现上述功能的 VB 程序代码如下,请回答下列问题:
⑴分析程序,可知调用的数据库的名称为____________________________________。
⑵请在划线处填入合适的代码。
Dim a(200) As String
Const num = 200
Dim temp As String
Private Sub Form_Load()    ‘此处代码实现将预约信息存储到数组 a(i)中
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
cn.Open "provider=Microsoft.AC
A.OLEDB.12.0;data source=" & App.Path & "" &"stu.accdb"
rs.Open "select * from student"
i = 1
Do While Not rs.EOF
a(i) = rs("xuehao") 
rs.MoveNext
①____________
Loop
rs.Close
cn.Close
List1.AddItem "预约号" & "    " & "学号"
For i = 1 To num

List1.AddItem Str(i) & "    " & a(i)

Next i
End Sub
Private Sub Command1_Click()
For i = 1 To num - 1
For j = num To i + 1 Step -1
If   ②____________  Then
temp = a(j) a(j) = a(j - 1) a(j - 1) = temp
End If

Next j

Next i
List2.Clear
List2.AddItem "座位" & "    " & "学号"
For i = 1 To num
List1.AddItem Str(i) & "    " & a(i)
Next i
End Sub
Function check(x As String, y As String) As Boolean
Dim x1 As Integer, x2 As Integer, x3 As Integer
Dim y1 As Integer, y2 As Integer, y3 As Integer
x1 = Val(Mid(x, 1, 2)) : x2 = Val(Mid(x, 3, 2)) : x3 = Val(Mid(x, 5, 2))
y1 = Val(Mid(y, 1, 2)) : y2 = Val(Mid(y, 3, 2)) : y3 = Val(Mid(y, 5, 2))
If x1 < y1 Or x1 =   y1 And x2 > y2 Or    ③__________   Then
check = True
Else

check = False

End If
End Function

同类题4

丢失的成绩。某校运动会上,高一男子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)①处代码应为:__________________________________________。
②处代码应为:____________________________________________。