2012年 3月全国计算机等级考试二级笔试试卷
Visual Basic语言程序设计 (考试时间90 分钟,满分100分)
一、选择题(每小题2分,共70分)
下列各题A) 、B) 、C) 、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。 (1)下列叙述中正确的是( ) 。 A)循环队列是队列的一种链式存储结构 B)循环队列是队列的一种顺序存储结构 C)循环队列是非线性结构
D)循环队列是一种逻辑结构
(2)下列叙述中正确的是
A)栈是一种先进先出的线性表 B)队列是一种后进先出的线性表 C)栈与队列都是非线性结构
D)以上三种说法都不对
(3)一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为 A)16
B)10
C)6
D)4
(4)在下列模式中,能够给出数据库物理存储结构与物理存取方法的是
A)外模式
B)内模式
C)概念模式
D)逻辑模式
(5)在满足实体完整性约束的条件下
A)一个关系中应该有一个或多个候选关键字 B)一个关系中只能有一个候选关键字 C)一个关系中必须有多个候选关键字 D)一个关系中可以没有候选关键字
(6)有三个关系R、S和T如下:
R
S
T A B C A B C A B C a 1 2 a 1 2 b 2 1 b 2 1 d 2 1 c 3 1 c 3 1 则由关系R和S得到关系T的操作是
A)自然连接
B)并
C)交
D)差
(7)软件生命周期中的活动不包括 A)市场调研
B)需求分析
C)软件测试
D)软件维护
1
(8)下面不属于需求分析阶段任务的是 A)确定软件系统的功能需求 B)确定软件系统的性能需求 C)需求规格说明书评审
D)制定软件集成测试计划
(9)在黑盒测试方法中,设计测试用例的主要根据是 A)程序内部逻辑 B)程序外部功能 C)程序数据结构
D)程序流程图
(10)在软件设计中不使用的工具是
A)系统结构图
B)PAD图
C)数据流图(DFD图)
D)程序流程图
(11)以下合法的VB变量名是
A)case
B)name10
C)t-name
D)x*y
(12)设x是小于10的非负数。对此叙述,以下正确的VB表达式是 A)0≤x<10
B)0<=x<10
C) x≥0 And x<10
D)x>=0 Or x<=10
(13 以下关于窗体的叙述中,错误的是 A)窗体的Name属性用于标识一个窗体
B)运行程序时,改变窗体大小,能够触发窗体的Resize事件 C)窗体的Enabled属性为False时,不能响应单击窗体的事件 D)程序运行期间,可以改变Name属性值
(14)下面定义窗体级变量a的语句中错误的是 A)Dim a%
B)Private a%
C)Private a As Integer
D)Static a%
(15)表达式Int(Rnd(0)*50)所产生的随机数范围是 A)(0,50)
B)(1,50)
C)(0,49)
D)(1,49)
(16)设x=5,执行语句Print x = x + 10,窗体上显示的是
A)15
B)5
C)True
D)False
2
(17)设有如下数组声明语句:
Dim arr(-2 To 2, 0 To 3) As Integer 该数组所包含的数组元素个数是 A) 20
B) 16
C) 15
D) 12
(18)现有由多个单选按钮构成的控件数组,用于区别该控件数组中各控件的属性是
A)Name
B)Index
C)Caption
D)Value
(19)设有分段函数:
5 x<0 y = x*2 0≤x≤5 x*x+1 x>5
以下表示上述分段函数的语句序列中错误的是
A) Select Case x B) If x < 0 Then Case Is < 0 y = 5 y = 5
ElseIf x <= 5 Then
Case Is <= 5, Is > 0 y = 2 * x
y = 2 * x Else Case Else
y = x * x + 1 y = x * x + 1
End If
End Select
C) y = IIf(x < 0, 5, IIf(x <= 5, 2 * x, x * x + 1)) D) If x < 0 Then y = 5 If x <= 5 And x >= 0 Then y = 2 * x
If x > 5 Then y = x * x + 1
(20)设程序中有如下语句:
x = InputBox(\输入\数据\
Print x
运行程序,执行上述语句,输入5并单击输入对话框上的“取消”按钮,则窗体上输出 A)0
B)5
C)100
D)空白
3
(21)现有如下一段程序:
Option Base 1
Private Sub Command1_Click() Dim a
a = Array(3, 5, 7, 9) x = 1
For i = 4 To 1 Step -1 s = s + a(i) * x x = x * 10 Next Print s End Sub
执行程序,单击Command1命令按钮,执行上述事件过程,输出结果是 A)9753
B)3579
C)35
D)79
(22)设有一个命令按钮Command1的事件过程以及一个函数过程,程序如下: Option Base 1
Private Sub Command1_Click() Static x As Integer x = f(x + 5) Cls Print x End Sub
Private Function f(x As Integer) As Integer f = x + x End Function
连续单击命令按钮3次,第3次单击命令按钮后,窗体上显示的计算结果是 A)10
B)30
C)60
D)70
(23)以下关于菜单设计的叙述中错误的是
A)各菜单项可以构成控件数组 B)每个菜单项可以看成是一个控件 C)设计菜单时,菜单项的“有效”未选,即,表示该菜单项不显示
D)菜单项只响应单击事件
(24)以下关于多窗体的叙述中,正确的是
A)任何时刻,只有一个当前窗体
B)向一个工程添加多个窗体,存盘后生成一个窗体文件 C)打开一个窗体时,其他窗体自动关闭
4
D)只有第一个建立的窗体才是启动窗体
(25)窗体上有一个名称为CommonDialog1的通用对话框,一个名称为Command1的命令按钮,并有如下事件过程:
Private Sub Command1_Click() CommonDialog1.DefaultExt=\ CommonDialog1.FileName=\
CommonDialog1.Filter = \ CommonDialog1.FilterIndex = 1 CommonDialog1.ShowSave End Sub
运行上述程序,如下叙述中正确的是
A)打开的对话框中文件“保存类型”框中显示“All(*.*)” B)实现保存文件的操作,文件名是VB.txt
C)DefaultExt属性FileName属性所指明的文件类型不一致,程序出错 D)对话框的Filter属性没有指出txt类型,程序运行出错
(26)设程序中有如下数组定义和过程调用语句:
Dim a(10) As Integer ...... Call p(a)
如下过程定义中,正确的是 A)Private Sub p(a As Integer)
B)Private Sub p(a( ) As Integer) C)Private Sub p(a(10) As Integer)
D)Private Sub p(a(n) As Integer)
(27)若要获得组合框中输入的数据,可使用的属性是 A)ListIndex
B)Caption
C)Text
D)List
(28) 在窗体上画两个名称分别为Text1、Text2的文本框,Text1的属性为“DataBase”,如图所示。
现有如下事件过程: Private Sub Text1_Change() Text2.Text = Mid(Text1, 1, 5) End Sub
运行程序,在文本框Text1中原有字符之前输入a,Text2中显示的是
A)DataA
B)DataB
C)aData
D)aBase
5
(29)有如下程序:
Option Base 1
Private Sub Command1_Click() Dim arr(10)
arr = Array(10, 35, 28, 90, 54, 68, 72, 90) For Each a In arr If a > 50 Then Sum = Sum + a End If Next a End Sub
运行上述程序时出现错误,错误之处是
(30)要求产生10个随机整数,存放在数组arr中。从键盘输入要删除的数组元素的下标,将该元素中的数据删除,后面元素中的数据依次前移,并显示删除后剩余的数据。现有如下程序:
Option Base 1
Private Sub Command1_Click() Dim arr(10) As Integer For i = 1 To 10 '循环1 arr(i) = Int(Rnd * 100) Print arr(i); Next Print
X = InputBox(\输入1-10的一个整数:\ For i = X + 1 To 10 '循环2 arr(i - 1) = arr(i) Next
For i = 1 To 10 '循环3 Print arr(i); Next End Sub
(31)使用驱动器列表框Drive1、目录列表框Dir1、文件列表框File1时,需要设置控件的同步,以下能够正确设置两个控件同步的命令是
A)Dir1.Path = Drive1.Path C)File1.Path = Drive1.Path
B)File1.Path = Dir1.Path D)Drive1.Drive = Dir1.Path
程序运行后发现显示的结果不正确。应该进行的修改是 A)产生随机数时不使用Int函数
B)循环2的初值应为i = x
C)数组定义改为Dim a(11) As Integer
D)循环3的循环终值应改为9
A)数组定义语句不对,应改为Dim arr C)应在For语句之前增加Sum = 0
B)没有指明For循环的终值 D)Next a应改为Next
6
(32)以下关于弹出式菜单的叙述中,错误的是
A)一个窗体只能有一个弹出式菜单
(33)有如下程序:
Private Type stu X As String Y As Integer End Type
Private Sub Command1_Click() Dim a As stu a.X = \ a.Y = 12345 Print a End Sub
(34)在窗体上画两个名称分别为Text1、Text2的文本框,一个名称为Label1的标签,窗体外观如图a所示。要求当改变任一个文本框的内容,就会将该文本框的内容显示在标签中,如图b所示。实现上述功能的程序如下:
程序运行时出现错误。错误的原因是 A)Type定义语句没有放在标准模块中 C)赋值语句不对
B)变量声明语句有错
D)输出语句Print不对
B)弹出式菜单在菜单编辑器中建立
C)弹出式菜单的菜单名(主菜单项)的“可见”属性通常设置为False D)弹出式菜单通过窗体的PopupMenu方法显示
图a 图b
Private Sub Text1_Change() End Sub
Private Sub Text2_Change() Call ShowText(Text2) End Sub
Private Sub ShowText(T As TextBox)
Label1.Caption = \文本框中的内容是:\ Call ShowText(Text1)
7
End Sub
关于上述程序,以下叙述中错误的是
(35)设有打开文件的语句如下:
Open \
要求把变量a中的数据保存到该文件中,应该使用的语句是
二、填空题(每空2分,共30 分)
请将每空的正确答案写在答题卡【l】至【15】序号的横线上,答在试卷上不得分。 A)Input #1, a C)Put #1,, a
B)Write #1, a
D)Get #1,, a
A)ShowText过程的参数类型可以是Control B)ShowText过程的参数类型可以是Variant
C)两个过程调用语句有错,应分别改为Call ShowText(Text1.Text)、Call ShowText(Text2.Text) D)ShowText过程中的T是控件变量
(1)在长度为n的顺序存储的线性表中删除一个元素,最坏情况下需要移动表中的元素个数为
【1】 n-1 。
(2)设循环队列的存储空间为Q(1:30),初始状态为front=rear=30,现经过一系列入队与退队运算后,front=16,rear=15,
则循环队列中有 【2】29 个元素。
(3)数据库管理系统提供的数据语言中,负责数据的增、删、改和查询的是 【3】 。 (4)在将E-R图转换到关系模式时,实体和联系都可以表示成 【4】 。
(5)常见的软件工程方法有结构化方法和面向对象方法,类、继承以及多态性等概念属于
【5】 。
(6)下面的事件过程执行时,可以把Text1文本框中的内容写到文件“file1.txt”中去。请填空。
Private Sub Command1_Click()
Open \ 【6】 As #1 Print 【7】 , Text1.Text Close #1 End Sub
(7)设窗体上有一个名称为Label1的标签,程序运行时,单击鼠标左键,再移动鼠标,鼠标的位置坐标会实时地显
8
示在Label1标签中;单击鼠标右键则停止实时显示,并将标签中内容清除。下面的程序可实现这一功能,请填空。
Dim down As Boolean
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Select Case Button Case 1
down = True Case 2
down = False End Select End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If down = True 或down Then
Label1.Caption 或 Label1 = \ Y=\
Else
Label1.Caption = \ End If End Sub
(8)窗体上有List1、List2两个列表框,程序运行时,在两个列表框中分别选中1个项目,如图a所示,单击名称为Command1的“交换”按钮,则把选中的项目互换,互换后的位置不限,如图b所示。下面的程序可实现这一功能,请填空。
图a 交换前 图b 交换后
Private Sub Command1_Click()
If List1.Text = \
9
MsgBox \请选择交换的物品!\ Else
List1.AddItem List2.Text
List2.RemoveItem 【11】 List2.ListIndex 【12】List2.AddItem List1.Text List1.RemoveItem List1.ListIndex End If End Sub
表框1中被选中的列表项删除。
9)设窗体上有Text1文本框和Command1命令按钮,并有以下程序:Private Sub Command1_Click() temp$ = \
For k = 1 To Len(Text1) ch$ = Mid(Text1, k, 1) If Not found(temp, ch) Then
temp = temp & 【13】ch End If Next k
Text1 = 【14】temp End Sub
Private Function found(str As String, ch As String) As Boolean For k = 1 To Len(str)
If ch = Mid(str, k, 1) Then
found = 【15】 True Exit Function End If Next k found = False End Function
10
(
11
12
13
14