2005年4月等级考试二级VB真题(附答案)

9/8/2005来源:软件水平考试人气:26720

  考试时间90分钟,满分100分)
  
  一、选择题((1)~(35)每小题2分,共70分)
  
  下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
  
  (1)数据的存储结构是指
  
  A) 存储在外存中的数据B) 数据所占的存储空间量
  
  C) 数据在计算机中的顺序存储方式D) 数据的逻辑结构在计算机中的表示
  
  (2)下列关于栈的描述中错误的是
  
  A)栈是先进后出的线性表B) 栈只能顺序存储
  
  C) 栈具有记忆作用D) 对栈的插入与删除操作中,不需要改变栈底指针
  
  (3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是
  
  A) 冒泡排序为n/2B) 冒泡排序为n
  
  C) 快速排序为nD) 快速排序为n(n-1)/2
  
  (4)对于长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为
  
  A) log2nB) n/2C) nD) n+1
  
  (5)下列对于线性链表的描述中正确的是
  
  A)存储空间不一定是连续,且各元素的存储顺序是任意的
  
  B)存储空间不一定是连续,且前件元素一定存储在后件元素的前面
  
  C)存储空间必须连续,且前件元素一定存储在后件元素的前面
  
  D)存储空间必须连续,且各元素的存储顺序是任意的
  
  (6)下列对于软件测试的描述中正确的是
  
  A)软件测试的目的是证明程序是否正确
  
  B)软件测试的目的是使程序运行结果正确
  
  C)软件测试的目的是尽可能多地发现程序中的错误
  
  D)软件测试的目的是使程序符合结构化原则
  
  (7)为了使模块尽可能独立,要求
  
  A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
  
  B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
  
  C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
  
  D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
  
  (8)下列描述中正确的是
  
  A) 程序就是软件
  
  B) 软件开发不受计算机系统的限制
  
  C) 软件既是逻辑实体,又是物理实体
  
  D) 软件是程序、数据与相关文档的集合
  
  (9)数据独立性是数据库技术的重要特点之一。所谓数据独立性是指
  
  A) 数据与程序独立存放
  
  B) 不同的数据被存放在不同的文件中
  
  C) 不同的数据只能被对应的应用程序所使用
  
  D) 以上三种说法都不对
  
  (10) 用树形结构表示实体之间联系的模型是
  
  A) 关系模型B) 网状模型C) 层次模型D) 以上三个都是

  11、在窗体(名称为Form1)上画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写一个事件过程。程序运行以后,如果在文本框中输入一个字符,则把命令按钮的标题设置为“计算机等级考试”。以下能实现上述操作的事件过程是:
  
  A)PRivate Sub Text1_Change()
  
  Command1.Caption=”计算机等级考试”
  
  End Sub
  
  B) Private Sub Command1_Click()
  
  Caption=”计算机等级考试”
  
  End Sub
  
  C) Private Sub Form1_Click()
  
  Text1.Caption=”计算机等级考试”
  
  End Sub
  
  D) Private Sub Command1_Click()
  
  Text1.Text=”计算机等级考试”
  
  End Sub
  
  (12)设a=5,b=4,c=3,d=2,下列表达式的值是
  
  3>2*b Or a=c And b<>c Or c>d
  
  A)1    B)True    C)False    D)2
  
  (13)设a=”MicrosoftVisualBasic”, 则以下使变量b的值为”VisualBasic”的语句是
  
  A)b=Left(a,10)
  
  B)b=Mid(a,10)
  
  C)b=Right(a,10)
  
  D)b=Mid(a,11,10)
  
  (14)假定有如下的窗体事件过程:
  
  Private Sub Form_Click()
  
  a$ = "Microsoft Visual Basic"
  
  b$ = Right(a$, 5)
  
  c = Mid(a$, 1, 9)
  
  MsgBox a$, 34, b$, c$, 5
  
  End Sub
  
  程序运行后单击窗体,则在弹出的信息框中的标题栏中显示的信息是:
  
  A)Microsoft Visual
  
  B)Microsoft
  
  C)Basic
  
  D)5
  
  (15)设a=”a”,b=”b”,c=”c”,d=”d”,执行语句x=Iif((ad),”A”,”B”)后,x的值为:
  
  A)”a”
  
  B)”b”
  
  C)”B”
  
  D)”A”
  
  (16)为了使命令按钮(名称为Command1)右移200,应使用的语句是
  
  A)Command1.Move -200
  
  B) Command1.Move 200
  
  C) Command1.Left= Command1.Left+200
  
  D) Command1.Left= Command1.Left-200
  
  (17)在窗体上画一个文本框,然后编写如下事件过程:
  
  Private Sub Form_Click()
  
  x = InputBox("请输入一个整数")
  
  Print x + Text1.Text
  
  End Sub
  
  程序运行时,在文本框中输入456,然后单击窗体,在输入对话框中输入123,单击“确定”按钮后,在窗体上显示的内容是:
  
  A)123
  
  B)456
  
  C)579
  
  D)123456
  
  (18)在窗体上画一个文本框和一个计时器控件,名称分别为Text1和Timer1,在属性窗口中把计时器的Interval属性设置为1000,Enabled属性设置为False,程序运行后,如果单击命令按钮,则每隔一秒钟在文本框中显示一次当前的时间。以下是实现上述操作的程序:
  
  Private Sub Command1_Click()
  
  Timer1._________
  
  End Sub
  
  Private Sub Timer1_Timer()
  
  Text1.Text = Time
  
  End Sub
  
  在______处应填入的内容是
  
  A)Enabled=True
  
  B)Enabled=False
  
  C)Visible=True
  
  D)Visible=False
  (19)假定在图片框Picture1中装入了一个图形,为了清除该图形(不删除图片框),应采用的正确方法是:
  
  A)选择图片框,然后按Del键
  
  B)执行语句Picture1.Picture=LoadPicture(“”)
  
  C)执行语句Picture1.Picture=””
  
  D)选择图片框,在属性窗口中选择Picture属性,然后按回车键
  
  (20)在窗体上画一个List1的列表框,一个名称为Label1的标签,列表框中显示若干个项目,当单击列表框中的某个项目时,在标签中显示被选中的项目的名称,下列能正确实现上述操作的程序是
  
  A) Private Sub List1_Click()
  
  Label1.Caption = List1.ListIndex
  
  End Sub
  
  B) Private Sub List1_Click()
  
  Label1.Name = List1.ListIndex
  
  End Sub
  
  C) Private Sub List1_Click()
  
  Label1.Name = List1.Text
  
  End Sub
  
  D) Private Sub List1_Click()
  
  Label1.Caption = List1.Text
  
  End Sub

  (21)在窗体上画一个命令按钮,名称为Command1,然后编写如下事件过程:
  
  Private Sub Command1_Click()
  
  Dim i As Integer, x As Integer
  
  For i = 1 To 6
  
  If i = 1 Then x = i
  
  If i <= 4 Then
  
  x = x + 1
  
  Else
  
  x = x + 2
  
  End If
  
  Next i
  
  Print x
  
  End Sub
  
  程序运行后,单击命令按钮,其输出结果为
  
  A)9
  
  B)6
  
  C)12
  
  D)15
  
  (22)在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
  
  Private Sub Command1_Click()
  
  c = "ABCD"
  
  For n = 1 To 4
  
  Print _________
  
  Next
  
  End Sub
  
  程序运行后,单击命令按钮,要求在窗体上显示如下内容:
  
  D
  
  CD
  
  BCD
  
  ABCD
  
  则在________处应填入的内容为
  
  A)Left(c,n)
  
  B)Right(c,n)
  
  C)Mid(c,n,1)
  
  D)Mid(c,n,n)
  
  (23)执行以下程序段
  
  Dim x As Integer, i As Integer
  
  x=0
  
  For i = 20 To 1 Step -2
  
  x = x + i \ 5
  
  Next I
  
  后,x的值为
  
  A)16
  
  B)17
  
  C)18
  
  D)19
  
  (24)在Visual Basic工程中,可以作为启动对象的程序是
  
  A)任何窗体或标准模块
  
  B)任何窗体或过程
  
  C)Sub Main过程或其他任何模块
  
  D)Sub Main过程或任何窗体
  
  (25)假定建立了一个名为Command1的命令按钮数组,则以下说法中错误的是
  
  A)数组中每个命令按钮的名称(名称属性)均为Command1
  
  B)数组中每个命令按钮的标题(Caption属性)都一样
  
  C)数组中所有命令按钮可以使用同一个时间过程
  
  D)用名称Command1(下标)可以访问数组中的每个命令按钮

  (26)把窗体的KeyPreview属性设置为True,然后编写如下事件过程:
  
  Private Sub Form_KeyPress(KeyAscii As Integer)
  
  Dim ch As String
  
  ch = Chr(KeyAscii)
  
  KeyAscii = Asc(UCase(ch))
  
  Print Chr(KeyAscii + 2)
  
  End Sub
  
  程序运行后,按键盘上的”A”键,则在窗体上显示的内容是
  
  A)A
  
  B)B
  
  C)C
  
  D)D
  
  (27)在窗体上画一个命令按钮和一个文本框,名称分别为Command1和Text1,然后编写如下程序:
  
  Private Sub Command1_Click()
  
  a = InputBox("请输入日期(1~31)")
  
  t = "旅游景点:" _
  
  & IIf(a > 0 And a <= 10, "长城", "") _
  
  & IIf(a > 10 And a <= 20, "故宫", "") _
  
  & IIf(a > 20 And a <= 30, "颐和园", "")
  
  Text1.Text = t
  
  End Sub
  
  程序运行后,如果从键盘输入16,则在文本框中显示的内容是:
  
  A)旅游景点:长城故宫
  
  B)旅游景点:长城颐和园
  
  C)旅游景点:颐和园
  
  D)旅游景点:故宫
  
  (28)在窗体上画一个名称为Label1的标签,然后编写如下事件过程:
  
  Private Sub Form_Click()
  
  Dim arr(10, 10) As Integer
  
  Dim i As Integer, j As Integer
  
  For i = 2 To 4
  
  For j = 2 To 4
  
  arr(i, j) = i * j
  
  Next j
  
  Next i
  
  Label1.Caption = Str(arr(2, 2) + arr(3, 3))
  
  End Sub
  
  程序运行后,单击窗体,在标签中显示的内容是
  
  A)12
  
  B)13
  
  C)14
  
  D)15
  (29) 在窗体上画一个名称为Comamnd1的命令按钮,然后编写如下通用过程和命令按钮的事件过程:
  
  Private Function fun(ByVal m As Integer)
  
  If m Mod 2 = 0 Then
  
  fun = 2
  
  Else
  
  fun = 1
  
  End If
  
  End Function
  
  Private Sub Command1_Click()
  
  Dim i As Integer, s As Integer
  
  s = 0
  
  For i = 1 To 5
  
  s = s + fun(i)
  
  Next
  
  Print s
  
  End Sub
  
  程序运行后,单击命令按钮,则窗体上显示的是:
  
  A)6
  
  B)7
  
  C)8
  
  D)9
  
  (30)阅读程序:
  
  Option Base 1
  
  Dim arr() As Integer
  
  Private Sub Form_Click()
  
  Dim i As Integer, j As Integer
  
  ReDim arr(3, 2)
  
  For i = 1 To 3
  
  For j = 1 To 2
  
  arr(i, j) = i * 2 + j
  
  Next j
  
  Next i
  
  ReDim Preserve arr(3, 4)
  
  For j = 3 To 4
  
  arr(3, j) = j + 9
  
  Next j
  
  Print arr(3, 2) + arr(3, 4)
  
  End Sub
  
  程序运行后,单击窗体,输出结果为:
  
  A)21
  
  B)13
  
  C)8
  
  D)25

  31)在窗体上画一个名称为Command1的命令按钮,然后编写如下程序:
  
  Option Base 1
  
  Private Sub Command1_Click()
  
  Dim c As Integer, d As Integer
  
  d = 0
  
  c = 6
  
  x = Array(2, 4, 6, 8, 10, 12)
  
  For i = 1 To 6
  
  If x(i) > c Then
  
  d = d + x(i)
  
  c = x(i)
  
  Else
  
  d = d - c
  
  End If
  
  Next i
  
  Print d
  
  End Sub
  
  程序运行后,如果单击命令按钮,则在窗体上输入的内容为
  
  A)10
  
  B)16
  
  C)12
  
  D)20
  
  (32)设有如下程序:
  
  Private Sub Command1_Click()
  
  Dim c As Integer, d As Integer
  
  c = 4
  
  d = InputBox("请输入一个整数")
  
  Do While d > 0
  
  If d > c Then
  
  c = c + 1
  
  End If
  
  d = InputBox("请输入一个整数")
  
  Loop
  
  Print c + d
  
  End Sub
  
  程序运行后,单击命令按钮如果在输入对话框中依次输入1、2、3、4、5、6、7、8、9、0,则输出结果是:
  
  A)12
  
  B)11
  
  C)10
  
  D)9
  
  (33)在窗体上画一个名称为Command1的命令按钮和一个名称为Text1的文本框,在文本框中输入以下字符串:
  
  Microsoft Visual Basic Programming
  
  然后编写如下事件过程:
  
  Private Sub Command1_Click()
  
  Open "d:\temp\outf.txt" For Output As #1
  
  For i = 1 To Len(Text1.Text)
  
  c = Mid(Text1.Text, i, 1)
  
  If c >= "A" And c <= "Z" Then
  
  Print #1, LCase(c)
  
  End If
  
  Next i
  
  Close
  
  End Sub
  
  程序运行后,单击命令按狃,文件outf.txt中的内容是:
  
  A)MVBP
  
  B)mvbp
  
  C)M
  
  V
  
  B
  
  P
  
  D)m
  
  v
  
  b
  
  p
  
  (34)在窗体上画一个名称为Command1的命令按钮,然后编写如下程序:
  
  Dim SW As Boolean
  
  Function func(X As Integer) As Integer
  
  If X < 20 Then
  
  Y = X
  
  Else
  
  Y = 20 + X
  
  End If
  
  func = Y
  
  End Function
  
  Private Sub Command1_Click()
  
  Dim intNum As Integer
  
  intNum = InputBox("")
  
  If SW Then
  
  Print func(intNum)
  
  End If
  
  End Sub
  
  Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  
  SW = False
  
  End Sub
  
  Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  
  SW = True
  
  End Sub
  
  程序运行后,单击命令按钮,将显示一个输入对话框,如果在对话框中输入25,则程序的执行结果是:
  
  A)输出0
  
  B)输出25
  
  C)输出45
  
  D)无任何输出
  (35) 设有如下通用过程:
  
  Public Sub fun(a() As Integer, x As Integer)
  
  For i = 1 To 5
  
  x = x + a(i)
  
  Next
  
  End Sub
  
  在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写如下事件过程:
  
  Private Sub Command1_Click()
  
  Dim arr(5) As Integer, n As Integer
  
  For i = 1 To 5
  
  arr(i) = i + i
  
  Next
  
  fun arr, n
  
  Text1.Text = Str(n)
  
  End Sub
  
  程序运行后,单击命令按钮,则在文本框中显示的内容是
  
  A)30
  
  B)25
  
  C)20
  
  D)15
  二、填空题(每空2分,共30分)
  
  请将每一个空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。注意:以命令关键字填空的必须拼写完整。
  
  (1) 某二*树中度为2的结点有18个,则该二*树中有 【1】 个叶子结点。
  
  (2) 在面向对象方法中,类的实例称为 【2】 。
  
  (3) 诊断和改正程序中错误的工作通常称为 【3】 。
  
  (4) 在关系数据库中,把数据表示成二维表,每一个二维表称为 【4】 。
  
  (5) 问题处理方案的正确而完整的描述称为 【5】 。
  
  (6)以下语句的输出结果是: 【6】
  
  Print Int(12345.6789*100+0.5)/100
  
  (7)在窗体上画一个文本框和一个图片框,然后编写如下两个事件过程:
  
  Private Sub Form_Click()
  
  Text1.Text = "VB程序设计"
  
  End Sub
  
  Private Sub Text1_Change()
  
  Picture1.Print "VBProgramming"
  
  End Sub
  
  程序运行后,单击窗体,在文本框中显示的内容是【7】,而在图片框中显示的内容是【8】
  
  (8)阅读下面的程序
  
  Private Sub Form_Click()
  
  Dim Check As Boolean, Counter As Integer
  
  Check = True
  
  Counter = 5
  
  Do
  
  Do While Counter < 20
  
  Counter = Counter + 1
  
  If Counter = 10 Then
  
  Check = False
  
  Exit Do
  
  End If
  
  Loop
  
  Loop Until Check = False
  
  Print Counter
  
  End Sub
  
  程序运行后,单击窗体,输出结果是【9】
  
  (9)设有如下程序
  
  Private Sub Form_Click()
  
  Dim a As Integer, s As Integer
  
  n = 8
  
  s = 0
  
  Do
  
  s = s + n
  
  n = n - 1
  
  Loop While n > 0
  
  Print s
  
  End Sub
  
  以上程序的功能是【10】,程序运行后,单击窗体,输出结果为【11】
  
  (10)设有如下程序:
  
  Option Base 1
  
  Private Sub Command1_Click()
  
  Dim arr1
  
  Dim Min As Integer, i As Integer
  
  arr1 = Array(12, 435, 76, -24, 78, 54, 866, 43)
  
  Min = 【12】
  
  For i = 2 To 8
  
  If arr1(i) < Min Then 【13】
  
  Next i
  
  Print "最小值是:"; Min
  
  End Sub
  
  以上程序的功能是用Array函数建立一个含有8个元素的数组,然后查找并输出该数组中的最小值,请填空

  (11)在名称为Form1 的窗体上画一个文本框,其名称为Text1,在属性窗口中把文本框的MultiLine属性设置为True,然后编写如下事件过程:
  
  Private Sub Form_Click()
  
  Open "d:\test\smtext1.txt" For Input As #1
  
  Do While Not 【14】
  
  Line Input #1, aspect$
  
  whole$ = whole$ + aspect$ + Chr(13) + Chr(10)
  
  Loop
  
  Text1.Text = whole$
  
  Close #1
  
  Open "d:\test\smtext2.txt" For Output As #1
  
  Print #1, 【15】
  
  Close #1
  
  End Sub
  
  上述程序的功能是,把磁盘文件smtext1.txt 的内容读到内存并在文本框中显示出来,然后把该文本框中的内容存入磁盘文件smtext2.txt .请填空
  
  ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
  
  以下答案仅供参考
  
  选择题:
  
  1---5  DBDCA
  
  6---10 CBDDC
  
  11--15 ABBCD
  
  16--20 CDABD
  
  21--25 ABCDB
  
  26--30 CDBBA
  
  31--35 CDDDA
  
  填空题:
  
  【1】19
  
  【2】 对象
  
  【3】  程序调试
  
  【4】 关系
  
  【5】 算法
  
  【6】12345.68
  
  【7】VB程序设计
  
  【8】 VB Programming
  
  【9】 10
  
  【10】 求1-8的和
  
  【11】36
  
  【12】 arr1(1)
  
  【13】min=arr1(i)
  
  【14】 EOF(1)
  
  【15】text1.text(或whole$)