(加试题)下列有关排序和查找算法的说法正确的是( )
A.对N个数组元素进行排序,冒泡排序比选择排序的交换次数少
B.对N个数组元素进行排序,冒泡排序比选择排序的比较次数多
C.能用对分查找完成的任务,就一定可以使用顺序查找
D.只要待查找的数据是有序的,使用对分查找比顺序查找的效率高
当前题号:1 | 题型:选择题 | 难度:0.99
在以下数组a中,采用对分查找思想查找数据"all",则以下说法正确的是(    )。
a(1)
a(2)
a(3)
a(4)
a(5)
a(6)
a(7)
all
bro
car
due
eve
fre
geo
 
A.只需查找1次就能找到数据"all"
B.第2次查找的范围是a(1)——a(4)
C.查找过程中依次被访问到的数据是"due"、"bro"、"all"
D.该数组中存放的都是字符型数据,无法使用对分查找
当前题号:2 | 题型:选择题 | 难度:0.99
(加试题)火柴棒等式。用火柴棒可以摆出0-9的数字,摆放规则如下图所示:

有一种火柴棒游戏,将火柴棒摆成形如“A+B=C”的火柴棒等式。用n根火柴棒摆放数学等式的规则约定如下:
(1)A、B都是不大于1000的正整数,若数值非零,则最高位不能是0  
(2)摆放“+”与“=”各使用两根火柴棒
(3)A+B=C 与 B+A=C 视为相同的等式
(4)n根火柴棒必须全部用上
小明依据上述规则使用VB编写程序,研究“使用n根火柴棒,可以摆放出哪些不同的等式”,代码如下所示。请回答下列问题。
(1)请在划线处填入合适的代码。①__________,②__________,③________;
(2)某次运行程序时,显示的等式中包含“7+17=24”,根据程序分析,输入的n的值为:______
Dim sz(0 To 9) As Integer   ’数组元素sz(i)用于存储数字i所使用的火柴棒的数量
Private Sub Form_Load()
sz(0) = 6  :  sz(1) = 2  :   sz(2) = 5  :   sz(3) = 5  :  sz(4) = 4
sz(5) = 5  :  sz(6) = 6  :   sz(7) = 3  :   sz(8) = 7  :  sz(9) = 6
End Sub
‘自定义函数hcs用于求解摆放数字x需要使用的火柴棒数量
Function hcs(ByVal x As Integer) As Integer  
Dim s As Integer,k as integer
s = 0
Do While
k = x Mod 10
s=s+sz(k)
x = x \ 10
Loop
hcs = s + sz(x)
End Function
Private Sub Command1_Click()
Dim n As Integer
Dim a As Integer, b As Integer, c As Integer
n = Val(Text1.Text)
ans = 0
List1.Clear
For a = 0 To 999
For b =       To 999
c = a + b
If      Then    
List1.AddItem (Str(a) + "+" + Str(b) + "=" + Str(c))
ans = ans + 1
End If
Next b
Next a
List1.AddItem ("共有" + Str(ans) + "种等式")
End Sub
当前题号:3 | 题型:填空题 | 难度:0.99
(加试题)使用VB程序研究“回文素数在素数表中的位置”,程序运行界面如下图所示。程序将10000以内的全部素数按顺序保存到数组a中,在文本框中输入需要查找的回文数,单击“查找”按钮command1,在标签label1中显示该回文素数在全部素数中的位置。

