在以下数组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.该数组中存放的都是字符型数据,无法使用对分查找
当前题号:1 | 题型:选择题 | 难度: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
当前题号:2 | 题型:填空题 | 难度: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.②④⑤
当前题号:3 | 题型:选择题 | 难度: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的个数并输出
当前题号:4 | 题型:选择题 | 难度: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
当前题号:5 | 题型:选择题 | 难度:0.99
(加试题)小王编写了一个猜价格的VB程序,程序界面如图所示。程序运行时,在列表框List1中显示20个随机生成的在[150,250]之间的价格及其序号。在文本框Text1中输入报价,单击Command1 “猜测”按钮后,在Label3中输出猜中价格对应的序号。

实现上述功能的VB程序如下,但加框处代码有误,请改正。
Dim d(1 To 20) As Integer
Private Sub Form_Load()
For i = 1 To 20 '生成20个随机价格
d(i)=Int(Rnd*100)+150 ‘(1)________
Next i
For i = 1 To 19
For j = 20 To i + 1 Step -1
If  d(j) < d(j - 1) Then
t = d(j): d(j) = d(j - 1): d(j - 1) = t
End If

  Next j

Next i
For i = 1 To 20

List1.AddItem Str(i) + Str(d(i))

Next i
End Sub
Private Sub Command1_Click()
Dim baojia As Integer,i as integer, j as integer, t as integer , m as integer
Randomize
List1.Clear
baojia = Val(Text1.Text)
i = 1
j = 20
Do While i<= j
m=(i+j)/2   ‘(2)________
If  baojia = d(m) Then
Label3.Caption = "猜中  第" + Str(i) + "个"
Exit Do
ElseIf  baojia<d(m) Then
j = m - 1
Else
i=m-1 ‘(3)________
End If
Loop
End Sub
当前题号:6 | 题型:填空题 | 难度:0.99

   在我国古代《孙子算经》中曾经提出这样一个问题,原文是这样的:“今有物,不知其数,三三数之,剩二;五五数之,剩三;七七数之,剩二;问物几何?”试用枚举算法来解决这一个问题。现分析如下,所寻找之数为满足如下条件的自然数:以3除余2,以5除余3,以7除余2。程序将从自然数1开始依次寻找,逐一判断某一自然数是否满足全部条件,直至在指定范围内找到满足条件的所有自然数。程序代码如下,请补充完整。


Private Sub Command1_Click()
Dim p As Integer    'sum 用来统计符合条件的自然数个数'
Dim n As Integer
Dim max As Integer   '指定查找范围的最大自然数
List1.Clear
p = 0
max = Val(Text1.Text)   'Text1文本框中输入
n = 0
Do While n <= max
n = n + 1    '从自然数1开始不断往上寻找
If   Then
List1.AddItem Str(n)    '找到后在List1中显示结果
p=p+1
End If
Loop
List1.AddItem ("共计" + Str(n) + "个")   ②
End Sub
应用程序界面设计时,为添加“ Text1”对象,应使用下图图所示的“控件工具箱”中的_________(填写相应编号),为了让文本框中的内容没有输入前显示为空,则可将_________属性值设置为空。

(2)程序中①划线处应填入___________,程序中②处一句话中有错误,应更改为______________。
当前题号:7 | 题型:填空题 | 难度:0.99
某对分查找算法的VB 程序段如下:
i=l:j=9:n=0
key=Val(Text1,Text)
Do While i<=j
n=n+1
m=Fix((i+j) / 2)
If key=d(m) Then Exit Do    ’Exit Do 表示退出循环
If key<d(m) Then j=m-1 Else i=m+1
Loop
数组元素d(1)到d(9)的值依次为“7,12,18,25,39,58,61,72,86”。若该程序段运行结束后,n 的值为2,则key 的值是(  )
A.39B.18 或61C.18 或72D.12 或61
当前题号:8 | 题型:选择题 | 难度:0.99
7位学生的身高(单位:cm)从高到低依次为:178,177,175,172,170,165,162。用对分查找法找到178 的过程中,依次被访问到的数据是(  )
A.178B.172,175,178C.172,177,178D.172,175,177,178
当前题号:9 | 题型:选择题 | 难度:0.99
(加试题)某查找算法的 VB 程序段如下:
i = 1: j = 7: n = 0
Key = Val(Text1.Text)
Do While i <= j
n = n + 1
m = Int((i + j) / 2)
If Key = a(m) Then Exit Do
If Key < a(m) Then j = m - 1 Else i = m + 1
Loop
数组元素 a(1)到 a(7)存放的数值依次为 8,21,27,36,79,28,98,若该程序段运行结束后,n 的值为 2,则 Text1 中输入的要查找的数是()
A.27 或 79B.28C.21 或 28D.21
当前题号:10 | 题型:选择题 | 难度:0.99