- 基础理论
- 数据及数据库技术
- 人工智能
- 算法理论
- 程序设计语言
- 循环结构
- 分支结构
- 顺序结构
- 类、对象、属性、方法、事件和事件处理的概念
- VB应用程序的界面设计与调试
- 基本数据类型
- 常量、变量、数组
- 常用的标准函数
- 基本运算及表达式
- 赋值语句
- 选择语句
- + 循环语句
- 多媒体理论
- 基础软件操作
- 算法软件操作
- 多媒体软件操作
- 网络技术应用
有如下 VB 程序段:
For i = 1 To 9 Step 2
s = 0
For i = 0 To 9 Step 3
数组 b 各元素初始值为 0, 数组元素 a(1)到 a(9)的值依次为“29,74,12,38,16,45,21,57,33”,则执行该程序段后,s 的值为( )
For i = 1 To 9 Step 2
b(a(i) Mod 10) = b(a(i) Mod 10) + 1
Next is = 0
For i = 0 To 9 Step 3
s =s + b(i)
Next i数组 b 各元素初始值为 0, 数组元素 a(1)到 a(9)的值依次为“29,74,12,38,16,45,21,57,33”,则执行该程序段后,s 的值为( )
A.5 | B.4 | C.3 | D.2 |
素数只能被1和它本身整除,不能被其他自然数整除。编写VB程序实现如下功能:单击“产生奇数并判断”按钮Command1,随机产生一个三位正奇数显示在文本框Text1中,并在文本框Text2中显示其是否为素数的判断结果。例如,当随机产生的三位正奇数为953时,程序运行界面如图a所示。

(1)在设计程序界面时,应使用图b所示“控件工具箱”中的_____________(填写相应编号)添加文本框Text1。
(2)实现上述功能的VB程序如下,请在划线处填写合适的代码。
Private Sub Command1_Click()
Dim n As Integer, i As Integer
Dim flag As Boolean ’用于标记是否为素数
Randomize
n = Int( ①_____)*2+1
Text1.Text = Str(n)
flag = True ’标记为素数
i = 3
Do While i <= n - 1 And flag = True
If ②_____ Then
Text2.Text = Str(n) + "是素数"
Else
Text2.Text = Str(n) + "不是素数"
End If
End Sub
(3)以下选项中,与加框处表达式“n Mod I = 0”等价的是______________(单选,填字母)。

(1)在设计程序界面时,应使用图b所示“控件工具箱”中的_____________(填写相应编号)添加文本框Text1。
(2)实现上述功能的VB程序如下,请在划线处填写合适的代码。
Private Sub Command1_Click()
Dim n As Integer, i As Integer
Dim flag As Boolean ’用于标记是否为素数
Randomize
n = Int( ①_____)*2+1
Text1.Text = Str(n)
flag = True ’标记为素数
i = 3
Do While i <= n - 1 And flag = True
If n Mod i = 0 Then
flag = FalseEnd If
i = i + 2
LoopIf ②_____ Then
Text2.Text = Str(n) + "是素数"
Else
Text2.Text = Str(n) + "不是素数"
End If
End Sub
(3)以下选项中,与加框处表达式“n Mod I = 0”等价的是______________(单选,填字母)。
A.n \ i = Int(n / i) | B.n \ i = n/ i | C.n Mod i = n \ i |
有如下程序段:

数组元素a(1)到a(10)的值依次为“66,34,12,59,21,26,18,45,20,16”,经过该程序段“加工”后,数组元素a(1)到a(10)的值依次为( )

