小杰为学校教务处编写了一个排考场座位的VB程序,考场采用“6排5列”共30人的模式,程序执行后,考生的考号与姓名显示在列表框List1中,单击“考场座位”按钮,考场号与座位显示在Text1中,程序运行界面如图所示,数据表如图

 
实现上述功能的VB程序如下,请回答下列问题:
(1)程序中读取的数据库文件是____________
(2)当“Form_load() 事件处理过程运行结束后,变量x的值为___________
(3)请在划线处填入合适的代码
Dim sName(100) As String
Dim kh(100) as string
Private Sub Command1_Click()
Dim y As Integer
Dim start As Integer    '考场第1位数据元素的下标
Dim pa As Integer '数据库导入VB时学生数据下标
Dim pb As Integer '考场座位数据下标
Dim i As Integer,j As Integer,k As Integer,m As Integer
Dim kcsName(100) As String
start = 1
pa = start
recCount = x-1
If recCount Mod 30 <> 0 Then
_______________
For i = 1 To y    '将当前考生人数添加到30的整数倍    
recCount = recCount +1
sName(recCount) = " "
Next i
End If
For j = 1 To recCount / 30   
pa = start   
pb = start   
For i = 1 To 30
kcsName(pb) = sName(pa)
pb = pb +1
If  i Mod 5 = 0 Then
pa = start +i \5
Else  
________________
End If   
Next i   
start = start +30
Next j
Text1.Text = " "
start = 1
For k = 1 To recCount /30   
m = start   
Text1.Text = Text1.Text + "第" + Str(k) + "考场" + vbCrLf   
'vbCrLf为换行标志符,实现Text1中内容换行显示  
For i = 1 To 6
For j = 1 To 5
Text1.Text = Text1.Text +"  " +kcsName(m)
m = m +1
Next j
Text1.Text = Text1.Text +vbCrLf   
Next i   
Text1.Text = Text1.Text +vbCrLf +vbCrLf
______________________
Next k
End Sub
Private Sub form_load()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.ConnectionString = "provider=microsoft.ace.oledb.12.0;data source=" & App.Path & "/kaochang.accdb"
conn.Open
Set rs.ActiveConnection = conn
rs.Open "select * from banji"
x = 1
List1.AddItem " 考号  姓名"
Do While Not rs.EOF    '
kh(x) = rs.fields("kh")
sName(x) = rs.fields("xm")
List1.AddItem kh(x) + "  " + sName(x)
x = x + 1
rs.MoveNext
Loop
rs.Close
End Sub
当前题号:1 | 题型:填空题 | 难度:0.99

   “中国好声音”节目组要小杰用VB编写一个程序:现场将有900个观众,要在900个观众中产生10个中奖号码的程序,每位观众用三位数字进行编号,要求产生的10个号码不能重复,并且升序排列输出。

①检查产生号码是否重复:把产生的中奖号码放在数组a中,新产生的号码与已经产生的号码进行一一对比,如果找到相等的数,则重新产生新号码。

②找到新产生号码存放的数组下标:从下标为1的数组元素开始,新号码(第i个号码)分别与他们进行一一比较,找到第一个比新号码大的数,该数所在的下标就是新号码应存放的下标。如果在已经产生的数中没有找到比新号码大的数,则新号码应存放在下标为i的数组元素中。下表以产生第5个号码为例,如果产生的号码是130,第一个比他大的数是a(2),下标为2的数组元素应存放新号码;如果产生的号码是300,则新号码应存放在下标为5的数组元素中。


