- 基础理论
- 数据及数据库技术
- 人工智能
- 算法理论
- 算法实例
- 面向对象程序设计 VB开发工具
- 算法实例的程序实现
- 算法及算法的表示方法
- 多媒体理论
- 基础软件操作
- 算法软件操作
- 多媒体软件操作
- 网络技术应用
小明学了排序和查找算法后,编写了一个处理成绩的程序。单击“获取成绩”按钮得到 n 个非降序数保存在数组 a(1)—a(n)中,并显示在 List1 中。在文本框 Text1 中输入成绩 key,单击“查找”按钮,则在标签 label1 中显示共有多少位同学的成绩大于等于该成绩。

(1)加框 1 处的程序代码有错,应改为____。
(2)请在划线处填入合适代码:
Dim a(1000) As Integer, n As Integer Private Sub Command1_Click()
'从数据库获取 n 个成绩存储在 a(1)---a(n)组中,代码略 For i = 2 To n ‘排序
tmp = a(i) j = 1
Do While tmp > = a(j) j = j + 1
If __________Then Exit Do Loop
For k = i To j + 1 Step -1 a(k) = a(k - 1)
Next k
'改错(1)
Next i
For i = 1 To n List1.AddItem Str(a(i))
Next i
End Sub
Private Sub Command2_Click()
Dim key As Integer, i As Integer, j As Integer, m As Integer key = Val(Text1.Text)
i = 1: j = n
Do While i <= j
m = (i + j) \ 2
If _________ Then j = m - 1
Else
i = m + 1 End If
Loop
Label1.Caption = "共有" +_________+ "位同学大于等于该成绩。"
End Sub

(1)加框 1 处的程序代码有错,应改为____。
(2)请在划线处填入合适代码:
Dim a(1000) As Integer, n As Integer Private Sub Command1_Click()
'从数据库获取 n 个成绩存储在 a(1)---a(n)组中,代码略 For i = 2 To n ‘排序
tmp = a(i) j = 1
Do While tmp > = a(j) j = j + 1
If __________Then Exit Do Loop
For k = i To j + 1 Step -1 a(k) = a(k - 1)
Next k

Next i
For i = 1 To n List1.AddItem Str(a(i))
Next i
End Sub
Private Sub Command2_Click()
Dim key As Integer, i As Integer, j As Integer, m As Integer key = Val(Text1.Text)
i = 1: j = n
Do While i <= j
m = (i + j) \ 2
If _________ Then j = m - 1
Else
i = m + 1 End If
Loop
Label1.Caption = "共有" +_________+ "位同学大于等于该成绩。"
End Sub
设某汉字由7×7的0、1点阵图案组成。依照以下规则生成压缩码:连续一组数值,从汉字点阵图案的第一行第一个符号开始计算,按书写顺序由左到右,从上到下。压缩码第一个数表示起始的数字(例如0),第二个数表示连续有几个0,第三个数表示接下来连续有几个1,第四个数表示接下来连续有几个0,第五个数表示接下来连续有几个1,以此类推……
例如,以下汉字点阵图案:
0001000
0001000
0001111
0001000
0001000
0001000
1111111
对应的压缩码是031616431616137(第一个数是0,表示一开始时的数字为0)。

(1) 请将程序代码补充完整。
Private Sub Command1_Click()
Dim code As String, c As Integer, res As String,k As Integer
code=Text1.Text
k=0
res=""
c=Val(Mid(code,1,1))
For i=2 To Len(code)
For j=1 To Val(Mid(code, i, 1)) '
res=______________
___________________
If k=7 Then
List1.AddItem res
k=0
res=""
End If
Next j
c=________________ '
Next i
End Sub
(2)现给出如下点阵图,则压缩码为_________________________________。
例如,以下汉字点阵图案:
0001000
0001000
0001111
0001000
0001000
0001000
1111111
对应的压缩码是031616431616137(第一个数是0,表示一开始时的数字为0)。

