- 基础理论
- 数据及数据库技术
- 人工智能
- 算法理论
- 过程和自定义函数
- 枚举算法及程序实现
- + 解析算法及程序实现
- 递归算法及程序实现
- 排序算法及程序实现
- 查找算法及程序实现
- 多媒体理论
- 基础软件操作
- 算法软件操作
- 多媒体软件操作
- 网络技术应用
尼克斯彻定理:任何一个大于等于 1 的整数的立方等于一串连续奇数之和,如:13=1,23=3+5,33=7+9+11。编写一个 VB 程序验证尼克斯彻定理,程序运行时,在文本框 Text1 中输入 一个大于等于 1 的整数,单击“验证”按钮 Command1,在文本框 Text2 中显示验证结果,运行界 面如下图所示

实现上述功能的 VB 代码如下,其中加框处代码有错,请改正。
Dim n As Integer, i As Integer, t As Integer, sum As Long, s As String
n = Val(Text1.Text)
For i = 1 To n ^ 3 Step 2 ' 变量 i 表示连续奇数的首个整数
t=t+1
If sum = n ^ 3 Then flag = True
s = Str(n) + "^" + Str(3) + "="
Do While sum > 0
Text2.Text = s
End Sub
加框部分应改为:① _________ ②__________

实现上述功能的 VB 代码如下,其中加框处代码有错,请改正。
Dim n As Integer, i As Integer, t As Integer, sum As Long, s As String
n = Val(Text1.Text)
For i = 1 To n ^ 3 Step 2 ' 变量 i 表示连续奇数的首个整数
sum = 0 : t =i : flag = False
Do While sum <= n ^ 3 And flag = False
sum = sum + tt=t+1
If sum = n ^ 3 Then flag = True
Loop
If flag = True Then Exit For
Next is = Str(n) + "^" + Str(3) + "="
Do While sum > 0
sum = sum-1
If sum = 0 Then
s = s + Str(i)Else
s = s + Str(i) + "+"End If
i = i + 2
LoopText2.Text = s
End Sub
加框部分应改为:① _________ ②__________
有如下VB程序段:
n = 0
For i = 1 To Len(Text1.Text)
c = Mid(Text1.Text, i, 1)
If c >= "0" And c <= "9" Then m = 1 Else m = 2
a(m) = a(m) + 1
If a(m) = 1 Then n = n + 1
Next i
数组a各元素的初始值都为0,文本框Textl的内容为“Happy2017”。执行程序后,变量n的值为( )
n = 0
For i = 1 To Len(Text1.Text)
c = Mid(Text1.Text, i, 1)
If c >= "0" And c <= "9" Then m = 1 Else m = 2
a(m) = a(m) + 1
If a(m) = 1 Then n = n + 1
Next i
数组a各元素的初始值都为0,文本框Textl的内容为“Happy2017”。执行程序后,变量n的值为( )
A.1 | B.2 | C.4 | D.9 |
由数组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 程序,程序功能:在文本框 Text1 中输入每一行的人数,在文本框 Text2 中输入班级人数(输入人数<=60),单击“排队”按钮 Cmd1 后,在列表框 List1 中按学号显示队形。程序运行界面如下图所示,程序代码如下,请回答下列问题:


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


(1)以上代码的事件处理过程名是___________。
(2)程序代码中加框处有两处错误,请改正:①___________② ___________
(3)程序代码中,请将③处的代码补充完整___________
用 VB 程序编写了一个找最大值的程序,程序功能:在文本框中输入数字串(数据间用逗号分隔,以数字开头,逗号结尾),单击“寻找”按钮 Command1 后,在 Label3中输出最大的数值。程序运行界面如图所示:

Private Sub Command1_Click()
Dim i As Integer, max As Integer, j As Integer
Dim s As String, c As String, t As String
s = Text1.Text
i = 1 : j = 1
max = 0 : t = ""
Do While j <= Len(s)
c = Mid(s, j, 1)
If Val(t) > max Then max = Val(t)
①
End If
②
Loop
Label3.Caption = Str(max)
End Sub
将划线处代码补充完成,正确的是( )

