- 基础理论
- 数据及数据库技术
- 人工智能
- 算法理论
- 算法实例
- + 面向对象程序设计 VB开发工具
- 程序设计语言
- 循环结构
- 分支结构
- 顺序结构
- 类、对象、属性、方法、事件和事件处理的概念
- VB应用程序的界面设计与调试
- 基本数据类型
- 常量、变量、数组
- 常用的标准函数
- 基本运算及表达式
- 赋值语句
- 选择语句
- 循环语句
- 算法实例的程序实现
- 算法及算法的表示方法
- 多媒体理论
- 基础软件操作
- 算法软件操作
- 多媒体软件操作
- 网络技术应用
条形码是按照一定编码规则排列的图形标识符。如右图所示,条形码下方数字左边12位代表信息,最右边一位是校验码。校验码产生方法如下:

①把条形码下方数字从右往左依次编序号为“1,2,3,4……”;
②从序号2开始把所有偶数序号位上的数相加求和,并乘以3;
③从序号3开始把所有奇数序号上的数相加求和;
④把第②和第③步结果相加求和;
⑤10减去第④步结果的个位数,得出校验码(如果差值为10,则校验码为0);
如条形码的数字为:977167121601X(X为校验码),则校验码主要产生步骤如下:
1) (1+6+2+7+1+7)×3=72
2) 0+1+1+6+7+9=24
3) 72+24=96
4) 10-6=4
所以最后校验码X=4,此条形码数字为9771671216014。
小何为此编写了VB程序,用以验证条形码输入正确与否。程序运行时,从文本框Text1获取条形码数字部分,单击按钮Command1后,在列表框List1中输出结果。实现上述功能的VB代码如下,但加框处代码有错,请改正。
Private Sub Command1_Click()
Dim i As Integer, b As String, Lb As Integer
Dim s1 As Integer, s2 As Integer, tmp As Integer
Dim c As String
Dim d(1 To 13) As Integer '存储数据
Dim res As String '存储结果
b =" Text1.Text" '输入
Lb = Len(b)
s1 =" 0" : s2 = 0
flag = True
res = "输入错误!"
If Lb =" 13" Then
For i =" 1" To 13
c =" Mid(b," Lb - i + 1, 1)
If c >= "0" And c <= "9" Then
d(i) =" Val(c)" '输入转换
Else
flag =" False" : Exit For
End If
Next i
If flag Then
For i =" 2" To Lb Step 2
s1 = s1 + d(i) '参数计算1
s2 =s2 + d(i) '参数计算2 ①
Next i
tmp =" s1" * 3 + s2
If tmp Mod 10 Then res = "输入正确!" ②
End If
End If
List1.AddItem res
End Sub

