- 基础理论
- 数据及数据库技术
- 人工智能
- 算法理论
- 算法实例
- 面向对象程序设计 VB开发工具
- + 算法实例的程序实现
- 过程和自定义函数
- 枚举算法及程序实现
- 解析算法及程序实现
- 递归算法及程序实现
- 排序算法及程序实现
- 查找算法及程序实现
- 算法及算法的表示方法
- 多媒体理论
- 基础软件操作
- 算法软件操作
- 多媒体软件操作
- 网络技术应用
“神舟六号”飞船升入空后进入一个椭圆形的轨道。轨道远地点高度是347千米,比近近地点高度高147千米。求近地点的高度。程序设计界面和部分代码如下所示。

图 1

图 2
Private Sub ①
Dim i, j As Integer A
(1)该程序开始运行时,直接得出近地点的高度,则在①处应填_____________________
(2)程序运行时,出现如图所示错误,对照如图,修改一处程序以使此程序正确运行。则修改______语句(选填:A/B/C/D),修改后的语句为_________________

图 1

图 2
Private Sub ①
Dim i, j As Integer A
i = 347 B
j = i – 147 C
Text1.Text = Str(j) D
End Sub(1)该程序开始运行时,直接得出近地点的高度,则在①处应填_____________________
(2)程序运行时,出现如图所示错误,对照如图,修改一处程序以使此程序正确运行。则修改______语句(选填:A/B/C/D),修改后的语句为_________________
关于查找,下列叙述正确的是( )
A.顺序查找就是按照从大到小的顺序逐一查找 |
B.二分查找就是按照从大到小顺序逐一查找 |
C.顺序查找一定比二分查找搜索速度慢 |
D.二分查找要求数据是有序的 |
水仙花数是指一个三位数,它的各位数的立方和正好等于该数本身。如: 153=1×1×1+5×5×5+3×3×3
小张设计了一个算法来输出所有的水仙花数,具体程序如下。

(1)在程序中常见用于解决问题的方法有解析法、穷举法、递归法等,本题中使用了哪种方法?
___________________________________
(2)程序中定义了几个变量?
___________________________________
(3)将程序中①的代码补充完整。
___________________________________
(4)将程序中②的代码补充完整。
___________________________________
(5)在for循环结构中,循环体执行的次数是多少?
___________________________________
(6)在本题中变量c主要用来存放这个三位数中的百位、十位还是个位上的数?
___________________________________
小张设计了一个算法来输出所有的水仙花数,具体程序如下。

(1)在程序中常见用于解决问题的方法有解析法、穷举法、递归法等,本题中使用了哪种方法?
___________________________________
(2)程序中定义了几个变量?
___________________________________
(3)将程序中①的代码补充完整。
___________________________________
(4)将程序中②的代码补充完整。
___________________________________
(5)在for循环结构中,循环体执行的次数是多少?
___________________________________
(6)在本题中变量c主要用来存放这个三位数中的百位、十位还是个位上的数?
___________________________________
《张丘建算经》中有如下问题:今有鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买鸡百只,问:鸡翁、母、雏各几何?利用VB程序解决这个问题,程序界面如图所示。


(1)根据下面代码可知,“求解”命令按钮的名称是:__________________
(2)解决此问题的VB程序代码如下,请在划线处填入合适的代码。
Private Sub Comd1_Click()
Dim x As Integer, y As Integer, z As Integer
Dim count As Integer
count = 0
For x = 0 To 20
For y = 0 To 33
①______
If x * 5 + y * 3 + z / 3 = 100 Then
List1.AddItem "公鸡" + Str(x) + "只,母鸡" + Str(y) + "只,小鸡" + Str(z) + "只。"
count =②___
End If
Next y
Next x
Label1.Caption = "共有" +③___ + "种买法。"
End Sub


