- 基础理论
- 数据及数据库技术
- 人工智能
- 算法理论
- 算法实例
- 面向对象程序设计 VB开发工具
- + 算法实例的程序实现
- 过程和自定义函数
- 枚举算法及程序实现
- 解析算法及程序实现
- 递归算法及程序实现
- 排序算法及程序实现
- 查找算法及程序实现
- 算法及算法的表示方法
- 多媒体理论
- 基础软件操作
- 算法软件操作
- 多媒体软件操作
- 网络技术应用
对称字符串的特征是从左到右读和从右到左读是完全一样的。如“abba”是对称的,“abcba”也是对称的。判断字符串是否对称的VB程序段如下:
n=Len(s) 's是待判断的字符串
k=0:j=n
For i=1 to n/2
Next i
If k=0 Then Label1.Caption="对称" Else Label1.Caption="不对称"
方框中的代码由以下三部分组成:
①j=j-1
②If c1 <> c2 Then k = k+1
③c1=Mid(s,i,1) : c2=Mid(s,j,1)
代码顺序正确的选项是( )
n=Len(s) 's是待判断的字符串
k=0:j=n
For i=1 to n/2

Next i
If k=0 Then Label1.Caption="对称" Else Label1.Caption="不对称"
方框中的代码由以下三部分组成:
①j=j-1
②If c1 <> c2 Then k = k+1
③c1=Mid(s,i,1) : c2=Mid(s,j,1)
代码顺序正确的选项是( )
A.①②③ | B.②③① | C.③②① | D.②①③ |
由数组a生成数组b的方法描述如下:
1) 将数组a中的n个元素依次分割出若干个数据块,每个数据块有m×m个元素,m最大值为8,最小值为2。分割时,按尽可能大的数据块进行分割;
2) 对每个分割出的数据块用“方阵转换法”进行转换,每次转换后得到的数据块依次存储在数据b中;
3) 数组a分割后的剩余元素(个数小于4),直接依序存储到数组b中。

转换前元素次序

转换后元素次序

小明依据上述描述设计了如下VB程序。请回答下列问题:
(1)当n=120时,分割出的第3个数据块元素个数为__________。
(2)请在划线处填入合适的代码。
Const n = 120
Dim a(1 To n) As Integer
Dim b(1 To n) As Integer
Private Sub Command1_Click()
Dim m As Integer, i As Integer
Dim Start As Integer '当前未分割数据的第1个元素下标
Dim Left As Integer '当前未分割数据的个数
Dim pa As Integer '数组a的下标
Dim pb As Integer '数组b的下标
'读取n个转换前的数据,依次存储到a(1)、a(2)、……a(n)中,代码略
m = 8
Start = 1
Left = n
Do While Left > 3
If Left < m * m Then
m = ___________
Else
pa = Start
pb = Start
For i = 1 To m * m
b(pb) = a(pa)
pb = pb + 1
If i Mod m = 0 Then
______________
Else
pa = pa + m
End If
Next i
______________
Start = Start + m * m
End If
Loop
For i = Start To n
b(i) = a(i)
Next i
'依次输出转换后数据b(1)、b(2)、……b(n)中,代码略
End Sub
1) 将数组a中的n个元素依次分割出若干个数据块,每个数据块有m×m个元素,m最大值为8,最小值为2。分割时,按尽可能大的数据块进行分割;
2) 对每个分割出的数据块用“方阵转换法”进行转换,每次转换后得到的数据块依次存储在数据b中;
3) 数组a分割后的剩余元素(个数小于4),直接依序存储到数组b中。
例如n=140时,可依次分割出3个数据块,元素的个数分别为64(8×8)、64(8×8)、9(3×3),剩余元素为3个。
“方阵转换法”过程如下:将数据块中m×m个元素按行序排列成一个数字方阵,从该数字方阵中按列序得到转换后元素的次序。以3×3数据块为例,转换过程如下图所示:


转换后元素次序