①把条形码下方数字从右往左依次编序号为“1,2,3,4……”;
②从序号2开始把所有偶数序号位上的数相加求和,并乘以3;
③从序号3开始把所有奇数序号上的数相加求和;
④把第②和第③步结果相加求和;
⑤10减去第④步结果的个位数,得出校验码(如果差值为10,则校验码为0);
如条形码的数字为:977167121601X(X为校验码),则校验码主要产生步骤如下:
1) (1+6+2+7+1+7)×3=72
2) 0+1+1+6+7+9=24
3) 72+24=96
4) 10-6=4
所以最后校验码X=4,此条形码数字为9771671216014。
小何为此编写了VB程序,用以验证条形码输入正确与否。程序运行时,从文本框Text1获取条形码数字部分,单击按钮Command1后,在列表框List1中输出结果。实现上述功能的VB代码如下,但加框处代码有错,请改正。
Private Sub Command1_Click()
Dim i As Integer, b As String, Lb As Integer
Dim s1 As Integer, s2 As Integer, tmp As Integer
Dim c As String
Dim d(1 To 13) As Integer '存储数据
Dim res As String '存储结果
b =" Text1.Text" '输入
Lb = Len(b)
s1 =" 0" : s2 = 0
flag = True
res = "输入错误!"
If Lb =" 13" Then
For i =" 1" To 13
c =" Mid(b," Lb - i + 1, 1)
If c >= "0" And c <= "9" Then
d(i) =" Val(c)" '输入转换
Else
flag =" False" : Exit For
End If
Next i
If flag Then
For i =" 2" To Lb Step 2
s1 = s1 + d(i) '参数计算1
s2 =s2 + d(i) '参数计算2 ①
Next i
tmp =" s1" * 3 + s2
If tmp Mod 10 Then res = "输入正确!" ②
End If
End If
List1.AddItem res
End Sub
有如下部分程序段:
a(1) = "20": a(2) = "16": a(3) = "12": a(4) = "o": a(5) = "k"
For i =" 1" To 4
For j =" 5" To i + 1 Step -1
If a(j) >a(j - 1) Then t =" a(j):" a(j) =" a(j" - 1): a(j - 1) = t
Next j
List1.Additem a(i)
Next i
程序运行后列表框中显示的结果是
a(1) = "20": a(2) = "16": a(3) = "12": a(4) = "o": a(5) = "k"
For i =" 1" To 4
For j =" 5" To i + 1 Step -1
If a(j) >a(j - 1) Then t =" a(j):" a(j) =" a(j" - 1): a(j - 1) = t
Next j
List1.Additem a(i)
Next i
程序运行后列表框中显示的结果是
A.12,16,20,o,k | B.o,k,20,16 |
C.o,k,20,16,12 | D.20,16,12 |
编写VB程序,实现如下功能:在文本框Text1中输入十六进制数,单击“转换”按钮Command1,在列表框List1中输出对应的十进制数,运行界面如图所示,程序代码如下。

(1)要调整Label1中的字体大小,可选择在属性面板中设置Label1的 。(单选,填字母:A.Caption / B.Font /
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim s As String, c As String, t As String
Dim i As Integer, b As Integer, ans As Long
Dim flag As Boolean
s = ①
b = Len(s)
flag = True
ans = 0
For i =" 1" To b
c =" Mid(s," i, 1)
If c >= "0" And c <= "9" Then
ans =" ans" * 16 + Asc(c) - Asc("0")
ElseIf c >= "A" And c <= "F" Then
ans =" ans" * 16 + ②
Else
③ '输入情况有误
Exit For
End If
Next i
If flag Then t =" Str(ans)" Else t ="输入有误!"
List1.AddItem s + "-->" + t
End Sub
(3)由上述算法可知,运行时在Text1框中输入“d8”,列表框List1中添加的条目为 。(单选,填字母:A. d8-->216/ B. d8-->输入有误!)

(1)要调整Label1中的字体大小,可选择在属性面板中设置Label1的 。(单选,填字母:A.Caption / B.Font /
A.Height) |
Private Sub Command1_Click()
Dim s As String, c As String, t As String
Dim i As Integer, b As Integer, ans As Long
Dim flag As Boolean
s = ①
b = Len(s)
flag = True
ans = 0
For i =" 1" To b
c =" Mid(s," i, 1)
If c >= "0" And c <= "9" Then
ans =" ans" * 16 + Asc(c) - Asc("0")
ElseIf c >= "A" And c <= "F" Then
ans =" ans" * 16 + ②
Else
③ '输入情况有误
Exit For
End If
Next i
If flag Then t =" Str(ans)" Else t ="输入有误!"
List1.AddItem s + "-->" + t
End Sub
(3)由上述算法可知,运行时在Text1框中输入“d8”,列表框List1中添加的条目为 。(单选,填字母:A. d8-->216/ B. d8-->输入有误!)
某算法的部分流程图如图所示,若n输入的值为1,则变量s的值是多少?如将循环体“s=s+n和n=n+2”交换顺序,则s值又是多少?