(1) 请将程序代码补充完整。
Private Sub Command1_Click()
Dim code As String, c As Integer, res As String,k As Integer
code=Text1.Text
k=0
res=""
c=Val(Mid(code,1,1))
For i=2 To Len(code)
For j=1 To Val(Mid(code, i, 1)) '
res=______________
___________________
If k=7 Then
List1.AddItem res
k=0
res=""
End If
Next j
c=________________ '
Next i
End Sub
(2)现给出如下点阵图,则压缩码为_________________________________。

“杨辉三角”问题,如图所示,其规律如下:其显著特征是除斜边上的1以外,其余数值均等于其肩部两数之和。编写VB程序,其功能如下:在文本框Text1中输入20以内的整数,点击“打印”按钮,在列表框list1中输出杨辉三角,程序界面如图所示,VB程序代码如下。

实现上述功能的VB程序如下,请回答下列问题:
(1)代码“Private Sub Command1_Click()”中的Command1_Click()属于_________(单选,填字母:
(2)请在划线处填入合适的代码。
(3)若将加框处代码改为“1 To i”,则__________(选填:会/不会)影响程序结果。
Private Sub Command1_Click()
Dim a (20) As Long
Dim I As Integer,j As Integer,s As String
List1.Clear
n=Val(Text1.Text)
a(1)=1
List1.AddItem Str(a(1))
For i=2 To n
s=""
For j=i To 1 Step-1
a(j)=_____
s=s+Str(a(j))
Next j
_____
Next i
End Sub

实现上述功能的VB程序如下,请回答下列问题:
(1)代码“Private Sub Command1_Click()”中的Command1_Click()属于_________(单选,填字母:
A.对象名/ | B.属性名/ | C.事件名/ | D.事件过程)。 |
(3)若将加框处代码改为“1 To i”,则__________(选填:会/不会)影响程序结果。
Private Sub Command1_Click()
Dim a (20) As Long
Dim I As Integer,j As Integer,s As String
List1.Clear
n=Val(Text1.Text)
a(1)=1
List1.AddItem Str(a(1))
For i=2 To n
s=""
For j=i To 1 Step-1
a(j)=_____
s=s+Str(a(j))
Next j
_____
Next i
End Sub
某对分查找算法的VB程序段如下:
i=1:j=6:flag=False
key=Val(Text1.Text)
Do While i<=j And flag=False
m=(i+j)\2
If key=a(m) Then flag=True
If key<a(m) Then j=m-1 Else i=m+1
Loop
i=1:j=6:flag=False
key=Val(Text1.Text)
Do While i<=j And flag=False
m=(i+j)\2
If key=a(m) Then flag=True
If key<a(m) Then j=m-1 Else i=m+1
Loop
数组元素a(1)到a(6)的值依次为“7,9,15,27,34,51”。文本框Text1中输入“27”后运行该程序,运行结束后,下列说法不正确的是( )
A.变量flag的值为True | B.变量i的值为4 | C.变量j的值为4 | D.变量m的值为4 |
有VB程序段如下:
s="2019.06 Visual Basic6.0":n=0
For i=1 To Len(s)
ch=Mid(s,i,1)
If ch>="0" And ch<="9"Then
m=Asc(ch)-Asc("0")+1
a(m)=a(m)+1
End If
Next i
For i=1 To 10
If a(i)>1Then n=n+i
Next i
数组a各元素的初始值都为0,执行该程序段后,则变量n的值为( )
s="2019.06 Visual Basic6.0":n=0
For i=1 To Len(s)
ch=Mid(s,i,1)
If ch>="0" And ch<="9"Then
m=Asc(ch)-Asc("0")+1
a(m)=a(m)+1
End If
Next i
For i=1 To 10
If a(i)>1Then n=n+i
Next i
数组a各元素的初始值都为0,执行该程序段后,则变量n的值为( )
A.2 | B.4 | C.8 | D.10 |
有如下VB程序段:
a(1)="231":a(2)="34":a(3)="23":a(4)="234":a(5)="123"
For i=1To4
执行该程序段后,数组元素a(1)到a(5)的数据依次为( )
a(1)="231":a(2)="34":a(3)="23":a(4)="234":a(5)="123"
For i=1To4
For j=1To5-i
If a(j)>a(j+1)Then t=a(j):a(j)=a(j+1):a(j+1)=tNext j
Next i执行该程序段后,数组元素a(1)到a(5)的数据依次为( )
A.“23”,”231”,”234”,”34”,”123” | B.“23”,”123”,”231”,”234”,”34” |
C.“23”,”34”,”123”,”231”,”234” | D.“123”,”23”,”231”,”234”,”34” |
礼品分配问题:某班得到一件精美礼品,由于只有一件礼品,大家决定用下面方法来分配该礼品:n个同学围成一圈,按顺序从1到n进行编号。从第1个人开始报数,报到m的人退出,下一个人继续从1开始报数,报到m的人出圈┈┈,如此依次进行,直到留下的最后一个人得到该礼品。程序运行界面如图所示,单击“开始”按钮,将输出退出圈子的同学编号以及最后获得奖品的编号。

实现上述功能的VB程序如下,请回答下列问题。
(1)当班级总人数n=15,m=5的时候,获得礼品的同学编号是__________(填写数字)。
(2)在划线处填入合适的代码。
Private Sub Command1_Click()
Dim i As Integer, n As Integer, m As Integer
Dim num As Integer, t As Integer
Dim a(1 To 100) As Boolean
n = Val(Text1.Text)
m =Val(Text2.Text)
For i = 1 To n
_____
Do While t > 1
For i = 1 To n
If a(i) = True Then _____
If num = m Then
_____
t = t -1
num = 0
Text3.Text = Text3.Text +Str(i)
End If
Next i
Loop
For i = 1 To n
If a(i)= TrueThen Label2.Caption = "获得礼品同学编号:" + Str(i)
Next i
End Sub

实现上述功能的VB程序如下,请回答下列问题。
(1)当班级总人数n=15,m=5的时候,获得礼品的同学编号是__________(填写数字)。
(2)在划线处填入合适的代码。
Private Sub Command1_Click()
Dim i As Integer, n As Integer, m As Integer
Dim num As Integer, t As Integer
Dim a(1 To 100) As Boolean
n = Val(Text1.Text)
m =Val(Text2.Text)
For i = 1 To n
a(i) = True
Next i_____
Do While t > 1
For i = 1 To n
If a(i) = True Then _____
If num = m Then
_____
t = t -1
num = 0
Text3.Text = Text3.Text +Str(i)
End If
Next i
Loop
For i = 1 To n
If a(i)= TrueThen Label2.Caption = "获得礼品同学编号:" + Str(i)
Next i
End Sub
有如下VB程序段:
For i=1To5
a(i)=Int(Rnd*20)+1
Next i
For i=2 To 5
If i Mod 2=1 And a(i-1)<a(i)Then
t=a(i):a(i)=a(i-1):a(i-1)=t
Else
a(i)=a(i)-1
End If
Next i
执行该程序段后,a(1)~a(5)各元素不可能的值是( )
For i=1To5
a(i)=Int(Rnd*20)+1
Next i
For i=2 To 5
If i Mod 2=1 And a(i-1)<a(i)Then
t=a(i):a(i)=a(i-1):a(i-1)=t
Else
a(i)=a(i)-1
End If
Next i
执行该程序段后,a(1)~a(5)各元素不可能的值是( )
A.7 3 0 19 0 | B.18 16 1 9 2 |
C.20 17 8 19 15 | D.19 0 7 8 4 |
某升序排序算法的VB程序段如下:
Dim a (8) As Integer
For i=2 To 8

j=j-1
数组元素a(1)~a(8)的值为随机生成的整数,为实现升序排序,则上述程序段3个方框处的表达式分别为( )
Dim a (8) As Integer
For i=2 To 8
a(0)=a(i)
Do While a (0)<a(j)

j=j-1
Loop
数组元素a(1)~a(8)的值为随机生成的整数,为实现升序排序,则上述程序段3个方框处的表达式分别为( )
A.①j=i-1 ②a(j+1)=a(j) ③a(j+1)=a(0) |
B.①j=i+1 ②a(j+1)=a(j) ③a(0)=a(j+1) |
C.①j=i-1 ②a(j)=a(j+1) ③a(j+1)=a(0) |
D.①j=i+1 ②a(j)=a(j+1) ③a(0)=a(j+1) |