小明依据上述描述设计了如下VB程序。请回答下列问题:
(1)当n=120时,分割出的第3个数据块元素个数为__________。
(2)请在划线处填入合适的代码。
Const n = 120
Dim a(1 To n) As Integer
Dim b(1 To n) As Integer
Private Sub Command1_Click()
Dim m As Integer, i As Integer
Dim Start As Integer '当前未分割数据的第1个元素下标
Dim Left As Integer '当前未分割数据的个数
Dim pa As Integer '数组a的下标
Dim pb As Integer '数组b的下标
'读取n个转换前的数据,依次存储到a(1)、a(2)、……a(n)中,代码略
m = 8
Start = 1
Left = n
Do While Left > 3
If Left < m * m Then
m = ___________
Else
pa = Start
pb = Start
For i = 1 To m * m
b(pb) = a(pa)
pb = pb + 1
If i Mod m = 0 Then
______________
Else
pa = pa + m
End If
Next i
______________
Start = Start + m * m
End If
Loop
For i = Start To n
b(i) = a(i)
Next i
'依次输出转换后数据b(1)、b(2)、……b(n)中,代码略
End Sub
(加试题)某对分查找算法的 VB 程序段如下:
Key = val(text1.text)
N=0
i = 1: j = 7
flag = False
Do While i <= j And flag = False
n = n + 1
m = Fix((i + j) / 2)
If a(m) = Key Then flag = True
If Key < a(m) Then i = m + 1 Else j = m – 1
Text2.Text = "在第" & Str(m) & "个,"
Else
Text2.Text = "未找到,"
End If
数组元素 a(1)到 a(7)的值依次为“89,72,68,45,23,19,17”。文本框 Text1 中输入 17,执 行该程序段后,下列变量的值不.正.确.的是( )
Key = val(text1.text)
N=0
i = 1: j = 7
flag = False
Do While i <= j And flag = False
n = n + 1
m = Fix((i + j) / 2)
If a(m) = Key Then flag = True
If Key < a(m) Then i = m + 1 Else j = m – 1
Loop
If flag = True ThenText2.Text = "在第" & Str(m) & "个,"
Else
Text2.Text = "未找到,"
End If
数组元素 a(1)到 a(7)的值依次为“89,72,68,45,23,19,17”。文本框 Text1 中输入 17,执 行该程序段后,下列变量的值不.正.确.的是( )
A.n=2 | B.m=7 | C.i=7 | D.j=6 |
学校组织运动会,开幕式的时候要求每个班排成一个方阵,为了能快速地排成方阵,小张编写了一个 VB 程序,程序功能:在文本框 Text1 中输入每一行的人数,在文本框 Text2 中输入班级人数(输入人数<=60),单击“排队”按钮 Cmd1 后,在列表框 List1 中按学号显示队形。程序运行界面如下图所示,程序代码如下,请回答下列问题:


(1)以上代码的事件处理过程名是___________。
(2)程序代码中加框处有两处错误,请改正:①___________② ___________
(3)程序代码中,请将③处的代码补充完整___________


(1)以上代码的事件处理过程名是___________。
(2)程序代码中加框处有两处错误,请改正:①___________② ___________
(3)程序代码中,请将③处的代码补充完整___________
用 VB 编写统计某字母开头的单词个数的程序。程序功能:在文本框 Text1 中输入待统计的句子,在文本框 Text2 中输入某字母,单击“统计”按钮Command1后,将结果显示在Label3中。输入要求:句子以“.”结束;单词之间用空格分隔,单词没有缩写或其他特殊形式。程序运行界面如图所示:

Private Sub Command1_Click()
Dim i As Integer, n As Integer,b As Integer
Dim c As String, t As String, s As String, f As Boolean
s = Text1.Text
t = Text2.Text
b = Len(s)
f = True
For i = 1 To b
c = Mid(s, i, 1)
If ① Then
n = n + 1
②
ElseIf c = " " Or c = "." Then
③
Else
f = False
End If
Next i
Label3.Caption = "以" + t + "为开头的单词个数:" + Str(n)
End Sub
为实现上述程序,空格处应填入的代码是( )

Private Sub Command1_Click()
Dim i As Integer, n As Integer,b As Integer
Dim c As String, t As String, s As String, f As Boolean
s = Text1.Text
t = Text2.Text
b = Len(s)
f = True
For i = 1 To b
c = Mid(s, i, 1)
If ① Then
n = n + 1
②
ElseIf c = " " Or c = "." Then
③
Else
f = False
End If
Next i
Label3.Caption = "以" + t + "为开头的单词个数:" + Str(n)
End Sub
为实现上述程序,空格处应填入的代码是( )
A.① f And c = t ② f = False ③ f = True |
B.① f = False And c = t ② f = False ③ f = True |
C.① c = t ② f = True ③ f = False |
D.① f = True And c = t ② f = True ③ f = False |
小张编写了一个查询汉字区位码的程序,程序具体功能:在文本框Text1中输入一个汉字的内码(处理码),单击“查询”按钮Command1后,在Text2中输出汉字的区码和位码。例如:汉字“啊”的内码和区位码的关系如下:
区位码分别转成十六进制后,将区码和位码分别加上十六进制数A0即得到内码。

“啊”的内码的十六进制形式即为B0A1H
程序运行界面如图所示:

