2005年春二级VB考试试卷
试题一、判断题(每小题1分,共10分)
(1)VB的Double类型数据,可以精确表示其数值范围内的所有实数。
(2)事件过程可以由某个用户事件触发执行,它不能被其他过程调用。
(3)函数MsgBox的前三个参数,分别为图标样式、按钮样式以及默认按钮。
(4)在窗体或模块文件中声明为Private的过程,只能被本窗体或模块中的过程所调用。
(5)在自定义函数过程中,函数名必须被赋值。
(6)列表框控件,只能设置为单选。
(7)语句 Shape1.FillStyle = vbSolid 和 Shape1.FillStyle
= 0 作用相同。
(8)通用对话框的FileName属性,返回的是一个输入或选取的文件全名。
(9)当一个菜单项不可见时,其后的菜单项就会填充留下来的空位。
(10)在Open语句中用Append方式所打开的文件若不存在,则创建该文件。
试题二、单选题(每小题2分,共20分)
(11)VB算术运算符乘或除、整除、求余的优先级,从高到低依次为 (11) 。
A、乘或除、求余、整除 B、乘或除、整除、求余
C、整除、求余、乘或除 D、整除、乘或除、求余
(12)表达式 (12) 可以计算整型变量x 的位数。
A、Len(Trim(Str(Abs(x)))) B、Len(Abs(x))-1
C、Len(Abs(x)) D、Len(Trim(Int(x)))
(13)函数 InStr("windowse", Mid("winnt",2,2))
的返回值是 (13) 。
A、0 B、1 C、2 D、3
(14)将文本框控件的 (14) 属性设置为False,可正常显示文本但不可编辑。
A、Locked B、Enabled C、MultiLine D、Visible
(15)执行下列语句后,列表框中各表项顺序为 (15) 。
List1.Clear: For i = 1 To 4: List1.AddItem i - 1, 0:
Next i
A、0、0、0、0 B、1、2、3、4 C、0、1、2、3 D、3、2、1、0
(16)滚动条控件的 (16) 属性用于指定用户单击滚动箭头时Value属性值的增量。
A、LargeChange
B、Change C、SmallChange D、Value
(17)下列表达式中,
(17) 不是红颜色的值。
A、 vbRed B、Rgb(255,0,0) C、QBColor(1) D、&Hff
(18)返回图片框控件P1坐标(a,b)处颜色值的表达式为 (18) 。
A、P1.SetColor(a,b) B、P1.GetColor(a,b) C、P1.Pset(a,b) D、P1.Point(a,b)
(19)通用对话框可以通过对 (19) 属性的设定来过滤文件类型。
A、Action B、FilterIndex C、Font D、Filter
(20)编制一个对Single类型一维数组排序的Sub过程,该过程只能被本模块中其他过程所调用,其首句为 (20) 。
A、Sub f(a() As Single,n As Integer) B、Public Sub f(a()
As Single)
C、Private Sub f(a(n) As Single,n As
Integer)
D、Public
Sub f(a() As Single,n As Integer)
试题三、程序填空题(每空2分,共20分)
程序1、【程序说明】单击窗体后,用输入对话框输入x、n,按下式计算结果。要求:将计算结果以标签控件显示,且每秒钟随机变换一次颜色。
![]()
(21)
Private Sub Form_Load()
Timer1.Interval
= 1000: Timer1.Enabled = False
End Sub
Private Sub Form_Click()
Dim x As
Single, n As Integer, i As Integer, t As Single
s = 0: x =
InputBox("x="): n = InputBox("n=")
(22)
For i = (23)
t = t * x / i: s = s + t
Next i
(24)
End Sub
Private Sub Timer1_Timer()
Label1.ForeColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255)
Label1.Caption = s
End Sub
(21) A、Static s As Single B、Dim
s As Single
C、Option Base 1 D、Const s As Single
(22) A、t = -1 B、t = 0 C、t
= 2 D、t = 1
(23) A、2 To n + 1 B、1 To n C、2 To n D、1
To n + 1
(24) A、Timer1.Enabled = False B、Timer1.Enabled
= True
C、Label1.Enabled = False D、Label1.Enabled
= True
程序2、【程序说明】下列程序运行时,先输入各公司月销售额,然后单击命令按钮,图片框中将显示各公司销售额的圆饼图(如图1所示)。要求:在文本框中只能输入数字字符;在圆饼图中分别用红、绿、蓝色显示A、B、C公司的扇区填充色。