③移动数组元素到新的位置:如果在已经产生的号码中找到比新号码大的数,从上一个产生的号码开始,到新号码应存放的数组元素,依次把他们向后面移动。以②中产生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
(1)程序代码中①划线处有错,应改为:___________________
(2)程序代码中划线处②应填入_________________________
(3)程序代码中划线处③应填入_________________________
当前题号:2 | 题型:填空题 | 难度:0.99
(加试题)有如下程序段:
i=6 : flag=True
Do While i>=4   And   flag=True flag=False
k=i
For j=1 To i-1
If a(k)>a(j)  Then k=j
Next j
If k<>i Then
t=a(i) : a(i)=a(k) : a(k)=t flag=True
End If
i=i-1
Loop
数组元素 a(1)到 a(6)的值依次为“24,7,37,45,11,52”,经过该程序段“加工”后, 数组元素 a(1)到 a(6)的值依次为(   )
A.7,11,37,45,24,52B.45,52,37,24,11,7
C.7,11,24,45,37,52D.24,52,37,45,11,7
当前题号:3 | 题型:选择题 | 难度:0.99
为了合理有效的共享学校图书馆自修室资源,学校实行自修室座位网上预约,学生
按学号登录系统进行预约(学号编码为六位数字,第一二位代表年级,第三四位代表班级,第五 六位代表顺序号。如 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 | 题型:填空题 | 难度:0.99
n个数据的冒泡排序需要经过n-1遍加工,每一遍加工自下而上比较相信两个数据,把较小者交换到上面。小刘发现:当某一遍加工过程中没有数据交换,说明数据已经有序,无需进一步加工。为此,小刘对算法进行优化,编写了一个VB程序,功能如下:运行程序时,在列表框List1中显示排序前数据,单击“排序”按钮Commaiid1,在列表框List2 中显示这些数据按升序排序后的结果,在标签Label3中显示排序过程的加工遍数。运行效果如下图所示,

实现上述功能的VB代码如下:
Dim a(1 To 8) As Integer
Dim n As Integer
Private Sub Form_Load()
'n=8,排序前数据存储在数组a中,并在列表框Listl中显示
'代码略
End Sub
Private Sub Command1_Click()
Dim flag As Boolean
i = 1
flag = True
Do While   '改错
flag = False
For j = n To i + 1 Step -1
If a(j) < a(j - 1) Then
k = a(j): a(j) = a(j - 1): a(j - 1) = k
flag = True
End If
Next j
i = i + 1
Loop
Label3.Caption = "排序过程的加工遍数为" +       '填空
For i = 1 To n
List2.AddItem Str(a(i))
Next i
End Sub
(1)代码“Private Sub Command1_Click()”中的Click是___________。(单选,填字母:
A.对象名/B.属性名/C.事件名)
(2)程序代码中,Do While语句加框处有错,请改正。__________________
(3)程序代码中,将Label3.Caption赋值语句补充完整。_________________
(4)程序代码中,flag值为___________表示某一遍加工中发生过交换。
当前题号:5 | 题型:填空题 | 难度:0.99
学校组织运动会,开幕式的时候要求每个班排成一个方阵,为了能快速地排成方阵,小张编写了一个 VB 程序,程序功能:在文本框 Text1 中输入每一行的人数,在文本框 Text2 中输入班级人数(输入人数<=60),单击“排队”按钮 Cmd1 后,在列表框 List1 中按学号显示队形。程序运行界面如下图所示,程序代码如下,请回答下列问题:


(1)以上代码的事件处理过程名是___________。
(2)程序代码中加框处有两处错误,请改正:①___________② ___________
(3)程序代码中,请将③处的代码补充完整___________
当前题号:6 | 题型:填空题 | 难度:0.99
小明基于冒泡排序算法编写了一个VB程序,功能如下:单击“生成”按钮command1,生成n个[10,99]的随机整数赋值给a数组,并在列表框ists1中显示。单击“排序”按钮command2,对这组数据进行错位排序(即从前往后依次是最小的,最大的,第二小的,第二大的----依次类推)。在列表list2中依次输出数据排序的结果,程序运行界面如图所示:

实现上述功能的VB程序如下:
(1)程序测试运行后生成如下文件:(
A.paixu.frmB.paixu.vbpC.paixu.vbwD.paixu.exe),其中属于windows系统可执行文件是:(单选,填字母:_______)
(2)划线①处应填:__________
(3)加框①、②处代码有错,请改正。
Const n=10
Dim a(1 To 10) As Integer
Private Sub Command1_.Click()
For i=1 To n
    
List1.Additem Str(a(i))
Next i
End Sub
Private Sub Command2_Click()
tmp= 1
For i=1To n-1
For j=n To i+1 Step-1
If  tmp*(a(j)-a(j-1))>0 Then ①______________________
t=a(j);a(j)=a(j-1):a(j-1)=t 
End If
Next j 
tmp=-1 ②______________________
Next i
For i=1 To 10
List2.Addltem Str(a(i))
Next i
End Sub
当前题号:7 | 题型:填空题 | 难度:0.99
有如下VB程序段:
c=0:i=1
Do While i<=6
k=i
For j=i+1 To 7
If a(j)<=a(k) Then k=j
Next j
If a(i)<>a(k) Then
t=a(i):a(i)=a(k):a(k)=t
c=c+1

End If

i=i+1

Loop
数组元素a(1)到a(7)的值依次为“9,9,8,16,45,9,78”。该程序段执行后,变量c的值是
A.0B.3C.4D.6
当前题号:8 | 题型:选择题 | 难度:0.99
(加试题)对数组a中的u个元素进行排序,生成左右交替上升的数据序列,结果如下表所示:
a(1)
a(2)
a(3)
……
a(n-2)
a(n-1)
a(n)
17
39
48
……
79
46
34
 
设计一个VB程序,单击“排序”按钮Command1后,在标签中输出排序后的数据序列,运行结果如图所示。

实现上述功能的VB程序如下,加框处代码有错,请改正。
Const n-9  ‘变量u存储待排序数据个数,以9个数为例
Dim a(1 Ton) As Integer ‘数组a存储待排序数据
Private Sub Command1_Click()

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

‘读取一组正整数,存入数组a中,

‘在标签Label中依次输出排序前数组a从1到n各个元素的值,代码略;

For i = 1 To n\2

k=1 Label'①________
For j=i+1 To n-i+1
If a(k) > a(j) Then k = j
Next j
For j=i+1To n ‘②________
If a(j) <a(j +1) Then t =a(j): a(j) =a(j +1): a(j +1)=
Next j
Next i

‘在标签中依次输出排序后数组a从1到n各个元素的值,代码略;

End Sub
当前题号:9 | 题型:填空题 | 难度:0.99
对数组a中的n个元素进行排序,生成升序的数据序列,结果如下表所示:
a(1)
a(2)
a(3)
……
a(n-2)
a(n-1)
a(n)
17
39
48
……
79
79
100
 
实现上述功能的VB程序如下,但加框处代码有错,请改正。
Private Sub Command1_Click()
Const n = 8
Dim a(1 To n) As Integer, left As Integer, right As Integer, m As Integer
Dim i As Integer, j As Integer, t As Integer

’读取一组数,存储在数组a中,代码略

 For i = 2 To n

    left = 1

    __________________

    Do While left <= right

m = (left + right) \ 2

If a(i) < a(m) Then right = m - 1 Else left = m + 1

    Loop

__________________

    t = a(i)

For j = i To m + 1 Step -1

a(j) = a(j - 1)

    Next j

    a(m) = t

Next i

’输出排序结果,代码略
End Sub
当前题号:10 | 题型:填空题 | 难度:0.99