- 基础理论
- 数据及数据库技术
- 人工智能
- 算法理论
- 算法实例
- + 面向对象程序设计 VB开发工具
- 程序设计语言
- 循环结构
- 分支结构
- 顺序结构
- 类、对象、属性、方法、事件和事件处理的概念
- VB应用程序的界面设计与调试
- 基本数据类型
- 常量、变量、数组
- 常用的标准函数
- 基本运算及表达式
- 赋值语句
- 选择语句
- 循环语句
- 算法实例的程序实现
- 算法及算法的表示方法
- 多媒体理论
- 基础软件操作
- 算法软件操作
- 多媒体软件操作
- 网络技术应用
(加试题)有VB编写的程序如下:
Private Sub Command1_Click()
Dim a(0 To 9) As Integer
Dim t as Long
t = Val(Text1.Text)
Do While t <> 0
a(t Mod 10) = 1
t = t \ 10
Loop
For i = 0 To 9
x = x + a(i)
Next i
End Sub
若在文本框Text1中输入10242048,则程序执行后,变量x的值为( )
Private Sub Command1_Click()
Dim a(0 To 9) As Integer
Dim t as Long
t = Val(Text1.Text)
Do While t <> 0
a(t Mod 10) = 1
t = t \ 10
Loop
For i = 0 To 9
x = x + a(i)
Next i
End Sub
若在文本框Text1中输入10242048,则程序执行后,变量x的值为( )
A.1 | B.2 | C.5 | D.10 |
(加试题)某字符(限 ASCII 字符)加密算法,对明文中的每个字符进行下列加密处理:
(1)将该字符的 ASCII 码转换成对应的 2 位十六进制数;
(2)将产生的十六进制数互换位置;
(3)步骤(2)产生的二位十六进制数即为该明文字符加密后的密文字符。
小明按照上述方法,设计了一个字符串加密的 VB 程序,功能如下:单击“生成密文”按钮 Command1,程序依次将文本框 Text1 中每个字符按上述规则进行加密处理,连接这些加密字符,最后在文本框 Text2 中输出加密结果。程序运行界面如图所示。

实现上述功能的 VB 程序如下:
Private Sub Command1_Click()
Dim s As String, a As String, ans As String Dim c As Integer, i As Integer
Dim c1 As Integer, c2 As Integer Dim d1 As String, d2 As String
s = Text1.Text ans = ""
For i = 1 To Len(s) a = Mid(s, i, 1) c = Asc(a)
c1 = c \ 16
c2 = ①
d1 = Mid(Str(c1), 2, 1) '使用 Str(c1)将在字符 c1 前增加一个空字符
If c2 >= 10 Then ② Else d2 = Mid(Str(c2), 2, 1)
ans = ③
Next i
Text2.Text = ans
End Sub
(1)按照上述加密算法,明文“B”生成的密文是 。
(2)实现上述功能的 VB 程序如下,请在划线处填入合适代码。
①_____________________________________
②______________________________________
③______________________________________
(1)将该字符的 ASCII 码转换成对应的 2 位十六进制数;
(2)将产生的十六进制数互换位置;
(3)步骤(2)产生的二位十六进制数即为该明文字符加密后的密文字符。
小明按照上述方法,设计了一个字符串加密的 VB 程序,功能如下:单击“生成密文”按钮 Command1,程序依次将文本框 Text1 中每个字符按上述规则进行加密处理,连接这些加密字符,最后在文本框 Text2 中输出加密结果。程序运行界面如图所示。