图1
程序2的界面设计
Private Sub Command1_Click() '绘制圆饼图
Const PI =
3.141593
Dim a As
Single, b As Single, c As Single, x As Single
Picture1.Scale (-8, -8)-(8, 8)
(25)
a =
Text1(0).Text: b = Text1(1).Text
c = Text1(2).Text
x = 2 * PI
/ (a + b + c) '计算每个单位在圆饼图中所占圆心角的弧度值
Picture1.FillColor = RGB(255, 0, 0)
Picture1.Circle (0, 0), 6, 0, (26)
Picture1.FillColor = RGB(0, 255, 0)
Picture1.Circle (0, 0), 6, 0, -a * x, -(a + b) * x
Picture1.FillColor = (27)
Picture1.Circle (0, 0), 6, 0, -(a + b) * x, -(a + b + c) * x
End Sub
Private Sub Form_Load()
Picture1.Width = Picture1.Height
End Sub
Private Sub Text1_KeyPress(Index As Integer, K As
Integer)
If (28) Then K = 0
End Sub
(25) A、Picture1.FillStyle = 1 B、Picture1.DrawStyle
= 0
C、Picture1.DrawStyle = 1 D、Picture1.FillStyle = 0
(26) A、2*PI, -a*x B、-2*PI,a*x C、-2*PI, -a*x D、2*PI,
a*x
(27) A、RGB(255, 0, 0) B、vbBlue C、Blue D、RGB(0, 255, 0)
(28) A、K < Asc("0") Or K > Asc("9") B、K < "0" Or K >
"9"
C、K < Asc(0) Or K > Asc(9) D、K < 0 Or K > 9
程序3、【程序说明】Form2的过程Command1_Click如下,输入10个数,根据Form1中全局变量flag的不同取值做不同运算:若flag为True则求10个数的和,否则求10个数的积。
Private Sub Command1_Click()
Dim a(10)
As Single, s As Single, i As Integer
s = 0
If (29) Then s = 1
For i = 1
To 10
a(i) = InputBox("a(" & i & ")=")
If (30) Then s = s + a(i) Else s = s * a(i)
Next i
Print s
End Sub
(29) A、Not Form1.flag B、Form1.flag C、flag D、flag = True
(30) A、s = 1
B、s <> 1 C、Form1.flag D、flag
试题四、程序阅读题(每小题5分,共20分)
程序1、顺序写出运行时执行下列事件过程的显示结果。
Private Sub Command1_Click()
For i = 2 To 20
If i Mod
2 = 1 And i Mod 3 = 2 Then Print i
Next i
Print i
End Sub
程序2、 写出下列程序运行时,单击命令按钮控件Command1后窗体上的显示结果。
Private Function f1(n As Integer) As Integer
Static i
As Integer
While i
<= n
f1 = f1 + i: i = i + 1
Wend
End Function
Private Function f2(ByVal n1 As Integer, n2 As Integer)
As Integer
Dim i As
Integer
Do While
n2 >= n1
f2 = f2 + n2: n2 = n2 - 1
Loop
End Function
Private Sub Command1_Click()
Dim a As
Integer, b As Integer
Print
f1(3)
Print
f1(5)
a = 5: b =
8
Print
f2(a, b)
Print
f2(b, a)
End Sub
程序3、写出下列程序运行时,单击窗体后窗体上的显示结果。
Sub prnt(b() As String * 1, n As Integer)
Dim i As
Integer
For i = 1
To n
Print b(i);
Next i
Print
End Sub
Private Sub Form_Click()
Dim a(7)
As String * 1, i As Integer
For i = 1
To 7
a(i) = Chr(Asc("A") + i - 1)
Next i
For i = 7
To 4 Step -1
Call prnt(a, i)
Next i
End Sub
程序4、顺序画出下列程序运行时HScroll1.Value依次为1、2、3、4时图片框控件P1上图案的形状。
Private Sub Form_Load()
P1.Height
= P1.Width
P1.Scale
(0, 0)-(4, 4)
HScroll1.Min = 0: HScroll1.Max = 4
End Sub
Private Sub HScroll1_Change()
P1.Cls
P1.Line
(0, 0)-(HScroll1.Value, HScroll1.Value), , BF
End Sub
试题五、程序设计题(每小题各10分,共30分)
1. 编制事件过程Command1_Click,执行该过程时调用InputBox函数输入x,按下式计算y并以标签控件Label1显示y值。

2. 编制通用函数过程fsum,计算Single类型一维数组所有元素的和。
3. 文本文件e:\aaa.txt中存放了若干行字符,编制相应事件过程:在加载窗体时读入文件中各行字符并顺序在列表框控件List1的列表部分显示,在运行时按窗体控制菜单“关闭”后自动将列表框中各行数据存储到文本文件e:\aaa.txt。
【提示】加载窗体时自动执行的事件过程是Form_Load(),按窗体控制菜单“关闭”后自动执行的事件过程是Form_Terminate()