(1)根据下面代码可知,“求解”命令按钮的名称是:__________________
(2)解决此问题的VB程序代码如下,请在划线处填入合适的代码。
Private Sub Comd1_Click()
Dim x As Integer, y As Integer, z As Integer
Dim count As Integer
count = 0
For x = 0 To 20
For y = 0 To 33
①______
If x * 5 + y * 3 + z / 3 = 100 Then
List1.AddItem "公鸡" + Str(x) + "只,母鸡" + Str(y) + "只,小鸡" + Str(z) + "只。"
count =②___
End If
Next y
Next x
Label1.Caption = "共有" +③___ + "种买法。"
End Sub
(加试题)有以下 VB 程序段
For i = 1 To 2
For j = 1 To 4-i
Next i
数组元素 a(1)到 a(5)的值依次为“51,36,78,18,15”,经过该程序段“加工”后,数组元素
a(1)到 a(5)的值依次为( )
For i = 1 To 2
For j = 1 To 4-i
If d(j) > d(j +1)Then
t = d(j):d(j) = d(j +1):d(j +1) = tEnd If
Next jNext i
数组元素 a(1)到 a(5)的值依次为“51,36,78,18,15”,经过该程序段“加工”后,数组元素
a(1)到 a(5)的值依次为( )
A.36,18, 51,78,15 | B.36,18,15,51,78 |
C.15,18,36,51,78 | D.36, 51,18,78,15 |
(加试题)某字符串(字节数为 2 的倍数)编码规则如下:
(1)将该字符串内码分成 2 个字节一组,每个字节前补上一个 0,构成 9 位二进制,顺次链接后得到 18 位二进制;
(2)将得到的 18 位二进制数字分成 3 组,每组 6 位;
(3)在每组数字前补上两个 0,得到 3 个字节的二进制数;
(4)将(3)中得到的三个字节的二进制数分别转换为十进制数;
(5)将每个十进制数转换为 1 个加密字符,对应的“ 密码表 ”按数值由小到大依次为 012345678ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/” 小明按照上述方法,设计了一个字符串(仅包含 ASCII 字符)加密的 VB 程序,功能如下:单击“加密”按钮 Command1,程序依次将文本框 Text1 中每 2 个字符的 ASCII 码值按编码规则转换为三个加密字符,连接这些加密字符,最后在文本框 Text2 中输出加密结果。程序效果如下图所示。

实现上述功能的 VB 程序如下:
(1)在 Text1 中输入明文“AB”,用上述加密算法得到的密文为_____。
(2)实现上述功能的 VB 程序如下。请在划线处填入合适的代码。
Function cc(n As Integer) As String
Dim s As String
s = "012345678ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/"
①_____
End Function
Private Sub Command1_Click()
Dim n As Integer, s As String, i As Integer, ss As String
Dim a1 As Integer, a2 As Integer
Dim b1 As Integer, b2 As Integer, b3 As Integer
s = Text1.Text
n = Len(s)
ss = ""
For i = 1 To n Step 2
a1 = Asc(Mid(s, i, 1))
②_____
b1 = a1 \ 8
b2 = ③_____
b3 = a2 Mod 64
ss = ss + cc(b1) + cc(b2) + cc(b3) Next i
Text2.Text = ss
End Sub
(1)将该字符串内码分成 2 个字节一组,每个字节前补上一个 0,构成 9 位二进制,顺次链接后得到 18 位二进制;
(2)将得到的 18 位二进制数字分成 3 组,每组 6 位;
(3)在每组数字前补上两个 0,得到 3 个字节的二进制数;
(4)将(3)中得到的三个字节的二进制数分别转换为十进制数;
(5)将每个十进制数转换为 1 个加密字符,对应的“ 密码表 ”按数值由小到大依次为 012345678ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/” 小明按照上述方法,设计了一个字符串(仅包含 ASCII 字符)加密的 VB 程序,功能如下:单击“加密”按钮 Command1,程序依次将文本框 Text1 中每 2 个字符的 ASCII 码值按编码规则转换为三个加密字符,连接这些加密字符,最后在文本框 Text2 中输出加密结果。程序效果如下图所示。