Private Sub Command1_Click()
Dim i As Integer, max As Integer, j As Integer
Dim s As String, c As String, t As String
s = Text1.Text
i = 1 : j = 1
max = 0 : t = ""
Do While j <= Len(s)
c = Mid(s, j, 1)
If c = "," Then
t = Mid(s, i, j - i)If Val(t) > max Then max = Val(t)
①
End If
②
Loop
Label3.Caption = Str(max)
End Sub
将划线处代码补充完成,正确的是( )
A.① i=i+1 ② j=j+1 | B.① i=j+1 ② j=j+1 |
C.① j=j+1 ② i=i+1 | D.① j=i+1 ② i=i+1 |
小张编写了一个查询汉字区位码的程序,程序具体功能:在文本框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 中输出的内容是:_______________
用户注册某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.对象名) |
问题:在“1390773”号段的 11 位手机号码中,统计出最后两位数字相同的号码个数。如 13907735200、13907738366 是符合条件的两个号码。
算法描述如下图所示。请将程序补充完整。

Private Sub Form_Click()
Dim a As Integer, b As Integer
Dim i As Integer, s As Integer
s=②____
End If
Next i
算法描述如下图所示。请将程序补充完整。

Private Sub Form_Click()
Dim a As Integer, b As Integer
Dim i As Integer, s As Integer
s=0
For i=10000 To 19999
a=①_____
b=(i Mod 100)\10
If a=b Thens=②____
End If
Next i
Print "最后两位数字相同的号码个数有:" ;③_____
End Sub王老师采用星级制对本班学生的平时表现进行评价,每位同学的评分数据储存在数据库中。学生的得分和星级对照如下表:
要求依据上表统计出各星级学生人数占总人数的比例。小王编写了一个VB程序实现该功能:程序运行时,每位学生的得分存储到数组a中,并在列表框listl中显示,单击命令按钮后,在列表框list2中显示各星级的人数占总人数的百分比例。程序运行界面如图所示:

(1)观察代码,实现统计功能的按钮对象名为:_______。
(2)当前读取的数据表名为:_________________
(3)实现上述功能的VB代码如下,划线①、②处请填空。
Const n = 50
Dim a(1 To n) As Integer
Dim b(0 To 4) As Integer
Private Sub Form_Load( )
Dim adocn As New ADODB. Connection
Dim adors As New AD0DB. Recordset
Dim strl,str2 As String
adocn. ConnectionString =”provider= microsoft. ace. oledb.12.0;data source=” +
App. Path + ”\school. accdb”
adocn.Open
str2 = ”select * from student”
adors.0pen str2,adocn
’以下将每个学生的得分读入组数a中,并在列表框list1中显示,代码略
End Sub
Private Sub Coml_Click()
Dim dd As String
Dim cou As Single
Dim t as integer
dd=“一星二星三星四星五星”
For i = 1 To n
t=______________________
b(t)=b(t)+1
Next i
For i = 0 To 4
cou = Int(b(i)/n * 100 + 0.5)
1ist2. AddItem,_______________+ Str(cou) + “%”
Next i
End Sub
成绩 | 1-20 | 21-40 | 41-60 | 61-80 | 81-100 |
星级 | 一星 | 二星 | 三星 | 四星 | 五星 |
要求依据上表统计出各星级学生人数占总人数的比例。小王编写了一个VB程序实现该功能:程序运行时,每位学生的得分存储到数组a中,并在列表框listl中显示,单击命令按钮后,在列表框list2中显示各星级的人数占总人数的百分比例。程序运行界面如图所示:

