- 基础理论
- 数据及数据库技术
- 人工智能
- 算法理论
- 过程和自定义函数
- 枚举算法及程序实现
- 解析算法及程序实现
- 递归算法及程序实现
- 排序算法及程序实现
- + 查找算法及程序实现
- 多媒体理论
- 基础软件操作
- 算法软件操作
- 多媒体软件操作
- 网络技术应用
整数序列“2,3,6,11,19,23,41,47,51”用对分查找法和顺序查找法在查找23时两种方法都能访问到的是
A.3 | B.6 | C.19 | D.47 |
编写VB程序,寻找第1位为2,第5位为5,数字长度为5的完全平方数(即开根号之后是一个整数),并统计个数。要求:单击“寻找”按钮Command1,将符合要求的五位数显示在列表框List1中,统计的个数显示在标签Label2中,界面如题图所示。

实现上述功能的VB程序代码如下:
Private Sub Command1_Click()
Dim i As Integer, n As Integer
Dim x As Integer
n = 0
For i =" 0" To 999
x = ①
If ② Then
List1.AddItem str(x)
n= n+1
End If
Next i
Label2.Caption = "共有:" + Str(n) + "个"
End Sub
(1)在设计应用程序界面时,要将按钮Command1的标题改为“寻找”,应该修改它的 属性
(2)为实现上述功能,划线①处应填入的代码为 ;
划线②处应填入的代码为 ;
(3)解决该问题主要采用的算法是

实现上述功能的VB程序代码如下:
Private Sub Command1_Click()
Dim i As Integer, n As Integer
Dim x As Integer
n = 0
For i =" 0" To 999
x = ①
If ② Then
List1.AddItem str(x)
n= n+1
End If
Next i
Label2.Caption = "共有:" + Str(n) + "个"
End Sub
(1)在设计应用程序界面时,要将按钮Command1的标题改为“寻找”,应该修改它的 属性
(2)为实现上述功能,划线①处应填入的代码为 ;
划线②处应填入的代码为 ;
(3)解决该问题主要采用的算法是
某数组有10个元素,依次为11、22、33、45、55、66、77、88、92、98,若采用对分查找法在该数组中查找数据92,依次被访问的数据为( )
A.55、88、92 | B.55、77、88、92 | C.66、88、92 | D.66、88、98、92 |
已知单调函数f(x)在[0,1]区间存在一个x0,使f(x0)=0。现用对分查找法搜索x0的值,开始搜索区间为[0,1],若经过10次对分查找后还需继续搜索,则第11次搜索区间的长度为( )
A.1/2 | B.1/10 |
C.1/102 | D.1/210 |
7位幼儿园小朋友的体重(单位kg)从低到高依次为:13,15,16,18,20,21,23。用对分查找法找到23的过程中,依次被访问到的数据是( )
A.23 | B.18,21,23 |
C.18,23 | D.18,20,21,23 |
在数组元素a(1)到a(5)中查找键值为key的数,其查找算法的VB程序段如下:
Dim a(1 To 5) As Integer
Dim Key As Integer
Private Sub Command1_Click()
t=0
For i=1 To 5
If ____①____ Then
t=i
Exit For ’②
End If
Next i
Print t
End Sub
Private Sub Form_Load()
’此过程用于对数组a和查找键Key进行赋初值,代码略
End Sub
(1)该程序段中所用的查找算法是_____________________________________。
(2)在程序①划线处,填入适当的语句或表达式,把程序补充完整:程序中①划线处应填入_____________________________________________。
当数组元素a(1)到a(5)中存储的数据为(2,5,1,9,5),查找键Key为5时:
(3)该程序运行结束,t的值是_____________________________。
(4)如果将②所标记的Exit For语句删除,该程序运行结束时,t的值是________。
Dim a(1 To 5) As Integer
Dim Key As Integer
Private Sub Command1_Click()
t=0
For i=1 To 5
If ____①____ Then
t=i
Exit For ’②
End If
Next i
Print t
End Sub
Private Sub Form_Load()
’此过程用于对数组a和查找键Key进行赋初值,代码略
End Sub
(1)该程序段中所用的查找算法是_____________________________________。
(2)在程序①划线处,填入适当的语句或表达式,把程序补充完整:程序中①划线处应填入_____________________________________________。
当数组元素a(1)到a(5)中存储的数据为(2,5,1,9,5),查找键Key为5时:
(3)该程序运行结束,t的值是_____________________________。
(4)如果将②所标记的Exit For语句删除,该程序运行结束时,t的值是________。
编写VB程序,实现如下功能:在文本框Text1中输入一个整数,单击“查找删除”按钮Command1,采用对分查找法在数组A(从小到大排列,并显示在标签Label1中)中查找该数。若找到,则从数组A中删除该数(该数后面的数组元素都前移一位),并在标签Label2中显示删除后的结果(运行效果如图所示);否则,在标签Label2中显示“该数没有找到”。

实现上述功能的VB代码如下,但加框处代码有错,请改正。
Dim A(1 To 10) As Integer ’用于保存10个按从小到大顺序排列的整数
’Form_Load事件过程产生10个整数,按升序保存在数组A中,并在标签Label1中显示Private Sub Form_Load()
’代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer,j As Integer,m As Integer,k As Integer
Dim x As Integer,f As Boolean ’变量f用于标记是否在数组中找到x
x=Val(Text1.Text)
i=1:j=10
f=False
Do While(i<=j)And (f=False)
m=Int((i+j)/2)
If A(m)=x Then f=True
If Then i=m+1 Else j=m-1’(1)
Loop
If f=True Then
For k=m To 9
’(2)
Next k
Label2.Caption=“”
For k=1 To 9
Label2.Caption=Label2.Caption+Str(A(k))+“”
Next k
Else
Label2.Caption=“该数没有找到”
End If
End Sub

