- 基础理论
- 数据及数据库技术
- 人工智能
- 算法理论
- 算法实例
- 面向对象程序设计 VB开发工具
- 算法实例的程序实现
- 算法及算法的表示方法
- 多媒体理论
- 基础软件操作
- 算法软件操作
- 多媒体软件操作
- 网络技术应用
有如下 VB 程序段:
s = "123456789"
g = ""
For i = 1 To 3
n = Len(s)
x = Int(Rnd() * n) + 1
g = g + Mid(s, x, 1)
s = Mid(s, 1, x - 1) + Mid(s, x + 1, n - x)
Next i
在程序执行时,若变量 x 的值依次为 3,3,6,则最终变量 g 的值为( )
s = "123456789"
g = ""
For i = 1 To 3
n = Len(s)
x = Int(Rnd() * n) + 1
g = g + Mid(s, x, 1)
s = Mid(s, 1, x - 1) + Mid(s, x + 1, n - x)
Next i
在程序执行时,若变量 x 的值依次为 3,3,6,则最终变量 g 的值为( )
A."336" | B."346" | C."348" | D.15 |
小周定义了一个变量 rs 来存储超市里商品条形码,变量的数据类型应是( )
A.Integer | B.String | C.Long | D.Date |
小明设计了一个 VB 程序,实现功能如下:在文本框 Text1 中输入一个学生成绩,单击“判定成绩等级” 按钮,在 Label3 中输出该成绩的等级。运行界面如图所示:

(1)若将 Text1 的名称改为“Txt”,则应修改文本框的属性:________________ 。
(2)为实现上述功能,请在下划线处填入合适的代码。
Private Sub Command1_Click() Dim x As Integer
x = ①________
If x >= 90 Then
Label3.Caption = "A" ElseIf x >= 80 Then
Label3.Caption = "B" ElseIf x >= 60 Then
Label3.Caption = "C" ElseIf x >= 55 Then
Label3.Caption = "D"
②____________
Label3.Caption = "E" End If
End Sub

(1)若将 Text1 的名称改为“Txt”,则应修改文本框的属性:________________ 。
(2)为实现上述功能,请在下划线处填入合适的代码。
Private Sub Command1_Click() Dim x As Integer
x = ①________
If x >= 90 Then
Label3.Caption = "A" ElseIf x >= 80 Then
Label3.Caption = "B" ElseIf x >= 60 Then
Label3.Caption = "C" ElseIf x >= 55 Then
Label3.Caption = "D"
②____________
Label3.Caption = "E" End If
End Sub
某算法流程图如下图所示,图框①②③中应填入的内容分别是
(1)输出 m = ①

(2) 输入 x=4,则输出 x = ②

(3) 执行完该流程图,s 的值为 ③
(1)输出 m = ①

(2) 输入 x=4,则输出 x = ②

(3) 执行完该流程图,s 的值为 ③

在 VB 中,某个对象的属性窗口如图所示:

有关这个对象的说法错误的是( )

有关这个对象的说法错误的是( )
A.对象名 Command2 |
B.所属类为按钮类 CommandButton |
C.字面内容为 Command1 |
D.背景颜色为 H8000000F |
在一个数据序列中,如果出现连续升序的几个数,称为一个升序段。小张为了在10个数中找和值最大的升序段,编写了下面VB程序。程序运行时,在List1里随机生成10个整数,点击“统计”按钮Command1,在List2显示出和值最大的升序段和它们的和。程序运行界面如左图所示。
【小题1】(1)在设计程序界面时,可用右图中所示“控件工具箱”中的 (填写相应编号)添加用于显示10个随机整数的列表框。