A.25、26 |
B.26、25 |
C.36、36 |
D.26、36 |
曲哲同学设计了一个英文字符串的加密算法,其加密的方法如下:
1.从被加密字符串中获取单个字符,然后得到其ascii码的8位二进制编码。
2.将字符的二进制编码反向,得到其逆序二进制码。
3.将逆序二进制码的每4位转换为相应的十六进制编码,即得到单个字符加密后的字符串。
4.以此类推,直到所有字符加密完成,得到加密字符串。
具体程序界面如下图,在text1中输入字符串,点击“加密”按钮command1后,在text2中显示加密后的字符串。
(1)已知字符a的ascii码为97,则字符串idear加密后的字符串为____________________。
(2)阅读整段程序,程序中①画线处应填入
程序中②画线处应填入 。[:学+科+网]

Private Sub Command1_Click()
Dim s As String, ch As String
Dim result As String, chA As String, chB As String
Dim i As Integer, j As Integer
Dim n As Integer, m As Integer
s = Text1.Text
n = Len(s)
result = "": c = "0123456789ABCDEF"
For i =" 1" To n
ch = ①
ch = niXu(ch)
m = 0
For j =" 1" To 4 ' 获取二进制码前4位的值
②
Next
chA =" Mid(c," m + 1, 1)
m = 0
For j =" 5" To Len(ch)
m =" m" * 2 + Val(Mid(ch, j, 1))
Next
chB =" Mid(c," m + 1, 1)
result =" result" + chA + chB
Next
Text2.Text = result
End Sub
' 得到单个字符ch的8位二进制编码
Function D2B(ByVal ch As String) As String
Dim s As String
Dim data As Integer, i As Integer
data = Asc(ch):s = ""
Do While data > 0
s ="Str(data" Mod 2) + s
data =" data" \ 2
Loop
If Len(s) < 8 Then
For i =" 1" To 8 - Len(s)
s = "0" + s
Next
D2B = s
Else
D2B = s
End If
End Function
' 返回字符串s的逆序
Function niXu(ByVal s As String) As String
Dim i As Integer:Dim r As String
r = ""
For i =" Len(s)" To 1 Step -1
r =" r" + Mid(s, i, 1)
Next
niXu = r
End Function
1.从被加密字符串中获取单个字符,然后得到其ascii码的8位二进制编码。
2.将字符的二进制编码反向,得到其逆序二进制码。
3.将逆序二进制码的每4位转换为相应的十六进制编码,即得到单个字符加密后的字符串。
4.以此类推,直到所有字符加密完成,得到加密字符串。
具体程序界面如下图,在text1中输入字符串,点击“加密”按钮command1后,在text2中显示加密后的字符串。
(1)已知字符a的ascii码为97,则字符串idear加密后的字符串为____________________。
(2)阅读整段程序,程序中①画线处应填入
程序中②画线处应填入 。[:学+科+网]

