- 基础理论
- 数据及数据库技术
- 人工智能
- 算法理论
- 算法实例
- 面向对象程序设计 VB开发工具
- 算法实例的程序实现
- 算法及算法的表示方法
- 多媒体理论
- 基础软件操作
- 算法软件操作
- 多媒体软件操作
- 网络技术应用
某VB程序代码如下:
Dim n As Integer
Dim s As String
n = 73
s = ""
Do While n > 0
s = Str(n Mod 8) + s
n = n \ 8
Loop
执行该程序段后,变量s的值是 ( )
Dim n As Integer
Dim s As String
n = 73
s = ""
Do While n > 0
s = Str(n Mod 8) + s
n = n \ 8
Loop
执行该程序段后,变量s的值是 ( )
A."121" | B.121 | C."111" | D.111 |
(加试题)给定m个区间和1个数组(有n个元素),现要求根据各区间限定的取值范围,将数组依次分隔成m+1个段。具体分割方法如下:

(1)给定2个区间依次为[10,50]、[30,80],数组各元素为“12,44,34,45,66,50,45,70”,则第1段“重叠块”中的元素个数为_________个。
(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(2m-1)存储第m段"非重叠块"元素个数,c(2m)存储第m段"重叠块"元素个数(值为0)
'c(2m+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 _________________
If IsIn(i, p) Then
If IsIn(i, p + 1) Then
LL = LL + 1
Else
______________
LL = 0
End If
i = i + 1
Else
c(2 * p - 1) = L
c(2 * p) = LL
L = 0: LL = 0
p = p + 1
End If
Loop
If i <= n Then
c(2 * p - 1) = n - i + 1
Else
'输出统计结果,代码略
End Sub
'函数IsIn用来判断a(i)值是否属于第p区间
Function IsIn(i As Integer, p As Integer) As Boolean
If p > m Then
IsIn = False
Else
If ____________________________ 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个区间依次为[10,50]、[30,80],数组各元素为“12,44,34,45,66,50,45,70”,则第1段“重叠块”中的元素个数为_________个。
(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(2m-1)存储第m段"非重叠块"元素个数,c(2m)存储第m段"重叠块"元素个数(值为0)
'c(2m+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 _________________
If IsIn(i, p) Then
If IsIn(i, p + 1) Then
LL = LL + 1
Else
______________
LL = 0
End If
i = i + 1
Else
c(2 * p - 1) = L
c(2 * p) = LL
L = 0: LL = 0
p = p + 1
End If
Loop
If i <= n Then
c(2 * p - 1) = n - i + 1
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 p > m Then
IsIn = False
Else
If ____________________________ Then IsIn = True Else IsIn = False
End If
End Function
(加试题)小明基于冒泡排序思想设计了一个改进的排序算法。该算法先用冒泡法将数组a中奇数位置的元素、偶数位置的元素分别进行排序,然后再进行后续处理。算法的VB程序段如下,但加框处代码有错,请改正。
’待排序数据存储在数组a中(a(1)~ a(n)),要求升序排列
For i = 1 To (n - 1) \ 2
For j = 1 To n - i * 2
If a(j) > a(j + 1) Then ____________________________
t = a(j): a(j) = a(j + 2): a(j + 2) = t
End If
Next j
Next i
For i = 1 To n \ 2
j = 2 * i - 1
If a(j) > a(j+1) Then t = a(j): a(j) = a(j+1): a(j+1) = t
Next i
For i = 1 To n Step 2 ________________________
t = a(i): j = i - 1
Do While t < a(j)
a(j + 1) = a(j): j = j - 1
Loop
a(j + 1) = t
Next i
’待排序数据存储在数组a中(a(1)~ a(n)),要求升序排列
For i = 1 To (n - 1) \ 2
For j = 1 To n - i * 2
If a(j) > a(j + 1) Then ____________________________
t = a(j): a(j) = a(j + 2): a(j + 2) = t
End If
Next j
Next i
For i = 1 To n \ 2
j = 2 * i - 1
If a(j) > a(j+1) Then t = a(j): a(j) = a(j+1): a(j+1) = t
Next i
For i = 1 To n Step 2 ________________________
t = a(i): j = i - 1
Do While t < a(j)
a(j + 1) = a(j): j = j - 1
Loop
a(j + 1) = t
Next i
运行如下Visual Basic程序,单击命令按钮Command1,出现如图所示的出错信息。发生"下标越界"错误时所执行的语句是( )
Private Sub Command1_Click()
Dim a(0 To 5) As Integer
Dim i As Integer ’①
a(0) = 1 '②
For i = 1 To 5
a(i) = 2 * a(i - 1) + 1 '③
Next i
Text1.Text = Str(a(6)) '④
End Sub

Private Sub Command1_Click()
Dim a(0 To 5) As Integer
Dim i As Integer ’①
a(0) = 1 '②
For i = 1 To 5
a(i) = 2 * a(i - 1) + 1 '③
Next i
Text1.Text = Str(a(6)) '④
End Sub

A.① | B.② | C.③ | D.④ |
以下Visual Basic程序的功能是:在文本框Text1中输入一个两位数x,将个位上的数和十位上的数互换组合成新的两位数y,并在文本框Text2中输出新数。

Private Sub Command1_Click()
Dim x As Integer, y As Integer
Dim i As Integer, j As Integer
x=val(text1.text)
i=x \ 10
_____________ ①
y=j*10+i
Text1.Text = y ②
End Sub
(1)为了实现上述表达式的计算,①处应填写的是____________。
(2)程序中②处的表达式有误,应更正为____________。

Private Sub Command1_Click()
Dim x As Integer, y As Integer
Dim i As Integer, j As Integer
x=val(text1.text)
i=x \ 10
_____________ ①
y=j*10+i
Text1.Text = y ②
End Sub
(1)为了实现上述表达式的计算,①处应填写的是____________。
(2)程序中②处的表达式有误,应更正为____________。
第1次,将1张正方形纸片沿垂直和水平中线对折后撕开,变成4张纸片,第2次,从4张纸片中取其中1张纸片也照上面方法撕开,变成7张纸片,一直这样下去。描述计算撕了n次后纸片总数s的算法部分流程图如下图所示:

空白矩形框中应该填入的是 ( )

空白矩形框中应该填入的是 ( )
A.s←s+2 | B.s←s+3 | C.s←s+j | D.s←s*3 |
有如下程序段,该程序段运行后,e的值为(______) i的值为(_______) j的值为(______)
e=0
For i=2 to 10 step 2
For j=1 to 6
If (i+j) mod 3=0 then e=e+1
Next j
Next i
e=0
For i=2 to 10 step 2
For j=1 to 6
If (i+j) mod 3=0 then e=e+1
Next j
Next i
在Visual Basic的代码窗口中,语句Password.Caption= "a>b"中的Password是( )
A.对象名 | B.属性值 | C.属性名 | D.类名 |