(1)观察代码,实现统计功能的按钮对象名为:_______。
(2)当前读取的数据表名为:_________________
(3)实现上述功能的VB代码如下,划线①、②处请填空。
Const n = 50
Dim a(1 To n) As Integer
Dim b(0 To 4) As Integer
Private Sub Form_Load( )
Dim adocn As New ADODB. Connection
Dim adors As New AD0DB. Recordset
Dim strl,str2 As String
adocn. ConnectionString =”provider= microsoft. ace. oledb.12.0;data source=” +
App. Path + ”\school. accdb”
adocn.Open
str2 = ”select * from student”
adors.0pen str2,adocn
’以下将每个学生的得分读入组数a中,并在列表框list1中显示,代码略
End Sub
Private Sub Coml_Click()
Dim dd As String
Dim cou As Single
Dim t as integer
dd=“一星二星三星四星五星”
For i = 1 To n
t=______________________
b(t)=b(t)+1
Next i
For i = 0 To 4
cou = Int(b(i)/n * 100 + 0.5)
1ist2. AddItem,_______________+ Str(cou) + “%”
Next i
End Sub
某种字符加密方法描述如下:
①输入明文、密钥。
②在明文中从左往右每次取连续的8个字符。
③将8个字符围成一圈,从第1个字符开始1,2,3,……数数,数到密钥值时取出该位字符;再由下一个字符开始1,2,3,……数数,数到密钥值时取出该位字符,重复此过程,直至这8个字符被取完。
④依次把取出的8个字符拼接成新的字符串。
⑤重复②-④步骤,直至所有明文字符处理完毕。
编写一个VB程序,实现功能如下:程序运行时从文本框Textl中读入一串明文(长度为8的倍数),从文本框Text2中读入密钥y,单击“加密”按钮Commandl,对明文按上述方法转换后在文本框Text3中显示。程序运行界面如图所示。

(1)运行上述程序,若在文本框Textl中输入“Let's go”,Text2中输入“3”,单击“加密”按钮,则文本框Text3中显示的内容是__________________________。
(2)实现上述功能的VB程序如下,请在划线处填入合适代码。
Const n=1000
Private Sub Commandl_Click()
Dim f (1 To n) As Integer,cq (1 To n) As Integer
Dim a (1 To n) As String,s As String,res As String
Dim y As Integer,p As Integer,begin As Integer
s=Textl.Text:y=Val(Text2.Text)
For i=1 To 8
'计算出列顺序
p=0
For i=1 To 8
j=___________
For i=1 To Len(s)
i=1:begin=-8:res=""
Do While i<=Len(s)
Text3.Text=res
End Sub
①输入明文、密钥。
②在明文中从左往右每次取连续的8个字符。
③将8个字符围成一圈,从第1个字符开始1,2,3,……数数,数到密钥值时取出该位字符;再由下一个字符开始1,2,3,……数数,数到密钥值时取出该位字符,重复此过程,直至这8个字符被取完。
④依次把取出的8个字符拼接成新的字符串。
⑤重复②-④步骤,直至所有明文字符处理完毕。
编写一个VB程序,实现功能如下:程序运行时从文本框Textl中读入一串明文(长度为8的倍数),从文本框Text2中读入密钥y,单击“加密”按钮Commandl,对明文按上述方法转换后在文本框Text3中显示。程序运行界面如图所示。

(1)运行上述程序,若在文本框Textl中输入“Let's go”,Text2中输入“3”,单击“加密”按钮,则文本框Text3中显示的内容是__________________________。
(2)实现上述功能的VB程序如下,请在划线处填入合适代码。
Const n=1000
Private Sub Commandl_Click()
Dim f (1 To n) As Integer,cq (1 To n) As Integer
Dim a (1 To n) As String,s As String,res As String
Dim y As Integer,p As Integer,begin As Integer
s=Textl.Text:y=Val(Text2.Text)
For i=1 To 8
f(i)=1
Next i'计算出列顺序
p=0
For i=1 To 8
j=1
Do While j<=y
p=p Mod 8+1j=___________
Loop
f(p)=0:cq(i)=p
Next iFor i=1 To Len(s)
a(i)=Mid (s,i,1)
Next ii=1:begin=-8:res=""
Do While i<=Len(s)
If i Mod 8=1 Then___________
res=res+___________
i=i+1
LoopText3.Text=res
End Sub