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()