Private Sub Command1_Click()
Dim s As String, ch As String
Dim result As String, chA As String, chB As String
Dim i As Integer, j As Integer
Dim n As Integer, m As Integer
s = Text1.Text
n = Len(s)
result = "": c = "0123456789ABCDEF"
For i =" 1" To n
ch = ①
ch = niXu(ch)
m = 0
For j =" 1" To 4 ' 获取二进制码前4位的值
②
Next
chA =" Mid(c," m + 1, 1)
m = 0
For j =" 5" To Len(ch)
m =" m" * 2 + Val(Mid(ch, j, 1))
Next
chB =" Mid(c," m + 1, 1)
result =" result" + chA + chB
Next
Text2.Text = result
End Sub
' 得到单个字符ch的8位二进制编码
Function D2B(ByVal ch As String) As String
Dim s As String
Dim data As Integer, i As Integer
data = Asc(ch):s = ""
Do While data > 0
s ="Str(data" Mod 2) + s
data =" data" \ 2
Loop
If Len(s) < 8 Then
For i =" 1" To 8 - Len(s)
s = "0" + s
Next
D2B = s
Else
D2B = s
End If
End Function
' 返回字符串s的逆序
Function niXu(ByVal s As String) As String
Dim i As Integer:Dim r As String
r = ""
For i =" Len(s)" To 1 Step -1
r =" r" + Mid(s, i, 1)
Next
niXu = r
End Function
某校有100个学生的期末成绩存储在数据库中,并已经按学号升序排序,学号编号从1到100。现要求找出成绩最高的学生的得分。如果有多个符合要求的学生,只输出学号排在前面的。小吴为此编写了VB程序,程序运行时,单击按钮Command1后,在文本框Text1中输出最大成绩。实现上述功能的VB代码如下,请补全代码。
Dim a(1 To 100) As Single '依次存储100个学生成绩
Const n = 100
Private Sub Form_Load()
'本过程从数据库中读取1到100号学生成绩,并存储在数组a中
'代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, max As single
max = ① (1分)
For i =" 2" To n
if ② (2分)
Next i
Text1.Text = "成绩最高分是:" + Str(max)
End Sub
(1)程序中①画线处应填入 。
(2)程序中②画线处应填入 。
Dim a(1 To 100) As Single '依次存储100个学生成绩
Const n = 100
Private Sub Form_Load()
'本过程从数据库中读取1到100号学生成绩,并存储在数组a中
'代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, max As single
max = ① (1分)
For i =" 2" To n
if ② (2分)
Next i
Text1.Text = "成绩最高分是:" + Str(max)
End Sub
(1)程序中①画线处应填入 。
(2)程序中②画线处应填入 。
编写VB程序,界面设计如图所示,使其具有下列功能:在文本框Text1中输入一个小于20的正整数n,单击“计算”按钮Command1,计算斐波那契数列中第n项的值,并在标签Label2中输出结果;若输入错误,则在标签Label2中显示相应的提示信息。(斐波那契数列是指这样的数列:1,1,2,3,5,8,13…。即:第1项和第2项的值均为1,从第3项开始,每一项的值是它前面两项之和)