数组元素a(1)到a(10)的值依次为“66,34,12,59,21,26,18,45,20,16”,经过该程序段“加工”后,数组元素a(1)到a(10)的值依次为( )
A.66,12,16,34,18,59,21,26,20,45 |
B.12,16,18,20,21,26,34,45,59,66 |
C.66,59,45,34,12,26,21,20,18,16 |
D.12,16,18,66,34,20,59,21,26,45 |
分析完善程序。
假设银行的年存储利率为3%,如果现在存储10000元钱,问多少年后连本带利超过12000元。设定:连本带利=本金*(1+利率)∧年数
假设n年后连本带息超过12000,根据题意得出数学关系式:10000*(1+3%)∧n>12000,求最小的n。
(参考程序)
Dim s as single
Dim r as single
Dim n as integer
s=10000
r=0.03
n=0
Do while
n=n+1
s=s*(1+r)
Loop
Print n;”年后”:”连本带利超过”;s
根据上述回答下列问题
(1)本题采用的算法是___________(填写:解析法/穷举法/排序法/递归法)
(2)写出参考程序中空白处表达式__________________________________ 。
假设银行的年存储利率为3%,如果现在存储10000元钱,问多少年后连本带利超过12000元。设定:连本带利=本金*(1+利率)∧年数
假设n年后连本带息超过12000,根据题意得出数学关系式:10000*(1+3%)∧n>12000,求最小的n。
(参考程序)
Dim s as single
Dim r as single
Dim n as integer
s=10000
r=0.03
n=0
Do while
n=n+1
s=s*(1+r)
Loop
Print n;”年后”:”连本带利超过”;s
根据上述回答下列问题
(1)本题采用的算法是___________(填写:解析法/穷举法/排序法/递归法)
(2)写出参考程序中空白处表达式__________________________________ 。
给定 m 个区间和 1 个数组(有 n 个元素),现要求根据各区间限定的取值范围,将数组依次分割成 m+1 个段。具体分割方法如下:
•第 1 段是从数组首个元素开始,元素值都属于第 1 区间的最长连续元素段,如果首个元素不属于第 1 区间,则第1 段元素个数为 0;
•第 1 段分割后的剩余元素,用同样的方法来依次分割第 2段、第 3 段、…、第 m 段;
•第 m 段分割后的剩余元素分割到第 m+1 段(剩余段)。
若第 p(1≤p≤m-1)段末尾连续元素的值也同时属于第 p+1区间,则这块连续元素称为第 p 段“重叠块”,该段其余部分称为第 p 段“非重叠块”。由于不存在第 m+1 区间,这里特别规定:第 m 段的全部元素都分割到 m 段“非重叠块”,第 m段“重叠块”的元素个数为 0。一个数组分段示例如图。图中数组第 1 个元素 10 不属于第 1 区间[0,5],因此第 1 段的元素个数为 0。 10 和 20 属于第 2 区间,而 33 不属于第 2 区间,因此第 2 段只包含 10 和 20 两个元素。第 3 段末尾连续3 个元素的值也同时属于第 4 区间,因此,第 3 段“非重叠块”包含 33,58,46,第 3 段“重叠块”包含 55,62,69。