实现上述功能的程序如下,加框处的代码有错,请改正。
Dim a(1 To 10000) As Integer
Dim n As Integer
Private Sub Form_Load()
‘将1000以内的素数从小到大依次存入数组a中
‘将素数的个数存入变量n中
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, mid As Integer
Dim key As Integer, flag As Boolean
key = Val(Text1.Text)
If key > 10000 Or Not hws(key) Then
MsgBox "输入的数据不是10000以内的回文数"
Else
i = 1   :   j = n
flag = False
Do While flag = False   
mid = (i + j) \ 2
If key > a(mid) Then
i = mid + 1
ElseIf key < a(mid) Then
j = mid - 1
Else
flag = True
End If
Loop
If Not flag Then
Label1.Caption = "该回文数不是素数"
Else
Label1.Caption = "回文素数" + Str(key) + "是第" + Str(mid) + "个素数"
End If
End If
End Sub
‘自定义函数 hws(y)用于判断y是否是回文数
Function hws(y As Integer) As Boolean
Dim x As Integer, k As Integer
x = 0: k = y
hws = True
Do While k > 0
x = x + k Mod 10
k = k \ 10
Loop
If x <> y Then hws = False
End Function
当前题号:4 | 题型:填空题 | 难度:0.99
有如下程序段:
i=1
Do while i<=2
j=1
Do while j<=7-i
If a(j) > a(j+1) Then
t = a(j): a(j) = a(j+1): a(j+1) = t
End If
j=j+1
Loop
i=i+1
Loop
数组元素a(1)到a(7)的值依次为“44,24,33,67,77,58,12”,经过该程序段“加工”后,数组元素a(1)到a(7)的值依次为 (    )
A.24,33,44,58,12,67,77B.12,24,33,67,77,58,44
C.12,24,44,33,58,67,77D.44,24,33,58,12,67,77
当前题号:5 | 题型:选择题 | 难度:0.99
小李编写了一个 VB 程序,读取某数据库中的数据,数据表打开后界面及部分VB代码如下:
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim a(1 to 1000) as string,strconn as string
strconn="provider=Microsoft.AC
A.OLEDB.12.0;data source ="+ App.Path+"\score.accdb"
conn.ConnectionString =strconn
Conn.Open
Set rs.ActiveConnection = conn
rs.Open  "Select *  from  stuinfo"
n=0
Do    While Not rs.EOF
n=n+1
a(n)=rs.fields(1)
rs.MoveNext
Loop
rs.Close
conn.Colse
下列对于以上代码的理解正确的有    ( )
① 连接的数据库文件名是“score.accdb”
② “ConnectionString“是 conn 对象的属性值
③ 查询的数据表名称是“stuinfo”
④ 程序运行后,a(1)=”101”
⑤ 程序运行后,读取的记录总数共n条
B.①②③ B.①③④C.①③⑤D.②④⑤
当前题号:6 | 题型:选择题 | 难度:0.99
数组d中的数据存放情况如下表,以下流程图的功能是(    )  。

d(1)
d(2)
d(3)
d(4)
d(5)
d(6)
15
10
33
11
71
9
 
A.在数组d中顺序查找10,找遍所有数据后,若找到输出”Y”,若没找到则输出”N”。
B.在数组d中顺序查找10,一旦找到则结束查找并输出”Y”;若找遍所有数据后仍没找到则输出”N”。
C.在数组d中顺序查找10,一旦找到则输出其存储位置
D.在数组d中顺序查找、统计10的个数并输出
当前题号:7 | 题型:选择题 | 难度:0.99
(加试题) 数组 a 中依次存放 6 个有序数据“ 23 33 44 55 66 77”。
Dim a(1 To 10) As Integer
Dim s As String, n, key As Integer
a(1) = 23: a(2) = 33: a(3) = 44: a(4) = 55: a(5) = 66: a(6) = 77
i = 1: j = 6: c = 0: key = 35
Do While i <= j
c = c + 1
m = (i + j) \ 2
If (j - i + 1) Mod 2 = 0 Then m = m + 1
If a(m) = key Then Exit Do
If key < a(m) Then j = m - 1 Else i = m + 1
Loop
该程序段运行后,下列各变量的值不正确的是:
A.i=3B.j=2C.c=3D.m=2
当前题号:8 | 题型:选择题 | 难度:0.99
(加试题) 有如下 VB 程序段:
Dim a(1 To 10) As Integer
Dim s As String, n, i As Integer
s = "54851845236": n = Len(s)
For i = 1 To n - 1
a(i) = Val(Mid(s, i, 2))
Next i
For i = 1 To n - 2
k = i
For j = i + 1 To n - 1
If a(k) < a(j) Then k = j
Next
If k <> i Then
t = a(k): a(k) = a(i): a(i) = t
End If
Next i
Text1.Text = Str(a(1))
该程序段运行后,文本框 Text1 中显示的内容是:
A.18B.54C.85D.8
当前题号:9 | 题型:选择题 | 难度:0.99
小明编写了一个 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
当前题号:10 | 题型:填空题 | 难度:0.99