(1)代码“Private Sub Command1_Click()”中的Command1 是 。(单选,填字母:
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim n As Long, k As Integer
Dim f1 As Long, f2 As Long, f As Long
_______①_________ =Val(Text1.Text)
If n >=" 20" Or n <=" 0" Then
Label2.Caption = "输入的数据有误"
Else[:Z+xx+k.Com]
If n <=" 2" Then ' 第1,2个元素的值都为1
f = 1
Else
f1 = 1
f2 = 1
For k =" 3" To m
f =" f1" + f2
f1 = f2
f2 = f
Nextk
End If
Label2.Caption = "斐波那契数列第" + Str(n) + "项的值为" + ②
End If
End Sub
(3)若在文本框Text1.Text输入21,则标签Label2显示的内容为 。

(1)代码“Private Sub Command1_Click()”中的Command1 是 。(单选,填字母:
A.对象名/ | B.属性名/ | C.属性值/ | D.事件名) |
Private Sub Command1_Click()
Dim n As Long, k As Integer
Dim f1 As Long, f2 As Long, f As Long
_______①_________ =Val(Text1.Text)
If n >=" 20" Or n <=" 0" Then
Label2.Caption = "输入的数据有误"
Else[:Z+xx+k.Com]
If n <=" 2" Then ' 第1,2个元素的值都为1
f = 1
Else
f1 = 1
f2 = 1
For k =" 3" To m
f =" f1" + f2
f1 = f2
f2 = f
Nextk
End If
Label2.Caption = "斐波那契数列第" + Str(n) + "项的值为" + ②
End If
End Sub
(3)若在文本框Text1.Text输入21,则标签Label2显示的内容为 。
有如下 V B 程序段:
Dim s(1 To 6) As String
Text1.Text = ""
For i =" 1" To 5
For j =" i" + 1 To 6
If s(i) + s(j) < s(j) + s(i) Then
t =" s(j):" s(j) =" s(i):" s(i) = t
End If
Next j
Next i
For i =" 1" To 6
Text1.Text =" Text1.Text" + s(i)
Next i
如果程序运行,一开始当数组元素s(1)到s(6)的值依次为“4”、“343”、“312”、“12”、“246”、“121”,运行该段代码后,文本框Text1中显示的内容为( )
Dim s(1 To 6) As String
Text1.Text = ""
For i =" 1" To 5
For j =" i" + 1 To 6
If s(i) + s(j) < s(j) + s(i) Then
t =" s(j):" s(j) =" s(i):" s(i) = t
End If
Next j
Next i
For i =" 1" To 6
Text1.Text =" Text1.Text" + s(i)
Next i
如果程序运行,一开始当数组元素s(1)到s(6)的值依次为“4”、“343”、“312”、“12”、“246”、“121”,运行该段代码后,文本框Text1中显示的内容为( )
A.434331224612121 | B.434331224612112 |
C.343312246121124 | D.121122463123434 |
编写VB程序,实现如下功能:在文本框Text1中输入整数n(1≤n≤10),单击“生成矩阵”按钮Command1,生成n2个10到99之间(包含10和99)的随机整数,并以n行、n列矩阵的形式显示在列表框List1中,再单击“对角线”按钮Command2,则在标签Label1中输出该矩阵对角线(左上角到右下角)上的数值,运行界面如图所示,程序代码如下。
(1)要使文本框Text1上显示的默认文本由“8”改为“10”,可在其属性窗口中将________属性的属性值改为“10”。

(2)为了实现上述功能,请在划线处填入合适的代码。
Const MAXNUM = 100
Dim i As Integer, n As Integer
Dim a(1 To MAXNUM ^ 2) As Integer
Private Sub Command1_Click()
Dim line As String
n = Val(Text1.Text)
line = ""
List1.Clear
Randomize
For i = 1 To n ^ 2
a(i) = ①
If i > 1 And i Mod n =" 1" Then
List1.AddItem line
line = Str(a(i))
Else
line = ②
End If
Next i
List1.AddItem line
End Sub
Private Sub Command2_Click()
Label1.Caption = ""
For i = 1 to ③
Label1.Caption =" Label1.Caption" & Str(a(i + (i - 1) * n))
Next i
End Sub
(1)要使文本框Text1上显示的默认文本由“8”改为“10”,可在其属性窗口中将________属性的属性值改为“10”。

(2)为了实现上述功能,请在划线处填入合适的代码。
Const MAXNUM = 100
Dim i As Integer, n As Integer
Dim a(1 To MAXNUM ^ 2) As Integer
Private Sub Command1_Click()
Dim line As String
n = Val(Text1.Text)
line = ""
List1.Clear
Randomize
For i = 1 To n ^ 2
a(i) = ①
If i > 1 And i Mod n =" 1" Then
List1.AddItem line
line = Str(a(i))
Else
line = ②
End If
Next i
List1.AddItem line
End Sub
Private Sub Command2_Click()
Label1.Caption = ""
For i = 1 to ③
Label1.Caption =" Label1.Caption" & Str(a(i + (i - 1) * n))
Next i
End Sub
某对分査找算法的VB程序段如下:
i=" 1" : j =9 : n ="0"
key="Val(" Textl.Text)
Do While i <= j[ZXXK]
m="(i" + j) \ 2
If key = d(m) Then
Exit Do

j=" m" - 1
Else
i=m+1
End If
Loop
方框中的正确代码应为
i=" 1" : j =9 : n ="0"
key="Val(" Textl.Text)
Do While i <= j[ZXXK]
m="(i" + j) \ 2
If key = d(m) Then
Exit Do

j=" m" - 1
Else
i=m+1
End If
Loop
方框中的正确代码应为
A.End If | B.If key < d(m) Then |
C.ElseIf key < d(m) Then | D.If key > d(m) Then |