- 基础理论
- 数据及数据库技术
- 人工智能
- 算法理论
- 算法实例
- 面向对象程序设计 VB开发工具
- 算法实例的程序实现
- 算法及算法的表示方法
- 多媒体理论
- 基础软件操作
- 算法软件操作
- 多媒体软件操作
- 网络技术应用
(加试题)有如下VB程序段:
Private Sub Command1_Click()
Dim a(0 To 9) As Integer
Dim t as Long
t = Val(Text1.Text)
Do While t <> 0
a(t Mod 10) = a(t Mod 10) + 1
t = t \ 10
Loop
For i = 0 To 9
If a(i) <> 0 Then x = x + a(i)
Next i
End Sub
若在文本框 Text1 中输入 3141592,则程序执行后,变量 x 的值为( )
Private Sub Command1_Click()
Dim a(0 To 9) As Integer
Dim t as Long
t = Val(Text1.Text)
Do While t <> 0
a(t Mod 10) = a(t Mod 10) + 1
t = t \ 10
Loop
For i = 0 To 9
If a(i) <> 0 Then x = x + a(i)
Next i
End Sub
若在文本框 Text1 中输入 3141592,则程序执行后,变量 x 的值为( )
A.1 | B.2 | C.5 | D.7 |
(加试题)某程序代码如下:
Private Sub Command1_Click()
Dim c As Integer
Dim a(1 To 20) As String
s = "123 how are you": c = 0
For i = 1 To Len(s)
a(i) = Mid(s, i, 1)
Next i
For i = 1 To Len(s) - 1
For j = Len(s) To i + 1 Step -1
If a(j) < a(j - 1) Then
k = a(j): a(j) = a(j - 1): a(j - 1) = k
End If
Next j
Next i
For i = 1 To Len(s) - 1
If a(i) < a(i + 1) Then c = c + 1
Next i
Text2.Text = Str(c)
End Sub程序运行结束后,变量c的值是( )
Private Sub Command1_Click()
Dim c As Integer
Dim a(1 To 20) As String
s = "123 how are you": c = 0
For i = 1 To Len(s)
a(i) = Mid(s, i, 1)
Next i
For i = 1 To Len(s) - 1
For j = Len(s) To i + 1 Step -1
If a(j) < a(j - 1) Then
k = a(j): a(j) = a(j - 1): a(j - 1) = k
End If
Next j
Next i
For i = 1 To Len(s) - 1
If a(i) < a(i + 1) Then c = c + 1
Next i
Text2.Text = Str(c)
End Sub程序运行结束后,变量c的值是( )
A.13 | B.11 | C.10 | D.15 |
编写VB程序,实现如下功能:单击启动按钮Start1,在列表框List1内每隔2秒输出一个由10个大小写字母组合成的字符串,运行界面如图所示:

(注:字母“A”的ASCII码值为65,字母“a” 的ASCII码值为97)
(1)按观察程序代码,可知“启动”按钮的对象名为_________ 。(单选,填字母
(2)实现上述功能的 VB 程序如下,请在划线处填入合适代码。
Private Sub Start_1_Click()
Timer1.Enabled = ①
End Sub
Private Sub Timer1_Timer()
Dim s As String, c As String
Dim i As Integer, e As Integer, h As Integer
Randomize
s = ""
flag = True
For i = 1 To 10
e = Int(Rnd * 52 + 1)
If e <= 26 Then
h = e + 64
Else
②
End If
③
s = s + c
Next i
List1.AddItem s
End Sub
划线处的代码为:
①_______________________________
②________________________________
③________________________________

(注:字母“A”的ASCII码值为65,字母“a” 的ASCII码值为97)
(1)按观察程序代码,可知“启动”按钮的对象名为_________ 。(单选,填字母
A.Timer1 / | B.Start / | C.Command1 / | D.Start_1 / | E.启动) |
Private Sub Start_1_Click()
Timer1.Enabled = ①
End Sub
Private Sub Timer1_Timer()
Dim s As String, c As String
Dim i As Integer, e As Integer, h As Integer
Randomize
s = ""
flag = True
For i = 1 To 10
e = Int(Rnd * 52 + 1)
If e <= 26 Then
h = e + 64
Else
②
End If
③
s = s + c
Next i
List1.AddItem s
End Sub
划线处的代码为:
①_______________________________
②________________________________
③________________________________
(加试题)由数组a生成数字方阵,并求方阵中对角线上数值的和:
1) 将数组a中的n个元素依次分割出若干个数据块,每个数据块有m×m个元素。
2) 对每个分割出的数据块,按照数字方阵方式显示。
3) 找出数字方阵中对角线上的数值,求出它们的和,若分割的数据块达不到m×m个元素,则忽略。
数字方阵过程如下:将数据块中m×m个元素按行序排列成一个数字方阵,以3×3数据块为例,排列过程如下图所示:

找出对角线上的数值分别是:12,19,83和34,19,54,它们的和分别是114,107
小明依据上述描述设计了如下VB程序。请回答下列问题:
(1)当n=30时,如下图所示,分割出每个数据块为2×2个元素,第二组数字方阵中的对角线和分别为_____________。
(2)请在划线处填入合适的代码。
Dim a(1 To 30) As Integer
Private Sub Form_Load()
'随机生成30个不重复的正整数到a()数组中。代码略
End Sub
Private Sub Command1_Click()
Dim t As Integer, i As Integer, m As Integer, j As Integer, x As Integer
Dim s As String, tt As String
Dim start As Integer '当前数字方阵的第1个元素下标
m = Val(Text1.Text)
t = 30 \ m ^ 2
If t = 0 Then
MsgBox "重新输入"
Else
List1.Clear
For i = 1 To t
start = ①
For j = 1 To m
For x = 1 To m
tt = tt + ②
Next x
List1.AddItem tt
tt = ""
Next j
List1.AddItem ""
s = sum1(start, m)
List2.AddItem "第" + Str(i) + "组的对角线分别是:" + s
Next i
End If
End Sub
Function sum1(begin As Integer, m As Integer) As String
Dim s1 As Integer, s2 As Integer
s1 = a(begin)
For i = 1 To m - 1
s1 = s1 + a(begin + i * (m + 1))
Next i
s2 = 0
For i = 1 To m
s2 = s2 + a(begin + i * (m - 1))
Next i
sum1 = ③
End Function
划线处代码为:
① ______________________________
② ______________________________
③ ______________________________
1) 将数组a中的n个元素依次分割出若干个数据块,每个数据块有m×m个元素。
2) 对每个分割出的数据块,按照数字方阵方式显示。
3) 找出数字方阵中对角线上的数值,求出它们的和,若分割的数据块达不到m×m个元素,则忽略。
数字方阵过程如下:将数据块中m×m个元素按行序排列成一个数字方阵,以3×3数据块为例,排列过程如下图所示:

找出对角线上的数值分别是:12,19,83和34,19,54,它们的和分别是114,107
小明依据上述描述设计了如下VB程序。请回答下列问题:

(2)请在划线处填入合适的代码。
Dim a(1 To 30) As Integer
Private Sub Form_Load()
'随机生成30个不重复的正整数到a()数组中。代码略
End Sub
Private Sub Command1_Click()
Dim t As Integer, i As Integer, m As Integer, j As Integer, x As Integer
Dim s As String, tt As String
Dim start As Integer '当前数字方阵的第1个元素下标
m = Val(Text1.Text)
t = 30 \ m ^ 2
If t = 0 Then
MsgBox "重新输入"
Else
List1.Clear
For i = 1 To t
start = ①
For j = 1 To m
For x = 1 To m
tt = tt + ②
Next x
List1.AddItem tt
tt = ""
Next j
List1.AddItem ""
s = sum1(start, m)
List2.AddItem "第" + Str(i) + "组的对角线分别是:" + s
Next i
End If
End Sub
Function sum1(begin As Integer, m As Integer) As String
Dim s1 As Integer, s2 As Integer
s1 = a(begin)
For i = 1 To m - 1
s1 = s1 + a(begin + i * (m + 1))
Next i
s2 = 0
For i = 1 To m
s2 = s2 + a(begin + i * (m - 1))
Next i
sum1 = ③
End Function
划线处代码为:
① ______________________________
② ______________________________
③ ______________________________
(1)有如下程度段:
X=5
Y=-20
If Not x>0 Then x=y-3 Else y=x+3
该程序段运行后,y的值为:___ 。
(2)有如下VB程序段:
a = 3: b = 4: c = 5
If a >= b And a >= c Then
y = a
ElseIf b >= c Then
y = b
Else
y = c
End If
该程序段运行之后,整数型变量y的值:_____。
(3)火车托运行李,根据行李的重量按下列标准收费:若不超过50千克,按每千克0.35元收费;若超过50千克,超过部分则按每千克0.5元收费。输入托运行李的重量,计算并输出托运行李的费用。下面程序若用于实现上述目标,则划线处的语句应更改为_________________________。
Sub command1_click( )
Dim x as double
X=val(text1.text)
If x<=50 then
Text2.text= str(0.35*x)
Else
Text2.text= str(0.5*x)
Endif
End sub
(4)求n阶乘(n!=1*2*3*4*n),划线处的语句应为.
Private Sub Command1_Click()
Dim i As Integer, n As Integer
Dim f As Long
n = Val(Text1.Text)
f = 1
i = 1
Do While i <= n
__________________________
i = i + 1
Loop
Text2.Text = Str(f)
End Sub
X=5
Y=-20
If Not x>0 Then x=y-3 Else y=x+3
该程序段运行后,y的值为:___ 。
(2)有如下VB程序段:
a = 3: b = 4: c = 5
If a >= b And a >= c Then
y = a
ElseIf b >= c Then
y = b
Else
y = c
End If
该程序段运行之后,整数型变量y的值:_____。
(3)火车托运行李,根据行李的重量按下列标准收费:若不超过50千克,按每千克0.35元收费;若超过50千克,超过部分则按每千克0.5元收费。输入托运行李的重量,计算并输出托运行李的费用。下面程序若用于实现上述目标,则划线处的语句应更改为_________________________。
Sub command1_click( )
Dim x as double
X=val(text1.text)
If x<=50 then
Text2.text= str(0.35*x)
Else
Text2.text= str(0.5*x)
Endif
End sub
(4)求n阶乘(n!=1*2*3*4*n),划线处的语句应为.
Private Sub Command1_Click()
Dim i As Integer, n As Integer
Dim f As Long
n = Val(Text1.Text)
f = 1
i = 1
Do While i <= n
__________________________
i = i + 1
Loop
Text2.Text = Str(f)
End Sub
某VB程序段如下:
Dim a(1 To 5) As Integer, i As Integer
a(1) = 1: a(2) = 1
For i = 3 To 5
a(i) = a(i - 1) + a(i - 2)
Next i
Text1.Text = Str(a(i - 1))
该程序段运行后,文本框Text1中显示的内容是
Dim a(1 To 5) As Integer, i As Integer
a(1) = 1: a(2) = 1
For i = 3 To 5
a(i) = a(i - 1) + a(i - 2)
Next i
Text1.Text = Str(a(i - 1))
该程序段运行后,文本框Text1中显示的内容是
A.2 | B.3 | C.5 | D.8 |