(1)给定 2 个区间,数组各元素为“12,44,34,45,66,50,45,70”,第 1 段“重叠块”中的元素个数为 3 个,第 1 个区间为[10,50],则第 2 个区间可能为______________(单选,填字母
(2)小李根据上述描述,设计了一个统计各段“非重叠块”“重叠块”和剩余段中元素个数的算法。算法的 VB 程序如下,请在划线处填入合适的代码。
Const n = 18: m = 6
Dim a(1 To n) As Integer
Dim b(1 To 2 ∗ m) As Integer
'b(1)、b(2)为第 1 区间的下限和上限,b(3)、b(4)为第 2区间的下限和上限,…
Dim c(1 To 2 ∗ m + 1) As Integer
'数组 c 用于保存统计结果:
'c(1)、c(2)分别存储第 1 段"非重叠块"和"重叠块"的元素个数,
'c(3)、c(4)分别存储第 2 段"非重叠块"和"重叠块"的元素个数,…
'c(2 m-1)存储第 m 段"非重叠块"元素个数,c(2 m)存储
第 m 段"重叠块"的元素个数(值为 0)
'c(2 m+1)存储剩余段元素个数
Private Sub Command1_Click()
Dim i As Integer, p As Integer, L As Integer, LL
As Integer
'读取 n 个数据并保存在数组 a 中,代码略
'读取m 个区间的下限和上限并保存在数组b 中,代码略
For i = 1 To 2 ∗ m + 1
c(i) = 0
Next i
i = 1: p = 1
L = 0: LL = 0
Do While i <= n And p <= m
If IsIn(i, p) Then
If①_____ Then
LL = LL + 1
Else
L = L + LL + 1
LL = 0
End If
i = i + 1
Else
c(2 ∗ p - 1) = L
c(2 ∗ p) = LL
L = 0
②_____
p = p + 1
End If
Loop
If i <= n Then
③_______
Else
c(2 ∗ p - 1) = L
c(2 ∗ p) = LL
End If
'输出统计结果,代码略
End Sub
'函数 IsIn 用来判断 a(i)值是否属于第 p 区间
Function IsIn ( i As Integer, p As Integer )
As Boolean
If a(i) >= b(2 ∗ p - 1) And a(i) <= b(2 ∗ p)
And p <= m Then
IsIn = True
Else
IsIn = False
End If
End Function
•第 1 段是从数组首个元素开始,元素值都属于第 1 区间的最长连续元素段,如果首个元素不属于第 1 区间,则第1 段元素个数为 0;
•第 1 段分割后的剩余元素,用同样的方法来依次分割第 2段、第 3 段、…、第 m 段;
•第 m 段分割后的剩余元素分割到第 m+1 段(剩余段)。
若第 p(1≤p≤m-1)段末尾连续元素的值也同时属于第 p+1区间,则这块连续元素称为第 p 段“重叠块”,该段其余部分称为第 p 段“非重叠块”。由于不存在第 m+1 区间,这里特别规定:第 m 段的全部元素都分割到 m 段“非重叠块”,第 m段“重叠块”的元素个数为 0。一个数组分段示例如图。图中数组第 1 个元素 10 不属于第 1 区间[0,5],因此第 1 段的元素个数为 0。 10 和 20 属于第 2 区间,而 33 不属于第 2 区间,因此第 2 段只包含 10 和 20 两个元素。第 3 段末尾连续3 个元素的值也同时属于第 4 区间,因此,第 3 段“非重叠块”包含 33,58,46,第 3 段“重叠块”包含 55,62,69。

(1)给定 2 个区间,数组各元素为“12,44,34,45,66,50,45,70”,第 1 段“重叠块”中的元素个数为 3 个,第 1 个区间为[10,50],则第 2 个区间可能为______________(单选,填字母
A.[30,80] / | B.[9,45] / | C.[60,90])。 |
Const n = 18: m = 6
Dim a(1 To n) As Integer
Dim b(1 To 2 ∗ m) As Integer
'b(1)、b(2)为第 1 区间的下限和上限,b(3)、b(4)为第 2区间的下限和上限,…
Dim c(1 To 2 ∗ m + 1) As Integer
'数组 c 用于保存统计结果:
'c(1)、c(2)分别存储第 1 段"非重叠块"和"重叠块"的元素个数,
'c(3)、c(4)分别存储第 2 段"非重叠块"和"重叠块"的元素个数,…
'c(2 m-1)存储第 m 段"非重叠块"元素个数,c(2 m)存储
第 m 段"重叠块"的元素个数(值为 0)
'c(2 m+1)存储剩余段元素个数
Private Sub Command1_Click()
Dim i As Integer, p As Integer, L As Integer, LL
As Integer
'读取 n 个数据并保存在数组 a 中,代码略
'读取m 个区间的下限和上限并保存在数组b 中,代码略
For i = 1 To 2 ∗ m + 1
c(i) = 0
Next i
i = 1: p = 1
L = 0: LL = 0
Do While i <= n And p <= m
If IsIn(i, p) Then
If①_____ Then
LL = LL + 1
Else
L = L + LL + 1
LL = 0
End If
i = i + 1
Else
c(2 ∗ p - 1) = L
c(2 ∗ p) = LL
L = 0
②_____
p = p + 1
End If
Loop
If i <= n Then
③_______
Else
c(2 ∗ p - 1) = L
c(2 ∗ p) = LL
End If
'输出统计结果,代码略
End Sub
'函数 IsIn 用来判断 a(i)值是否属于第 p 区间
Function IsIn ( i As Integer, p As Integer )
As Boolean
If a(i) >= b(2 ∗ p - 1) And a(i) <= b(2 ∗ p)
And p <= m Then
IsIn = True
Else
IsIn = False
End If
End Function
有如下VB程序段:
Dim a(1 To 6)As Integer
n=6:i=1
Do While i <=n
i-i+1
Else
a(n)=x
n=n-1
End If
Loop执行该程序段后,在下列选项中,a数组各元素的值可能是( )
Dim a(1 To 6)As Integer
n=6:i=1
Do While i <=n
x=Int(Rnd * 10)+1
If i Mod 2=x Mod 2 Then
a(i)=xi-i+1
Else
a(n)=x
n=n-1
End If
Loop执行该程序段后,在下列选项中,a数组各元素的值可能是( )
A.3,4,0,6,6,8 | B.1,8,9,11,1,5 |
C.2,5,8,6,7,10 | D.5,3,3,7,7,3 |
编写一个“十进制转二进制”的VB程序,功能如下:在文本框Text1中输入0~255之间的整数,单击“转换”按钮Command1后,在Text2上显示对应的二进制数。程序设计界面和运行界面分别如图a和图b所示。

(1)要使程序运行时,按钮Command1上显示“转换”,下列方法不可行的是________________(单选,填字母:
(2)实证上述功能的 VB 程序如下,请在划线处填入合适代码。
Private Sub Command1_Click()
Dim i As Integer, n As Integer, k As Integer, s
As String
n=Val(Text1. Text)
k=1:s=""
Do While 2^k < n
k=k+1
Loop
Do While n<>0
If n>=2^(k-1) Then
s=s+"1"
①__________
Else
s=s+"0"
End If
k=②_________
Loop

Text2. Text = s
End Sub
(3)若删除加框处的代码,在文本框Text1输入12,单击“转换”按钮,则文本框Text2中显示的内容是________________。

(1)要使程序运行时,按钮Command1上显示“转换”,下列方法不可行的是________________(单选,填字母:
A.界面设计时,选中对象Command1,设置Caption属性为“转换”/ | B.在From_Load事件处理过程中添加语句Command1.Caption="转换"/ | C.在Form_Load事件处理过程中添加语句Command1.Text="转换")。 |
Private Sub Command1_Click()
Dim i As Integer, n As Integer, k As Integer, s
As String
n=Val(Text1. Text)
k=1:s=""
Do While 2^k < n
k=k+1
Loop
Do While n<>0
If n>=2^(k-1) Then
s=s+"1"
①__________
Else
s=s+"0"
End If
k=②_________
Loop

Text2. Text = s
End Sub
(3)若删除加框处的代码,在文本框Text1输入12,单击“转换”按钮,则文本框Text2中显示的内容是________________。
某“数值提取”程序,实现如下功能:在文本框Text1中输入包含数字和其他非数字字符混合的原始数据,点击“数值提取”按钮Command1,将数据中的数字以“,”间隔输出到文本框Text2中。程序运行界面如图所示,VB代码如下。请回答以下问题:

(1)要使程序运行后,窗体Form1标题立即自动显示为“数字提取”,可在_____(单选,填字母:
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Private Sub Command1_Click ()
Dim s As String, ch As String
Dim flag As Boolean
Dim tmp As String
dim ans As String
s = Text1. Text
s = s+ "."
tmp = "" '存储每一组检测到的数字
ans ="" '存储最后的输出结果
flag =False
For i =1 To Len(s)
ch =Mid(s, i, 1)
If ch >= "0" And ch <= "9" Then
Next i
Text2. Text = ans
End Sub
(3)如图,若删除程序中的语句s=s+ ".",输入不变,则提取后的数字信息为_____。

(1)要使程序运行后,窗体Form1标题立即自动显示为“数字提取”,可在_____(单选,填字母:
A.Form_Load/ | B.Form_Click/ | C.Command1_Click)事件过程中添加语句Form1. Caption="数值提取"。 |
Private Sub Command1_Click ()
Dim s As String, ch As String
Dim flag As Boolean
Dim tmp As String
dim ans As String
s = Text1. Text
s = s+ "."
tmp = "" '存储每一组检测到的数字
ans ="" '存储最后的输出结果
flag =False
For i =1 To Len(s)
ch =Mid(s, i, 1)
If ch >= "0" And ch <= "9" Then
tmp =①_________
flag =True
ElseIf flag = True Thenans= ans +tmp+ ","
tmps = ""
②_________
End IfNext i
Text2. Text = ans
End Sub
(3)如图,若删除程序中的语句s=s+ ".",输入不变,则提取后的数字信息为_____。
给定区间[a1,a2]和[b1,b2],若a2≥b1,则认为这两个区间是有重叠的,可进行合并。如区间[1,3]和[2,6]可合并为[1,6];区间[1,6],[2,5]可合并为[1,6];区间[1,4]和[4,5]可合并为[1,5]。
编写一个“合并重叠区间”的VB程序,功能如下:在文本框Text1中按各区间起始值升序依次输入各区间的起始值和终止值(数据都用逗号分隔并以逗号结尾),单击“确定”按钮后,在Text2中显示合并后的各个区间。例如,在文本框Text1中输入“1,2,3,5,4,6,9,12,10,11,”,表示区间[1,2],[3,5],[4,6],[9,12],[10,11],合并后的区间分别为[1,2],[3,6],[9,12]。程序运行界面如图所示,实现上述功能的VB代码如下:

Const n=100
Private Sub Cmd1_Click()
Dim i As Integer, k As Integer, L As Integer, R
As Integer
Dim s As String, c As String, t As String, result
As String
Dim a(1 To n) As Integer
s=① :t="":k=0
For i=1 To Len(s)
c=Mid(s,i,1)
If c<>"," Then
②
Else
k=k+1
a(k)=Val(t)
t=""
End If
Next i
L=a(1):R=a(2)
i=3
Do While i<=k
If a(i)>R Then
result = result+"("+Str(L)+","+Str(R)+"),"
L=a(i):R=a(i+1)
R=a(i+1)
End If
③
Loop
result=result+"("+Str(L)+","+Str(R)+"),"
Text2. Text=result
End Sub
(1)码中①②③划线处代码补充完整。
①__________
②__________
③__________
(2)程序代码中的加框处代码有误,请改正。
_____________________
(3)运行该程序,输入数据如图所示,程序执行完毕时,变量k 为________________。
编写一个“合并重叠区间”的VB程序,功能如下:在文本框Text1中按各区间起始值升序依次输入各区间的起始值和终止值(数据都用逗号分隔并以逗号结尾),单击“确定”按钮后,在Text2中显示合并后的各个区间。例如,在文本框Text1中输入“1,2,3,5,4,6,9,12,10,11,”,表示区间[1,2],[3,5],[4,6],[9,12],[10,11],合并后的区间分别为[1,2],[3,6],[9,12]。程序运行界面如图所示,实现上述功能的VB代码如下:

Const n=100
Private Sub Cmd1_Click()
Dim i As Integer, k As Integer, L As Integer, R
As Integer
Dim s As String, c As String, t As String, result
As String
Dim a(1 To n) As Integer
s=① :t="":k=0
For i=1 To Len(s)
c=Mid(s,i,1)
If c<>"," Then
②
Else
k=k+1
a(k)=Val(t)
t=""
End If
Next i
L=a(1):R=a(2)
i=3
Do While i<=k
If a(i)>R Then
result = result+"("+Str(L)+","+Str(R)+"),"
L=a(i):R=a(i+1)

R=a(i+1)
End If
③
Loop
result=result+"("+Str(L)+","+Str(R)+"),"
Text2. Text=result
End Sub
(1)码中①②③划线处代码补充完整。
①__________
②__________
③__________
(2)程序代码中的加框处代码有误,请改正。
_____________________
(3)运行该程序,输入数据如图所示,程序执行完毕时,变量k 为________________。