Private Sub Command1_Click()
Dim i As Integer, q As Integer, w As Integer, s As String, s1 As String, c As String
s = Text1.Text
For i = 1 To 4 '如果输入的处理码包含小写字母,则转成大写字母
c = Mid(s, i, 1)
If ①_____ Then
s = Mid(s, 1, i - 1) + Chr(Asc(c) - 32) + Mid(s, i + 1, Len(s) - i)
End If
Next i
For i = 1 To 4 '两个字节分别减去 A0H
c = Mid(s, i, 1)
If i Mod 2 = 1 Then
s1 = s1 & CStr((Asc(c) - Asc("A"))) 'CStr( ):将括号内表达式的值转换为字符串型
Else
②_____
End If
Next i
For i = 1 To 2 '将十六进制转换成十进制
q = q * 16 + Val(Mid(s1, i, 1))
③_____
Next i
Text2.Text = "区号:" + Str(q) + " 位号:" + Str(w)
End Sub
(1)请在划线处填入合适的代码。
(2)如果输入的内码为 D1A7,则 Text2 中输出的内容是:_______________
“啊”的区位码 | 区码 | 位码 |
十进制 | 16 | 01 |
十六进制 | 10 | 01 |
区位码分别转成十六进制后,将区码和位码分别加上十六进制数A0即得到内码。

“啊”的内码的十六进制形式即为B0A1H
程序运行界面如图所示:

Private Sub Command1_Click()
Dim i As Integer, q As Integer, w As Integer, s As String, s1 As String, c As String
s = Text1.Text
For i = 1 To 4 '如果输入的处理码包含小写字母,则转成大写字母
c = Mid(s, i, 1)
If ①_____ Then
s = Mid(s, 1, i - 1) + Chr(Asc(c) - 32) + Mid(s, i + 1, Len(s) - i)
End If
Next i
For i = 1 To 4 '两个字节分别减去 A0H
c = Mid(s, i, 1)
If i Mod 2 = 1 Then
s1 = s1 & CStr((Asc(c) - Asc("A"))) 'CStr( ):将括号内表达式的值转换为字符串型
Else
②_____
End If
Next i
For i = 1 To 2 '将十六进制转换成十进制
q = q * 16 + Val(Mid(s1, i, 1))
③_____
Next i
Text2.Text = "区号:" + Str(q) + " 位号:" + Str(w)
End Sub
(1)请在划线处填入合适的代码。
(2)如果输入的内码为 D1A7,则 Text2 中输出的内容是:_______________
下列VB程序功能可以找出1000以内的完全数,并在标签中一一列出来。
Private Sub Command1_Click()
Dim i As Integer, m As Integer, n As Integer
Label1.Caption = "1000以内的完全数如下:"
For i = 1 To 1000
n = 0
For m = 1 To i \ 2
If i Mod m = 0 Then n = n + m
Next
If n = i Then Label2.Caption = Label2.Caption & "" & Str(i)
Next
End Sub
该过程采用的算法是( )
A.枚举 | B.查找 | C.排序 | D.解析 |
小明编写了一个VB程序,功能如下:在文本框Text1中输入一段英文,并在文本框Text2中输入英文段落中的某个单词(或字符串),单击“最大间距”按钮(Command1)后,在文本框Text3中显示该单词在文中某两次出现的最大间距,若只出现一次或不出现则显示值为0。程序运行界面如下图所示:

实现上述功能的VB程序如下:
Private Sub Command1_Click
Dim a(1 To 1000) As String '数组a存储文中出现该指定单词(或字符串)的各个位置
Dim s As String, c As String ,ch As String
Dim n As Integer, max As Integer, i As Integer
s = Text1.Text
c = Text2.Text
n = 0: Max = 0
For i = 1 To Len(s) - Len(c) + 1
ch = ①
If ch = c Then
n = ②
a(n) = i
If n >= 2 Then
If a(n) - a(n - 1) - Len(c) > Max Then Max = a(n) - a(n - 1) - Len(c)
End If
End If
Next i
Text3.Text = ③
End Sub
(1)代码“Private Sub Command1_Click”中的Click是________ 。(单选:填字母:
(2)以上程序段运行时,为了实现上述功能,划线处①②③应填入的代码分别为:
①______________________;②______________;③____________________

实现上述功能的VB程序如下:
Private Sub Command1_Click
Dim a(1 To 1000) As String '数组a存储文中出现该指定单词(或字符串)的各个位置
Dim s As String, c As String ,ch As String
Dim n As Integer, max As Integer, i As Integer
s = Text1.Text
c = Text2.Text
n = 0: Max = 0
For i = 1 To Len(s) - Len(c) + 1
ch = ①
If ch = c Then
n = ②
a(n) = i
If n >= 2 Then
If a(n) - a(n - 1) - Len(c) > Max Then Max = a(n) - a(n - 1) - Len(c)
End If
End If
Next i
Text3.Text = ③
End Sub
(1)代码“Private Sub Command1_Click”中的Click是________ 。(单选:填字母:
A.对象名/ | B.属性名/ | C.事件名) |
①______________________;②______________;③____________________
用户注册某APP时,密码有如下要求:至少为8个字符,并且必须含有数字和字母。小林编写了一个VB程序,对用户设定的密码进行合法性验证,如图所示。在文本框Text1中输入密码字符串s,单击“验证”按钮,在标签Label1中显示验证结果“符合要求”或“不符合要求”。

(1)实现上述功能的VB程序如下,请在划线处填入合适代码。
Private Sub Cmdjudge_Click()
Dim a1 As Integer, a2 As Integer, flag As Boolean
Dim s As String, c As String, i As Integer, n As Integer
a1=0:a2=0:flag=False
s = Text1.Text
i=1
___________
Do While i<= n And Not flag
If flag=True And n>=8 Then
Label1. Caption=“符合要求”
Else
Label1. Caption=“不符合要求”
End Sub
(2)代码“Private Sub Cmdjudge_Click()”中的“Cmdjudge”是__________.(单选,填字母:
(3)运行该程序,在文本框Text1中输入“Wd6b$ksss”单击“统计”按钮后,语句c=Mid(s, i, 1)共执行了__________次。

(1)实现上述功能的VB程序如下,请在划线处填入合适代码。
Private Sub Cmdjudge_Click()
Dim a1 As Integer, a2 As Integer, flag As Boolean
Dim s As String, c As String, i As Integer, n As Integer
a1=0:a2=0:flag=False
s = Text1.Text
i=1
___________
Do While i<= n And Not flag
c = Mid(s, i, l)
If c >= "A" And c <= "Z" Or c >= "a" And c <= "z" Then
a1=1ElseIf c >= "0" And c <= "9" Then
a2 = 1End If
If _________ Then flag = True
i = i+1
LoopIf flag=True And n>=8 Then
Label1. Caption=“符合要求”
Else
Label1. Caption=“不符合要求”
End Sub
(2)代码“Private Sub Cmdjudge_Click()”中的“Cmdjudge”是__________.(单选,填字母:
A.过程名 / | B.属性名/ | C.事件名/ | D.对象名) |
为了安排寝室,需要将学生按性别分类。小陈设计了一个VB程序,运行该程序,单击“数据导入”按钮Command1后,左侧列表框List1中显示40位学生的编号和性别;然后单击“数据处理”按钮Command2,中间列表框List2中显示所有女生的信息,右侧列表框List3中显示所有男生的信息,并在相应的列表框下方显示人数。运行结果如下图所示。

实现上述功能的VB程序段如下,分析回答下列问题。
Dim a(1 To 40) As String '数组a用于存储学生编号
Dim b(1 To 40) As String '数组b用于存储学生性别
Private Sub Command1_Click
Dim i As Integer
List1.Clear
List2.Clear
List3.Clear
'在列表框List1中显示40位学生的编号和性别
For i=1 To 40
.AddItem a(i)+” ”+b(i) ①
Next i
End Sub
Private Sub Command2_Click
Dim n As Integer '用于存储女生人数
Dim m As Integer '用于存储男生人数
Dim i As Integer
List2.Clear
List3.Clear
n=0: m=0
For i=1 To 40
If b(i)=”女” Then
List2.AddItem a(i) '在列表框List2中显示女生信息
n=n+1
Else
List3.AddItem a(i) '在列表框List3中显示男生信息

②
End If
Next i
Label1.Caption=”女生人数:”+Str(n)
Label2.Caption=”男生人数:”+Str(m)
End Sub
(1)小陈将学生的编号和性别分别存放在数组a和数组b中,这段代码书写在窗体的加载事件中,下列属于该事件的是(____)
(2)①和②加边框处分别有误,根据题意修改源代码,①处应修改为________,②处应修改为__________

实现上述功能的VB程序段如下,分析回答下列问题。
Dim a(1 To 40) As String '数组a用于存储学生编号
Dim b(1 To 40) As String '数组b用于存储学生性别
Private Sub Command1_Click
Dim i As Integer
List1.Clear
List2.Clear
List3.Clear
'在列表框List1中显示40位学生的编号和性别
For i=1 To 40

Next i
End Sub
Private Sub Command2_Click
Dim n As Integer '用于存储女生人数
Dim m As Integer '用于存储男生人数
Dim i As Integer
List2.Clear
List3.Clear
n=0: m=0
For i=1 To 40
If b(i)=”女” Then
List2.AddItem a(i) '在列表框List2中显示女生信息
n=n+1
Else
List3.AddItem a(i) '在列表框List3中显示男生信息

②
End If
Next i
Label1.Caption=”女生人数:”+Str(n)
Label2.Caption=”男生人数:”+Str(m)
End Sub
(1)小陈将学生的编号和性别分别存放在数组a和数组b中,这段代码书写在窗体的加载事件中,下列属于该事件的是(____)
A.Form_Click | B.Command1_Click |
C.Form_Load | D.Form_Unload |