第二部分
Visual Basic 程序设计
一• 选择题
(用答题卡答题,答案依次填在 21~30 答题号内)
21.以下关于方法的叙述中,错误的是 ____________ 。
A.方法是构成对象实体的一个部分
B.方法是一种特殊的过程或函数
C.调用方法的一般格式是:对象名称.方法名称[参数]
D.在调用方法时,对象名称是不可缺少的
22.创建应用程序的界面时,在窗体上设置了一个命令按钮,运行程序后,命令按钮没有出现在窗体上,可能的原因是 ____________ 。
A.该命令按钮的
Value 属性被设置为 False
B.该命令按钮的 Enabled 属性被设置为 False
C.该命令按钮的 Visible 属性被设置为 False
D.该命令按钮的 Default 属性被设置为 True
23.若需要在同一窗口内安排两组相互独立的单选按钮( OptionButton ),可使用 ____________ 控件将它们分隔开。
① TexBox ② Picture ③ Image ④ Frame
A. ①② B. ②③
C. ②④
D. ③④
24.单击滚动条两端的箭头时,滚动条 Value 属性值的改变量由 ____________ 属性值决定。
A. LargeChange B. Max
C. SmallChange
D. Min
25.设变量 D 为 Date 型、 A 为 Integer 型、 S 为 String 型、 L 为 Long 型,下面赋值语句中不能执行的是 ____________ 。
A. D=#12:30:00 PM#
B. A=”3277e 1”
C. S=Now D. L=”4276D 3”
26.下面表达式中, ____________ 的值是整型( Interger 或 Long )。
① 36+4/2 ② 123+Fix(6.61) ③ 57+5.5\2.5 ④ 356 & 21 ⑤ “374”+258 ⑥ 4.5 Mod 1.5
A. ①②④⑥
B. ③④⑤⑥
C. ②④⑤⑥ D. ③⑥
27.在 Select Case X 结构中,描述判断条件 3 ≦ X ≦ 7 的测试项应该写成 ____________ 。
A.
Case 3 ≦ X ≦ 7 B. Case 3 ≦ X , X ≦ 7
C. Case Is ≦ 7 , Is ≧ 3
D. Case 3 To 7
28.下面关于过程参数的说法,错误的是 ____________ 。
A.过程的形参不可以是定长字符串类型的变量
B.形参是定长字符串的数组,则对应的实参必须是定长字符串型数组,且长度相同
C.若形参是按地址传递的参数,形参和实参也能以按值传递方式进行形实结合
D.按值传递参数,形参和实参的类型可以不同,只要相容即可
29.下面有关文件管理控件的说法,正确的是 ____________ 。
A.
ChDir 语句的作用是指明新的缺省工作目录,同时也改变目录列表框的 Path 属性
B.改变文件列表框的 FileName 属性值,仅改变列表框中显示的文件名,不会引发其它事件
C.改变驱动器列表框的 ListIndex 属性值,会改变 Drive 属性值并触发 Change 事件
D.单击目录列表框中某一项,会触发 Change 事件
30.以下有关 Line 划线方法的说明,错误的是 ____________ 。
A.
Line 方法既可用于单个划线,也可用于连续划线
B. Line 方法中的 Step 选项用于指定由 CurrentX 、 CurrentY 属性决定的图形坐标位置
C. Line 方法划线的宽度由 DrawWidth 属性决定
D.当使用 F 选项时, Line 方法可用于绘制矩形
二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行)
1.执行下面的程序,单击窗体,则在窗体上显示的是
____-1________
。
Option Explicit
Private Sub Form_Click()
Dim a As Integer, b As Integer, c As Integer
b = 6: c = 6.5
a = b = c
Print a
End Sub
2.执行下面的程序,单击按钮 Command1 ,在窗体上显示的第一行是
____0.6________
,第二行是
____1.8________
,第三行是
_____5.4_______
。
Option Explicit
Private Sub Command1_Click()
Dim x As Single, i As Integer
x = 1.2
For i = 1 To 3
x = x * i
Print fun1(x)
Next i
End Sub
Private Function fun1(x As Single) As Single
Static y As Single
y = y + x
fun1 = y / 2
End Function
3.执行下面的程序后,单击按钮 Command1 ,则 N 的值是
____10________
, A 的值是
_____27_______
, B 的值是
_____9_______
。
Option Explicit
Dim n As Integer
Private Sub Command1_Click()
Dim a As Integer, b As Integer
a = 2: b = 3
For n = 1 To 6
If n Mod 2 = 0 Then
b = fun(n, a) + a
Else
a = fun(b, n) + b
End If
Next n
Print n, a, b
End Sub
Private Function fun(x As Integer, y As Integer) As Integer
x = y - 1 + n
y = x + y - n
fun = x + y
End Function
4.执行下面的程序,单击按钮 Command1 ,窗体上显示的结果中 I 的值是
____11________
, J 的值是
____2________
, K 的值是
_____43_______
。
Option Explicit
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim k As Integer
i = 1: j = 2
k = fun(i, fun(i, j)) + i + j
Print "i="; i; "j="; j; "k="; k
End Sub
Function fun(a As Integer, ByVal b As Integer) As Integer
a = a + b
b = a + b
fun = a + b
End Function
5.执行下面的程序,单击按钮 Command1 , A ( 1 , 1 )的值是
_____7_______
, A ( 1 , 4 )的值是
_____1_______
, A ( 4 , 1 )的值是
____16________
, A ( 4 , 4 )的值是
_____10_______
。
Option Base 1
Private Sub Command1_Click()
Dim a() As Integer, i As Integer, j As Integer
Dim k As Integer, n As Integer
n = 4
ReDim a(n, n)
i = 1: j = n: a(i, j) = 1
For k = 2 To n * n
If i + 1 > n Then
i = n - j + 2: j = 1
ElseIf i + 1 <= n And j + 1 > n Then
j = j - i: i = 1
Else
i = i + 1: j = j + 1
End If
a(i, j) = k
Next k
For i = 1 To n
For j = 1 To n
Print a(i, j);
Next j
Print
Next i
End Sub
Option Explicit
Private Sub Form_Click()
Dim y As Single, t As Single, a As Single
y = 2: t = 0
Do
t = Sqr(2 + t)
a = 2 / t
If
Abs(a - 1) < 10 ^ (-5)
Then Exit Do
y = y * a
Loop
Print "pi="; y
End Sub
7.本程序的功能是从给定的纯英文字符串中找出最长的一个按字母顺序排列的子串。程序界面参见图
1 。
Option Explicit
Private Sub Command1_Click()
Dim st As String
st = Text1
Text2 = max_st(st)
End Sub
Private Function max_st(st As String) As String
Dim i As Integer, sta As String
Dim p As String
p = Mid(st, 1, 1)
For i = 1 To Len(st) - 1
If Asc(Mid(st, i + 1, 1)) - Asc(Mid(st, i, 1)) = 1 Then
p = p & Mid(st, i + 1, 1)
Else
If Len(p) > 1 And Len(p) > Len(sta) Then
sta =
p
|
|
End If
p = Mid(st, i + 1, 1)
End If
Next i
If Len(p) > 1 And Len(p) > Len(sta) Then
max_st = p
Else
max_st = sta
End If
End Function
8.下面程序的功能是找出由两个不同的数字组成的回文平方数。程序界面参见图
2 。
Option Explicit
Private Sub Command1_Click()
Dim a(0 To 9) As Integer, i As Long, flg As Boolean
Dim l As Long, j As Integer, sum As Integer
For i = 10 To 1000
l = i * i
Erase a
Call
sub1((l), a, flg)
If flg Then
For j = 0 To 9
sum = sum + a(j)
Next j
If sum = 2 Then
List1.AddItem CStr(i) & "^2=" & Str(l)
End If
End If
sum = 0
Next i
|
|
End Sub
Private Sub sub1(x As Long, a() As Integer, bl As Boolean)
Dim n As Integer, idx As Integer, i As Integer
bl = False
n = Len(CStr(x))
For i = 1 To n / 2
If
Mid(CStr(x), i, 1) <> Mid(CStr(x), n - i + 1, 1)
Then
Exit Sub
End If
Next i
bl = True
For i = 1 To n
idx = x Mod 10
a(idx) = 1
x = (x \ 10)
Next i
End Sub
9.下面程序的功能是随机生成
10 个不同的两位数,从中找出所有互质数对。若两个数除了 1 以外没有其他公约数,这两个数就是互质数。其中函数 Rec 是一个递归函数。程序界面参见图 3 。
Option Explicit
Private Sub Command1_Click()
Dim a(10) As Integer, i As Integer, j As Integer
Dim n As Integer, k As Integer
Randomize
a(1) = Int(90 * Rnd) + 10
Text1 = a(1)
k = 1
Do
While k < 10
n = Int(90 * Rnd) + 10
If
InStr
(Text1, CStr(n)) = 0 Then
Text1 = Text1 & Str(n)
k = k + 1
a(k) = n
End If
Loop
For i = 1 To 9
For j = i + 1 To 10
If Not rec(a(i), a(j), 2) Then
List1.AddItem Str(a(i)) & Str(a(j))
End If
Next j
Next i
End Sub
Private Function rec(n As Integer, m As Integer, k As Integer) As Boolean
If k > n Then
rec = False
Else
If n Mod k = 0 And m Mod k = 0 Then
rec = True
Exit Function
Else
rec = rec(n, m, k + 1)
End If
End If
End Function
|
|
posted on 2006-10-21 09:10
木子李 阅读(941)
评论(0) 编辑 收藏 引用 网摘 所属分类:
Visual Basic 课堂