实现上述功能的 VB 程序如下:
Private Sub Command1_Click()
Dim s As String, a As String, ans As String Dim c As Integer, i As Integer
Dim c1 As Integer, c2 As Integer Dim d1 As String, d2 As String
s = Text1.Text ans = ""
For i = 1 To Len(s) a = Mid(s, i, 1) c = Asc(a)
c1 = c \ 16
c2 = ①
d1 = Mid(Str(c1), 2, 1) '使用 Str(c1)将在字符 c1 前增加一个空字符
If c2 >= 10 Then ② Else d2 = Mid(Str(c2), 2, 1)
ans = ③
Next i
Text2.Text = ans
End Sub
(1)按照上述加密算法,明文“B”生成的密文是 。
(2)实现上述功能的 VB 程序如下,请在划线处填入合适代码。
①_____________________________________
②______________________________________
③______________________________________
编写“英文文章整理”程序,实现如下功能:点击“整理”按钮对任意输入的英文文章进行整理,整理规则为:所有句子开头为大写字母,其他都是小写字母,句子结束符为“.”“?”或“!”;所有标点符号后面都空一格;英文的标点符号都为半角符号。程序运行界面如图所示。

请根据算法将下列程序补充完整。
Private Sub Command1_Click()
Dim Y As String, Z As String, X As String, L As Integer, t As String
Y = ""
X = Text1.Text
L = Len(X)
For i = 1 To L
Z = Mid(X, i, 1)
If Z >= "a" And Z <= "z" Then '第一个是小写,转大写
If i = 1 Then Z = Chr(Asc(Z) - 32)
ElseIf Z = "!" Or Z = "." Or Z = "?" Then '标点后面有一个空格,一个大写
1___________
If t = " " Then i = i + 1
Z = Z & " " '算空格
If i < L And 2_______________ Then
Z = 3_____________ '后面字母要大写
i = i + 1
End If
ElseIf Z >= "A" And Z <= "Z" Then
Z = Chr(Asc(Z) + 32)
End If
Y = Y & Z
Next i
Text2.Text = Y
End Sub

请根据算法将下列程序补充完整。
Private Sub Command1_Click()
Dim Y As String, Z As String, X As String, L As Integer, t As String
Y = ""
X = Text1.Text
L = Len(X)
For i = 1 To L
Z = Mid(X, i, 1)
If Z >= "a" And Z <= "z" Then '第一个是小写,转大写
If i = 1 Then Z = Chr(Asc(Z) - 32)
ElseIf Z = "!" Or Z = "." Or Z = "?" Then '标点后面有一个空格,一个大写
1___________
If t = " " Then i = i + 1
Z = Z & " " '算空格
If i < L And 2_______________ Then
Z = 3_____________ '后面字母要大写
i = i + 1
End If
ElseIf Z >= "A" And Z <= "Z" Then
Z = Chr(Asc(Z) + 32)
End If
Y = Y & Z
Next i
Text2.Text = Y
End Sub
(加试题)用绳索围成回字迷宫图(左图所示),迷宫路宽是 1 米,如果绳索长为 X 米,则可以构成多少个边长为1米并且至少两边在绳索上的正方形。程序效果如右图所示。

Dim X As Integer, L As Integer, i As Integer
Dim n As Integer, a As Integer, b As Integer
X = Val(Text1.Text)
If X < 2 Then
n = 0
ElseIf X >= 2 And X <= 4 Then
n = 1
Else
i = 1: L = 3
Do While ①
If L = X Then
n = i ^ 2
Else
L = L - 4 * i
a = ②
b = ((X - L) \ i) * (i - 1) - 1 + (X - L) Mod i
n = a + b
End If
End If
Label1.Caption = " 绳索长度为 " + Str(X) + " 米,可以构成 " + Str(n) + " 个边长为 1 米的正方形。"
(1)为实现该程序的功能,画线处的语句应填写为:
①________________________
②_________________________
(2)如果绳索长度 X 为 15 米,则可以构成相应的正方形个数为________。


