2012年3月word全国计算机等级考试二级VB笔试试卷及参考答案 - 图文 下载本文

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