实现上述功能的 VB 程序如下:
(1)在 Text1 中输入明文“AB”,用上述加密算法得到的密文为_____。
(2)实现上述功能的 VB 程序如下。请在划线处填入合适的代码。
Function cc(n As Integer) As String
Dim s As String
s = "012345678ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/"
①_____
End Function
Private Sub Command1_Click()
Dim n As Integer, s As String, i As Integer, ss As String
Dim a1 As Integer, a2 As Integer
Dim b1 As Integer, b2 As Integer, b3 As Integer
s = Text1.Text
n = Len(s)
ss = ""
For i = 1 To n Step 2
a1 = Asc(Mid(s, i, 1))
②_____
b1 = a1 \ 8
b2 = ③_____
b3 = a2 Mod 64
ss = ss + cc(b1) + cc(b2) + cc(b3) Next i
Text2.Text = ss
End Sub
编“数字按序组合输出十进制数”程序,实现如下功能:在文本框 Text1 中输入包含数字的字符串,单击“生成”按钮 Command1,程序将输入的字符串中所有数字按序组合成一个十进制数,最后将该十进制数在文本框 Text2 中显示。程序运行界面如下图所示。
(1) 要使程序运行时,窗体 Form1 标题显示“数字按序组合输出十进制数”,可在 Form_Load 事件过程屮添加语句_________(单选,填字母:

(2)实现上述功能的 VB 程序如下,请在划线处填入合适的代码。
Private Sub Command1_Click() Dim s As String , ch As String Dim x As Integer , i As Integer s = Text1.Text
x = 0 i = 1
For i = 1 To Len(s)
①_____________
If ch >= "0" And ch <= "9" Then
②_________
End If
Next i
Text2.Text = Str(x)
End Sub
(3)若文本框 Text1 中输人的内容为“My3day65New”,单击“生成”按钮后,则文本框 Text2 中显示的内容是_____。
(1) 要使程序运行时,窗体 Form1 标题显示“数字按序组合输出十进制数”,可在 Form_Load 事件过程屮添加语句_________(单选,填字母:
A.Form1 = "数字按序组合输出十进制数" / | B.Forml.Text="数字按序组合输出十进制数"/ | C.Form1.Caption= "数字按序组合输出十进制数")。 |

(2)实现上述功能的 VB 程序如下,请在划线处填入合适的代码。
Private Sub Command1_Click() Dim s As String , ch As String Dim x As Integer , i As Integer s = Text1.Text
x = 0 i = 1
For i = 1 To Len(s)
①_____________
If ch >= "0" And ch <= "9" Then
②_________
End If
Next i
Text2.Text = Str(x)
End Sub
(3)若文本框 Text1 中输人的内容为“My3day65New”,单击“生成”按钮后,则文本框 Text2 中显示的内容是_____。
(加试题)某活动要从 100 名参赛者中选出成绩最高的前十名给予一定的奖励。活动组织者编写了如下程序,功能是根据成绩进行排序,程序中数组 a 保存所有参赛者的组次,数组 b 保存对应的成绩,如第 1 位参赛者的组次 1 保存在 a(1)中,成绩保存在 b(1)中。程序界面如图所示,左边列表框 List1 中显示原始数据(序号和相应的成绩),单击“排序”按钮(Command1),排序后的结果按成绩从高到低显示前 10 名选手的序号和成绩在列表框 List2 中,若最后一名成绩有相同的也一起输出。界面如下图所示:

实现上述功能的 VB 程序如下,但划线处代码有错,请改正。
Const n=100
Dim a(1 To n) As Integer
Dim b(1 To n) As Integer
Private Sub Form_Load() '窗体被加载时
‘获取原始数据,将参赛者序号和最后得分分别存在数组 a 和数组 b 内,并在列表框 List1 中显示。代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer, temp As Integer
List2.Clear
For i = 1 To 10 k = i
For j = 10 To i+1 ‘①________
If b(k) < b(j) Then k = j
End If
Next j
If k <> i Then
temp = b(i): b(i) = b(k): b(k) = temp temp = a(i): a(i) = a(k): a(k) = temp
End If
List2.AddItem Str(a(i)) + " " + Str(b(i)) Next i
m = 10
For i = 11 To n
If b(i) = b(i-1) then ‘②________
m = m + 1
List2.AddItem Str(a(i)) + " " + Str(b(i)) End If
Next i
Label3.Caption = "本次十佳歌手一共有" + Str(m) + "组"
End Sub

实现上述功能的 VB 程序如下,但划线处代码有错,请改正。
Const n=100
Dim a(1 To n) As Integer
Dim b(1 To n) As Integer
Private Sub Form_Load() '窗体被加载时
‘获取原始数据,将参赛者序号和最后得分分别存在数组 a 和数组 b 内,并在列表框 List1 中显示。代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer, temp As Integer
List2.Clear
For i = 1 To 10 k = i
For j = 10 To i+1 ‘①________
If b(k) < b(j) Then k = j
End If
Next j
If k <> i Then
temp = b(i): b(i) = b(k): b(k) = temp temp = a(i): a(i) = a(k): a(k) = temp
End If
List2.AddItem Str(a(i)) + " " + Str(b(i)) Next i
m = 10
For i = 11 To n
If b(i) = b(i-1) then ‘②________
m = m + 1
List2.AddItem Str(a(i)) + " " + Str(b(i)) End If
Next i
Label3.Caption = "本次十佳歌手一共有" + Str(m) + "组"
End Sub
模拟一个简单计算器,输入两个数和一个运算符(加、减、乘、除),进行算术运算,并输出运算结果。程序界面如图所示,在文本框Text1输入第一个数a,在文本框Text2输入第二个数b,在文本框Text3输入运算符ch,在文本框Text4中输出结果。

当输入的运算符不是加、减、乘、除四种运算符时,则输出“运算符不正确”;当进行除法运算时,如果除数为0,提示输出“除数不能为零”。
(1)若想要在程序启动时清空文本框Text4中显示的内容,需要在Form_Load()中添加________(单选,选填字母:
(2)相应的Visual Basic程序如下,在①、②、③划线处,填入合适的语句或表达式,把程序补充完整。
Private Sub Command1_Click()
Dim a As Single, b As Single, ch As String
a = Val(Text1.Text)
b = Val(Text2.Text)
Text4.Text = Str(a + b)
ElseIf ch = "*" Then
Text4.Text = Str(a * b)
ElseIf ch = "-" Then
Text4.Text = Str(a - b)
ElseIf ch = "/" Then
If ②__________Then Text4.Text = Str(a / b) Else Text4.Text = "除数不能为零"
Else
End Sub

当输入的运算符不是加、减、乘、除四种运算符时,则输出“运算符不正确”;当进行除法运算时,如果除数为0,提示输出“除数不能为零”。
(1)若想要在程序启动时清空文本框Text4中显示的内容,需要在Form_Load()中添加________(单选,选填字母:
A.Text4.Caption="" | B.Text4.Text="" | C.Text4.Clear)语句。 |
Private Sub Command1_Click()
Dim a As Single, b As Single, ch As String
a = Val(Text1.Text)
b = Val(Text2.Text)
①______
If ch = "+" ThenText4.Text = Str(a + b)
ElseIf ch = "*" Then
Text4.Text = Str(a * b)
ElseIf ch = "-" Then
Text4.Text = Str(a - b)
ElseIf ch = "/" Then
If ②__________Then Text4.Text = Str(a / b) Else Text4.Text = "除数不能为零"
Else
③____
End IfEnd Sub