Dim X As Integer, L As Integer, i As Integer
Dim n As Integer, a As Integer, b As Integer
X = Val(Text1.Text)
If X < 2 Then
n = 0
ElseIf X >= 2 And X <= 4 Then
n = 1
Else
i = 1: L = 3
Do While ①
i = i + 2
L = L + 4 * i
LoopIf L = X Then
n = i ^ 2
Else
L = L - 4 * i
a = ②
b = ((X - L) \ i) * (i - 1) - 1 + (X - L) Mod i
n = a + b
End If
End If
Label1.Caption = " 绳索长度为 " + Str(X) + " 米,可以构成 " + Str(n) + " 个边长为 1 米的正方形。"
(1)为实现该程序的功能,画线处的语句应填写为:
①________________________
②_________________________
(2)如果绳索长度 X 为 15 米,则可以构成相应的正方形个数为________。
(加试题)小李与小王合作编写一个成绩统计的VB程序:小王编写一个过程,该过程从数据库读取某一指定科目的相关数据,存储在数组a中;小李编写一个过程,该过程依据数组a中的相关数据进行排序。小李与小王约定的数组a各元素含义如图所示。
程序功能如下:在文本框Text1中输入科目名称,单击“读取数据库”按钮Command1,程序从数据库读取数据,数据存放与a()中,呈现方式如表所示;在文本框text2中输入第几班级,单击“开始排序”按钮Command2,程序对输入班级的学生成绩进行排序,结果输出在列表框List1中。程序运行界面如下图所示。

实现上述功能的VB程序如下,请回答下列问题:
(1)根据程序运行界面中的数据及数组a各元素的含义,数组元素a(5)表示的是_____________
(2)分析程序,可知数据库的文件名为____________________
(3)请在划线处填入合适的代码。
Dim a(1 To 600) As Integer '数组大小满足处理要求
Private Sub Command1_Click() '本过程由小王完成,从数据库读取指定科目的各相关数据,存储在数组a中
Dim conn As New ADODB.Conncction
Dim rs As New ADODB.Recordset
conn ConncctionString = "provider=Microsoft.AC
conn.Open
Set rs.ActiveConnection = conn '本过程的其他语句略
End Sub
Private Sub Command2_Click() '依据数组a中的相关数据对第k个班级的学生平均分进行升序排序
Dim i As Integer, j As Integer, n As Integer ‘i,j为循环变量,n为班级个数
Dim k as integer,t as integer
Dim p As Integer ‘p为前几个班级的总人数
k=val(text2.text)
For i=2 to k ‘求得前几个班级的总人数
p=p+a(i)
Next i
t=___________‘t为第k-1个班级最后一个学生所在的位置
For i=t+1 to t+a(k+1)-1 ‘t+1为第k个班级第一位学生所在的位置,t+a(k+1)为第k个班级最后一个学生所在的位置
For j= __________ to i+1 step -1
If a(j)<a(j-1) then
k= a(j - 1): a(j - 1) = a(j): a(j) = k
Endif
Next j
Next i
For i=1 to a(k+1)
List1.additem str(i)+” ”+str(a(t+i))
Next i
End Sub
数组元素 | 数组元素的含义 |
a(1) | 存储班级数n |
a(2) | 从a(2)到a(n+1) 依次存储第1、2、…第n个班级人数 |
… | |
a(n+1) | |
a(n+2) | 从a(n+2) 依次存储第1班每个学生的单科成绩、第2班每个学生的单科成绩、…第n班每个学生的单科成绩 |
… | |
… |
程序功能如下:在文本框Text1中输入科目名称,单击“读取数据库”按钮Command1,程序从数据库读取数据,数据存放与a()中,呈现方式如表所示;在文本框text2中输入第几班级,单击“开始排序”按钮Command2,程序对输入班级的学生成绩进行排序,结果输出在列表框List1中。程序运行界面如下图所示。