实现上述功能的VB代码如下,但加框处代码有错,请改正。
Dim A(1 To 10) As Integer ’用于保存10个按从小到大顺序排列的整数
’Form_Load事件过程产生10个整数,按升序保存在数组A中,并在标签Label1中显示Private Sub Form_Load()
’代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer,j As Integer,m As Integer,k As Integer
Dim x As Integer,f As Boolean ’变量f用于标记是否在数组中找到x
x=Val(Text1.Text)
i=1:j=10
f=False
Do While(i<=j)And (f=False)
m=Int((i+j)/2)
If A(m)=x Then f=True
If Then i=m+1 Else j=m-1’(1)
Loop
If f=True Then
For k=m To 9
’(2)
Next k
Label2.Caption=“”
For k=1 To 9
Label2.Caption=Label2.Caption+Str(A(k))+“”
Next k
Else
Label2.Caption=“该数没有找到”
End If
End Sub
用VB设计查询并统计某公司的销售数据。实现如下功能:
①将所有员工的姓名和销售量存储到数组xm和xse中;
②对销售量数组进行求和,并输出该地区平均销售量(保留整数);
③根据输入“销售排名前几位”筛选出排名前几位销售人员的数据。
程序运行界面如图所示。

(1)下列程序对员工的销售额进行排序的主要算法属于 (选填:解析算法/枚举算法/冒泡排序算法/选择排序算法)
(2)实现上述功能的VB程序如下。请在划线处填入合适的代码。
Dim xse(1 To 3000) As Long '存储销售员工的销售量,最大处理个数为3000
Dim xm(1 To 3000) As String '存储销售员工的姓名
Dim mc(1 To 3000) As Integer '存储销售员工的名次
Dim num As Integer '当前员工总数
Private Sub Form_Load()
'将销售量、姓名数据存入xse和xm数组
'计算员工总数num
'代码略
End Sub
Private Sub Command1_Click()
Dim sum As Long
Dim i As Integer, flag As Integer
pm = Val(Text2.Text)
dq = Text1.Text
sum = 0
For i =" 1" To num
sum =" sum" + xse(i)
Next i
For i =" 1" To pm '对员工销售量进行排序
For j = ① To i + 1 Step -1
If xse(j - 1) < xse(j) Then
t =" xse(j" - 1): xse (j - 1) =" xse(j):" xse(j) = t
st =" xm(j" - 1): xm(j - 1) =" xm(j):" xm(j) = st
End If
Next j
Next i
mc(1) = 1
For i =" 2" To pm
If ② Then
mc(i) =" mc(i" - 1)
Else
mc(i) = i
End If
Next i
List1.Clear
List1.AddItem "排名" + "姓名" + "销售量"
For i =" 1" To pm
List1.AddItem Str(mc(i)) + " " + xm(i) + " " + Str(xse(i))
Next i
List1.AddItem dq + "平均销售额约为:" + ③
End Sub
①将所有员工的姓名和销售量存储到数组xm和xse中;
②对销售量数组进行求和,并输出该地区平均销售量(保留整数);
③根据输入“销售排名前几位”筛选出排名前几位销售人员的数据。
程序运行界面如图所示。

(1)下列程序对员工的销售额进行排序的主要算法属于 (选填:解析算法/枚举算法/冒泡排序算法/选择排序算法)
(2)实现上述功能的VB程序如下。请在划线处填入合适的代码。
Dim xse(1 To 3000) As Long '存储销售员工的销售量,最大处理个数为3000
Dim xm(1 To 3000) As String '存储销售员工的姓名
Dim mc(1 To 3000) As Integer '存储销售员工的名次
Dim num As Integer '当前员工总数
Private Sub Form_Load()
'将销售量、姓名数据存入xse和xm数组
'计算员工总数num
'代码略
End Sub
Private Sub Command1_Click()
Dim sum As Long
Dim i As Integer, flag As Integer
pm = Val(Text2.Text)
dq = Text1.Text
sum = 0
For i =" 1" To num
sum =" sum" + xse(i)
Next i
For i =" 1" To pm '对员工销售量进行排序
For j = ① To i + 1 Step -1
If xse(j - 1) < xse(j) Then
t =" xse(j" - 1): xse (j - 1) =" xse(j):" xse(j) = t
st =" xm(j" - 1): xm(j - 1) =" xm(j):" xm(j) = st
End If
Next j
Next i
mc(1) = 1
For i =" 2" To pm
If ② Then
mc(i) =" mc(i" - 1)
Else
mc(i) = i
End If
Next i
List1.Clear
List1.AddItem "排名" + "姓名" + "销售量"
For i =" 1" To pm
List1.AddItem Str(mc(i)) + " " + xm(i) + " " + Str(xse(i))
Next i
List1.AddItem dq + "平均销售额约为:" + ③
End Sub
数组a中存放了一批数据如下表,现采用对分查找方式在这批数据中查找“gou”,以下说法正确的是( )。
a(1) | a(2) | a(3) | a(4) | a(5) | a(6) | a(7) |
hou | ji | long | ma | niu | she | tu |
A.依次被比较的数据是“ma”,“ji”,“hou” |
B.依次被比较的数据是“ma”,“she”,“tu” |
C.无法进行对分查找,因为这批数据还没排好序 |
D.无法进行查找操作,因为这批数据中没有“gou” |