【小题2】(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Dim a(1 To 10) As Integer
Private Sub Form_Load()
’产生10个随机整数,并在列表框List1中显示,代码略
End Sub
Private Sub Command1_Click()
Dim k As Integer, summax As Integer, sum As Integer,i As Integer, j As Integer
k = 0 :summax = 0
sum = ①
For i = 1 To n - 1
If a(i) < a(i + 1) Then
If ② Then
summax = sum
_ _③
sumb = i
Next i
For j = sumt To sumb
List2.AddItem Str(a(j))
Next j
List2.AddItem "和是:" & str(summax)
End Sub
【小题1】(1)在设计程序界面时,可用右图中所示“控件工具箱”中的 (填写相应编号)添加用于显示10个随机整数的列表框。


【小题2】(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Dim a(1 To 10) As Integer
Private Sub Form_Load()
’产生10个随机整数,并在列表框List1中显示,代码略
End Sub
Private Sub Command1_Click()
Dim k As Integer, summax As Integer, sum As Integer,i As Integer, j As Integer
k = 0 :summax = 0
sum = ①
For i = 1 To n - 1
If a(i) < a(i + 1) Then
sum = sum + a(i + 1)
k = k + 1
ElseIf ② Then
summax = sum
_ _③
sumb = i
End If
k = 0
sum = a(i + 1)
End IfNext i
For j = sumt To sumb
List2.AddItem Str(a(j))
Next j
List2.AddItem "和是:" & str(summax)
End Sub
编写“断句生成器”程序,实现如下功能:在文本框Text1中输入未断句的文言文内容,在文本框Text2中输入多个正整数(以“,”为分割符和结束符),单击“生成”按钮 Command1,程序以这些整数为位置信息,表示在文言文相应的位置后进行断句(即在该位置后加入“/”),最后将最终断句的结果显示在文本框Text3中。程序部分编辑界面如图,但运行界面如图所示。

【小题2】(2)实现上述功能的VB程序如下,请在划线处填入合适代码。
Private Sub Command1_Click()
Dim s As String, t As String, c As String
Dim i As Integer, p As Integer, p0 As Integer
s =" " : t =" " : p0 = 0
For i = 1 To Len (Text2.Text)
c = ①
If c = "," Then
p = Val(t)
s = s + Mid(Text1.Text, p0 + 1, p – p0) + "/ "
t = ""
_ _②___
Else
t = t + c
End If
Next i
Text3. Text = ③
End Sub


【小题1】(1)程序运行时,窗体标题显示“断句生成器”,可在Form_Load事件过程中添加 (单选, 填字母
A.Form1.Caption="断句生成器"/ | B.Form.Caption="断句生成器"/ | C.Fx.Caption="断句生成器"/ | D.工程1.Caption="断句生成器")语句 |
Private Sub Command1_Click()
Dim s As String, t As String, c As String
Dim i As Integer, p As Integer, p0 As Integer
s =" " : t =" " : p0 = 0
For i = 1 To Len (Text2.Text)
c = ①
If c = "," Then
p = Val(t)
s = s + Mid(Text1.Text, p0 + 1, p – p0) + "/ "
t = ""
_ _②___
Else
t = t + c
End If
Next i
Text3. Text = ③
End Sub
可以用二分法来求算术平方根近似值。对f(x)=x2来说,在x∈[1,2]的范围内,f(x)单调递增,这就给二分法创造了条件,例如求解√2 ,由于√2 是无理数,因此只能获得它的近似值,我们以一定精度为例来逼近√2。
(1)如果f(mid)>2,说明mid>√2,应当在[left,mid]的范围内继续逼近,故令right=mid。
(2)如果f(mid)<2,说明mid<√2,应当在[mid,right]的范围内继续逼近,故令left=mid。
为实现这一算法,编写VB程序如下:
Function f(x As Single) As Single
f = x ^ 2
End Function
Private Sub Command1_Click()
Dim i As Integer, j As Single, m As Single
Dim n As Inte
ger
n = Val(text1.Text)
i = 1: j = 2
Do While j - i > 10 ^ -5
m = (i + j) / 2
If f(m) > n Then j = m Else i = m
Loop
label1.Caption = Str(n) & "的算术平方根近似值为" & Str(m)
End Sub
下面说法错误的是( )
(1)如果f(mid)>2,说明mid>√2,应当在[left,mid]的范围内继续逼近,故令right=mid。
(2)如果f(mid)<2,说明mid<√2,应当在[mid,right]的范围内继续逼近,故令left=mid。
为实现这一算法,编写VB程序如下:
Function f(x As Single) As Single
f = x ^ 2
End Function
Private Sub Command1_Click()
Dim i As Integer, j As Single, m As Single
Dim n As Inte

n = Val(text1.Text)
i = 1: j = 2
Do While j - i > 10 ^ -5
m = (i + j) / 2
If f(m) > n Then j = m Else i = m
Loop
label1.Caption = Str(n) & "的算术平方根近似值为" & Str(m)
End Sub
下面说法错误的是( )
A.该程序不可用于计算10的算术平方根 |
B.该程序的精度j、i差值小于等于10-5 |
C.代码“Function f(x As Single) As Single”不可修改为“Function f(x As Double) As Single” |
D.代码中j=m可修改为j=m-1 |
有如下VB程序段:
Dim i As Integer, sum As Integer
Dim a(1 To 8) As Integer
sum = 1
a(8) = 49: a(7) = 28
For i = 6 To 1 Step -1
a(i) = a(i + 2) - a(i + 1)
If a(i) Mod 3 = 0 Then sum = sum + a(i)
Next i
text1.Text = Str(sum)
该段程序运行后,文本框Text1中显示的内容是( )
Dim i As Integer, sum As Integer
Dim a(1 To 8) As Integer
sum = 1
a(8) = 49: a(7) = 28
For i = 6 To 1 Step -1
a(i) = a(i + 2) - a(i + 1)
If a(i) Mod 3 = 0 Then sum = sum + a(i)
Next i
text1.Text = Str(sum)
该段程序运行后,文本框Text1中显示的内容是( )
A.21 | B.43 | C.42 | D.1 |
某数据压缩方法描述如下:
1)原始数据中,某数不为0且相邻无重复,压缩数据用该数据表示:
2)原始数据中,某数为0且相邻无重复,压缩数据用两个数表示,均为0;
3)原始数据中,某数据相邻有重复,压缩数据用3个数表示:第1个为0,第2个为重复数的个数,第3个数为该数本身。
原始数据:25 0 78 78 78 78 78 78
压缩数据:25 0 0 0 6 78
程序运行界面如下图所示:

根据上述算法,小明编写如下VB程序。
(1)若文本框Text1中输入数据为“0,25,0,78,78,0,0”(不含引号),点击“压缩”命令按钮,在文本框Text2输出数据里有 个0。
(2)实现上述功能的VB程序如下。请在划线处填入合适代码。
Dim a(1 To 100) As Integer, b(1 To 100) As Integer, c(1 To 100) As Integer
Dim n As Integer, num
As Integer
Private Sub Init1()
Dim s1 As String, c1 As String
Dim i As Integer, t As Integer, len1 As Integer
n = 0: t = 0: s1 = Text1.Text
len1 = Len(s1)
For i = 1 To len1
ch = Mid(s1, i, 1)
If ch <> "," Then
①
Else
n = n + 1: a(n) = t: t
= 0
End If
Next i
n = n + 1: a(n) = t
End Sub
Private Sub Command1_Click()
Call Init1
Dim pa As Integer, pb As Integer
Dim firstdata As Integer, count As Integer, i As Integer
pb = 1
firstdata = a(1)
n = n + 1
a(n) = a(n - 1) + 1
count = 1
For i = 2 To n
If a(i) = firstdata Then
count = count + 1
Else
If count = 1 Then
If firstdata > 0 Then
b(pb) = firstdata: pb = pb + 1
Else
b(pb) = 0: b(pb + 1) = 0: pb = pb + 2
End If
Else
b(pb) = 0
b(pb + 1) = count
②
pb = pb + 3
End If
count = 1
firstdata = a(i)
End If
Next i
Text2.Text = Str(b(1))
For i = ③
Text2.Text = Text2.Text + "," + Str(b(i))
Next i
End Sub
1)原始数据中,某数不为0且相邻无重复,压缩数据用该数据表示:
2)原始数据中,某数为0且相邻无重复,压缩数据用两个数表示,均为0;
3)原始数据中,某数据相邻有重复,压缩数据用3个数表示:第1个为0,第2个为重复数的个数,第3个数为该数本身。
原始数据:25 0 78 78 78 78 78 78
压缩数据:25 0 0 0 6 78
程序运行界面如下图所示:

根据上述算法,小明编写如下VB程序。
(1)若文本框Text1中输入数据为“0,25,0,78,78,0,0”(不含引号),点击“压缩”命令按钮,在文本框Text2输出数据里有 个0。
(2)实现上述功能的VB程序如下。请在划线处填入合适代码。
Dim a(1 To 100) As Integer, b(1 To 100) As Integer, c(1 To 100) As Integer
Dim n As Integer, num

Private Sub Init1()
Dim s1 As String, c1 As String
Dim i As Integer, t As Integer, len1 As Integer
n = 0: t = 0: s1 = Text1.Text
len1 = Len(s1)
For i = 1 To len1
ch = Mid(s1, i, 1)
If ch <> "," Then
①
Else
n = n + 1: a(n) = t: t

End If
Next i
n = n + 1: a(n) = t
End Sub
Private Sub Command1_Click()
Call Init1
Dim pa As Integer, pb As Integer
Dim firstdata As Integer, count As Integer, i As Integer
pb = 1
firstdata = a(1)
n = n + 1
a(n) = a(n - 1) + 1
count = 1
For i = 2 To n
If a(i) = firstdata Then

Else
If count = 1 Then
If firstdata > 0 Then
b(pb) = firstdata: pb = pb + 1
Else
b(pb) = 0: b(pb + 1) = 0: pb = pb + 2
End If
Else
b(pb) = 0
b(pb + 1) = count
②
pb = pb + 3
End If
count = 1
firstdata = a(i)
End If
Next i
Text2.Text = Str(b(1))
For i = ③
Text2.Text = Text2.Text + "," + Str(b(i))
Next i
End Sub