实现上述功能的VB程序如下,请回答下列问题:
(1)根据程序运行界面中的数据及数组a各元素的含义,数组元素a(5)表示的是_____________
(2)分析程序,可知数据库的文件名为____________________
(3)请在划线处填入合适的代码。
Dim a(1 To 600) As Integer '数组大小满足处理要求
Private Sub Command1_Click() '本过程由小王完成,从数据库读取指定科目的各相关数据,存储在数组a中
Dim conn As New ADODB.Conncction
Dim rs As New ADODB.Recordset
conn ConncctionString = "provider=Microsoft.AC
A.OLEDB.12.0;data source=" + "Score.accdb" |
Set rs.ActiveConnection = conn '本过程的其他语句略
End Sub
Private Sub Command2_Click() '依据数组a中的相关数据对第k个班级的学生平均分进行升序排序
Dim i As Integer, j As Integer, n As Integer ‘i,j为循环变量,n为班级个数
Dim k as integer,t as integer
Dim p As Integer ‘p为前几个班级的总人数
k=val(text2.text)
For i=2 to k ‘求得前几个班级的总人数
p=p+a(i)
Next i
t=___________‘t为第k-1个班级最后一个学生所在的位置
For i=t+1 to t+a(k+1)-1 ‘t+1为第k个班级第一位学生所在的位置,t+a(k+1)为第k个班级最后一个学生所在的位置
For j= __________ to i+1 step -1
If a(j)<a(j-1) then
k= a(j - 1): a(j - 1) = a(j): a(j) = k
Endif
Next j
Next i
For i=1 to a(k+1)
List1.additem str(i)+” ”+str(a(t+i))
Next i
End Sub
(加试题)某同学编写一个VB程序模拟音乐播放器的“随机排序”功能。单击“随机排序”按钮Command1,随机生成15个“歌曲名”(歌曲名由3-6个大写英文字母组成),在列表框list1输出原播放顺序,在列表框list2输出随机排序后的顺序。运行界面如下:

实现上述功能的VB代码如下,其中加框处代码有错,请改正。
(1)________________________;
(2)________________________;
Private Sub Command1_Click()
Dim a(1 To 15) As String, b(1 To 15) As Boolean, c(1 To 15) As String
'数组a和数组c分别代表排序前后的文件名
Dim i As Integer, j As Integer, k As Integer
For i = 1 To 15 ‘生成各文件名,存放在数组a
k =Int(Rnd*5)+2 (1)
a(i) = ""
For j = 1 To k
a(i) = a(i) + Chr(65 + Int(Rnd() * 26))
Next j
List1.AddItem Str(i) + " " + a(i)
Next i
For i = 1 To 15
b(i) = False
Next i
For i = 1 To 15
k = Int(Rnd() * 15) + 1
Do While b(k) = True
k = Int(Rnd() * 15) + 1
Loop
b(k) = True
c(i) = a(k) + " " + "原位置" + Str(k)
Next i
For i = 1 To 15
List2.AddItem Str(i) + " " +str(a(i)) (2)
Next i
End Sub

实现上述功能的VB代码如下,其中加框处代码有错,请改正。
(1)________________________;
(2)________________________;
Private Sub Command1_Click()
Dim a(1 To 15) As String, b(1 To 15) As Boolean, c(1 To 15) As String
'数组a和数组c分别代表排序前后的文件名
Dim i As Integer, j As Integer, k As Integer
For i = 1 To 15 ‘生成各文件名,存放在数组a
k =Int(Rnd*5)+2 (1)
a(i) = ""
For j = 1 To k
a(i) = a(i) + Chr(65 + Int(Rnd() * 26))
Next j
List1.AddItem Str(i) + " " + a(i)
Next i
For i = 1 To 15
b(i) = False
Next i
For i = 1 To 15
k = Int(Rnd() * 15) + 1
Do While b(k) = True
k = Int(Rnd() * 15) + 1
Loop
b(k) = True
c(i) = a(k) + " " + "原位置" + Str(k)
Next i
For i = 1 To 15
List2.AddItem Str(i) + " " +str(a(i)) (2)
Next i
End Sub