江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
2012年3月全国计算机等级考试二级VB笔试试卷

20123月全国计算机等级考试二级笔试试卷

Visual Basic语言程序设计

(考试时间90分钟,满分100分)

 

一、选择题(每小题2分,共70分)

下列各题A)B)C)D)四个选项中,只有一个选项是正确的,请将正确选项涂在答题卡相应位置上,答在试卷上不得分。

 

1 下列叙述正确的是

A) 循环队列是队列的一种链式存储结构

B)循环队列是队列的一种顺序存储结构

C)循环队列是非线性结构

D)循环队列是一种逻辑结构

2)下列叙述正确的是

A) 栈是一种先进先出的线性表

B)队列是一种后进先出的线性表

C)栈和队列都是非线性结构

D)以上三种说法都不对

3)一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为

A16           B10         C6           D4

4)在下列模式中,能够给出数据库物理存储结构与物理存取方法的是

A)外模式

B)内模式

C)概念模式

D)逻辑模式

5)在满足实体完整性约束的条件下

A)一个关系中应该有一个或多个候选关键字

B)一个关系中只能有一个候选关键字

C)一个关系中不许有多个候选关键字

D)一个关系中可以没有候选关键字

6)有三个关系RST如下:   

R                     S                                                    T

A

B

C

a

1

2

b

2

1

c

3

1

A

B

C

b

2

1

c

3

1

A

B

C

a

1

2

d

2

1

 


则由关系RS得到关系T的操作时

A) 自然连接           B)并            C)交             D)差

 

 

 


7)软件生命周期中的活动不包括

A)市场调研

B)需求分析

C)软件测试

D)软件维护

8)下面不属于需求分析阶段任务的是

A)确定软件系统的功能需求

B)确定软件系统的性能需求

C)需求规格说明书评审

D)制定软件集成测试计划

9)在黑盒测试方法中,设计测试用例的主要根据是

A)程序内部逻辑

B)程序外部功能

C)程序数据结构

D)程序流程图

10)在软件设计中不使用的工具是

A)系统结构图

BPAD

C)数据流图(DFD图)

D)程序流程图

11)以下合法的VB变量名是

Acase       Bname10        Ct-name        Dx*y

12)设x是小于10的非负数。对此陈述,以下正确的VB表达式是

A0x<10

B0<=x<10

Cx>=0 and x<10

Dx>=0 or x<=10

13)以下关于窗体的叙述中错误的是

A)窗体的Name属性用于标识一个窗体

B)运行程序时,改变窗体大小,能够触发窗体的Resize事件

C)窗体的Enabled属性为False时,不能响应单击窗体的事件

D)程序运行期间,可以改变Name属性值

14)下面定义窗体级变量a的语句中错误的是

ADim a%

Bprivate a%

CPrivate a As Integer

DStatic a%

15)表达式Int(Rnd(0)*50)所产生的随机数范围是

A 050

B 150

C 049

D 149

 

16)设x=5,执行语句Print  x=x+10,窗体上显示的是

A15      B5        CTrue       DFalse

17)设有如下数组声明语句:

Dim arr-2 to 2,0 to 3AS Integer

该数组所包含的数组元素个数是

A20          B16         C15          D12

18)现有由多个单选按钮构成的控件数组,用于区别该控件数组中各控件的属性是

AName

BIndex

CCaption

DValue

19)设有分段函数:

        5                              x<0

Y=

   x*2                         0x5

        x*x+1                      x>5

以下表示上述分段函数的语句序列中错误的是

ASelect Case x                                           BIf 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

Cy=iif(x<0,5iif(x<=5.2*xx*x+1) DIf 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(“输入”,“数据”,100)

Print X

运行程序,执行上述语句,输入5并单击输入对话框上的取消按钮,则窗体上输出

A0    B5    C100      D)空白

 

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命令按钮,执行上述事件过程,输出结果是

A9753      B3579    C35    D79

 

22)设有一个命令按钮Commsand1的事件过程以及一个函数过程。程序如下:

Private Sub Command1_Click(0

Static x As Integer

x=f(x+5)

Cls

Print x

End Sub

Private Funtion f(x As integer)As Integer

F=x+x

End Funtion

连续单击命令按钮3次,第3次单击命令按钮后,窗体上显示的计算结果是

A10    B30    C60    D70

 

23)以下关于菜单设计的叙述中错误的是

A)各菜单项可以构成控件数组

B)每个菜单项可以看成是一个控件

C)设计菜单时,菜单项的“有效” 未选,即□有效(E)’,表示该菜单项不显示

D)菜单项只响应单击事件

 

24)以下关于多窗体的叙述中,正确的是

A)任何时刻,只有一个当前窗体

B)向一个工程添加多个窗体,存盘后生成一个窗体文件

C)打开一个窗体时,其他窗体自动关闭

D)只有第一个建立的窗体才是启动窗体

25)窗体上有一个名称为CommonDialog1的通用对话框,一个名称为Command1的命令按钮,并有如下事件过程:

Private Sub Command1_Click()

CommandDialog1.DefaultExt=”doc”

CommandDialog1.FileName=”VB.txt”

CommandDialog1.Filter=”All(*.*)|*.*|Word|*.Doc|”

CommandDialog1.FilterIndex=1

CommandDialog1.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)若要获得组合框中输入的数据,可使用的属性是

AListindex

BCaption

CText

DList

 

28)在窗体上画两个名称分别为Text1Text2的文本框。Text1Text属性为“Database”,

如图所示。

现有如下事件过程:     

Private Sub Text1_Change()

Text2.Text=Mid(Text1,1,5)

End Sub

运行程序,在文本框Text1中原有字符之前输入aText2中显示的是:

A)  DataA

B)  DataB

C)  aData

D)  aBase

 

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=Sun+a

End If

Next a

End Sub

运行上述程序时出现错误,错误之处是

A)  数组定义语句不对,应改为Dim arr

B)  没有指明For循环的终值

C)  应在For语句之前增加Sum=0

D)  Next  a应改为Next

30)要求产生10个随机整数,存放在数组arr中,从键盘输入要删除的数组元素的下标,将该元素中的数组删除,后面元素中的数据依次前移,并显示删除后剩余的数据,现有如下程序:

Option Base 1

Private Sub Command1_Click()

Dim arr(10) AS Integer

For i=1 to 10

arr(i)=int (Rnd*100)

Print arr(i);

Next

x=inputbox(“输入110的一个整数:”)

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

程序运行后发现显示的结果不正确,应该进行的修改是

A)  产生随机数时不使用Int函数

B)  循环2的初始值应为i=x

C)  数组定义改为Dim a(11) as integer

D)  循环3是循环终值应改为9

31)使用驱动器列表框Drive1、目录列表框、文件列表框Fiel1时,需要设置控件的同步,以下能够正确设置两个控件同步的命令是

ADir1.path=Drive.path

BFile1.path=Dir1.path

CFile1.path=Drive1.path

DDrive1.Drive=Dir1.path

 

 

32 以下关于弹出式菜单的叙述中,错误的是

A)一个窗体只能有一个弹出式菜单

B)弹出式菜单在菜单编辑器中建立

C)弹出式菜单的菜单名(主菜单项)的“可见”属性通常设置为False

D)弹出式菜单通过窗体的PopupMenu方法显示

33)有如下程序:

Private Type stu

X As String

Y As Integer

End Type

Private Sub Command1_Click()

Dim a As stu

a.x=”ABCD”

a.y=12345

Print a

End Sub\

程序运行时出现错误,错误的原因是

A)  Type定义语句没有放在标准模块中

B)  变量声明语句有错

C)  赋值语句不对

D)  输出语句Print不对

34)在窗体上画两个名称分别为Text1Text2的文本框,一个名称为Lable1的标签。窗体外观如图a所示。要求当改变任一个文本框的内容,就会将该文本框的内容显示在标签中,如图b所示。实现上述功能如下:

Pivate Sub Text1_Change()

Call ShowText(Text1)

End Sub

Private Sub Text2 Change()

Call ShowText(Text2)

End Sub

         private Sub showText(T As TextBox)

Label1.Caption=”文本框中的内容是:”&T.Text

Enb Sub

关于上述程序,以下叙述中错误的是

A)  ShowText过程的参数类型可以是Control

B)  ShowText过程的参数类型可以是Variant

C)  两个过程调用语句有错,应分别改为Call ShowTextText1.Text)、CallShowTextText2.Text

D)  ShowText过程中的T是控件变量

35)设有打开文件的语句如下:

Opentest.dat” For Random As #1

要求把变量a中的数据保存到该文件中,应该使用的语句是

A)  Input #1,a

B)  Write #1,a

C)  Put #1,a

D)  Get #1,a

 

二、填空题(每空2分,共30分)

 

请将每空的正确答案写在答题卡【1~15】序号的横线上,答在试卷上不得分。

 

1 在长度为n的顺序存储的线性表中删除一个元素,最坏情况下需要移动表中的元素个数为   1   

 


2)设循环队列的存储空间为Q130),初始状态为Front=rear=30.现经过一系列入队与退队运算后,front=16rear=15,则循环队列中有   2   个元素。

 


3)数据库管理系统提供的数据语言中,负责数据的增、删、改和查询的是   3  

 

4)在将E-R图转换到关系模式时,实体和联系都可以表示成    4  

 

5)常见的软件工程方法有结构化方法和面向对象方法,类、继承以及多态性等概念属于   5  

 

6)下面的事件过程执行时,可以把Text1文本框中的内容写到文件“file1.txt“中去。请填空。

Pivate Sub Command1_Click()

Open “file1.txt”For     6   As#1

print    7   ,Text1.Text

Close #1

End Sub

 

7)设窗体上有一个名称为Lable1的标签。程序运行时,单击鼠标左键,再移动鼠标,鼠标的位置坐标会实时地显示在Lable1标签中:单击鼠标右键则停止实时显示,并将标签中内容清除。下面的程序可实现这一功能,请填空。

Dim Down As Boolean

Private Sub Form _MouseDown(Button As IntegerShift  As Integerx As SingleY As Single)

Select Case   8  

Case 1

Down=True

Case 2

Down=False

End Select

End Sub

Private Sub Form _MouseMove(Button As IntegerShift  As IntegerX As SingleY As Single)

If   9  

   10   =”X=”& X &”  Y=”& Y

Else

Label1.Caption=””

End if

Sub

 

8)窗体上有List1List2两个列表框,程序运行时,在两个列表框中分别选中1个项目,如图a所示,单击名称为Command1的“交换”按钮,则把选中的项目互换,互换后的位置不限,如图b所示。下面的程序可实现这一功能,请填空。

Private Sub Command1_Click()

If List1.Text=”” or List2.Text=”” Then

MsgBox”请选择交换的物品!

Else

List1.AddItem List2.Text

List2.RemoveItem    11  

           12  

List1.RemoveItem List1.ListIndex

End If

End Sub

 

9)设窗体上有Text1文本框和Command命令按钮,并有以下程序:

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  

End if

Next k

Text1=   14  

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  

Exit Function

End If

Next k

Found=False

End Function

运行时,在文本框中输入若干英文字母,然后单击命令按钮,则可以删去文本框中所有重复的字母。例如,若文本框中原有字符串为“abcddbbc”,则单击命令按钮后文本框中字符串为“abcd“。其中函数found的功能是判断字符串str中是否有字符ch,若有,函数返回True,否则返回False。请填空。

 

 

1 A

  解析:循环队列是一种顺序存储的线性结构,所以,循环队列是队列中的一种链式存储结构,”“循环队列是非线性结构循环队列是一种逻辑结构的说法都是错误的。

  2 D

  解析:栈和队列都是线性结构,并且栈是后进先出,队列是先进先出,所以三种说法都不对。

  3 A

  解析:根据公式n0=n2+1,叶子节点个数为5,则度为2的结点书为4,那么度为1的结点数n1=n-n0-n2=25-4-5=16.

  4 B

  解析:数据库系统在气内部都具有三级模式:概念模式、内部模式与外部模式。其中,内模式(又称物理模式)给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径,内模式的物理特性主要体现在操作系统及文件级上,它还为深入到设备及上。概念模式是数据库系统中全局数据逻辑结构的描述。是全体用户(应用)go公共数据师徒,主要描述数据的概念记录类型一级他们之间的广西,它还包括一些数据间的语意约束。外模式(子模式货用户模式)是用户的数据师徒,也就是用户缩减到的数据模式,它由概念模式推到而出的,在一般的DBMS中都提供相关的外模式描述语言(外模式DDL)

  5A

  解析:在关系R中如记录完全函数依赖与属性()X,则称X为关系R中的一个候选关键字,候选关键字的性质有:(1)、在一个关系中,候选关键字可以有多个;(2)、任何两条记录候选关键字的都是不相同的;(3)、关键字可能由一个属性构成,也可能由多个属性构成;(4)、在任何关系中至少有一个关键字,所以,在满足实体完整性约束的条件下,一个关系中应该有一个或多个候选关键字。

  6 D

  解析:自然连接是二元运算,其结果是得到两个关系中公共属性名字上相等的所有元组组合;并是指在两个关系的元素全部合并到一个新的关系中,交是指将那些同时属于两个关系的元素组成一个新的关系;差是指将属于前一个集合但不属于后一个集合的元素组成新的关系。由途中可以看出,关系T是由属于R但不属于S的元组组成的集合,所以答案为差。

  7 A

  解析:软件生命周期可以划分为六个阶段:问题的定义及规划、需求分析、软件设计、编码、软件测试、运行维护,所以,软件声明周期中的活动不包括市场调研。

  8 D

  解析:需求分析的基本任务是:(1)问题识别:双方确定对问题的综合需求,这些需求包括功能需求,性能需求,环境需求,用户界面需求(2)分析与综合,导出软件的逻辑模型。(3)、包括编写需求管个说明书,编写初步用户使用手册,确定测试计划,修改完成软件开发计划,制定软件集成是测试计划属于概要设计。

  9 B

  解析:通常,软件的测试方法包括白盒裁缝师与黑盒测试。白盒测试也称结构测试货逻辑驱动测试,他是安装程序内部的结构测试程序,黑盒测试也称功能测试,他是通过测试检查每个功能是否正常使用。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,把程序看作一个不能打开的黑盒子,主要针对软件界面和软件功能进行测试。

  10 C

  解析:软件设计包括概要设计和详细设计,软件概要设计中,面向数据流的设计方法有变换型系统结构图和事物型数据流两种,软件详细设计,程序流程图(Pdf)Pda(问题分析图)是过程设计的常用工具。数据流图必须完成的逻辑功能,所以他是一种功能模型,是可行性研究阶段用到的。

  (11)【答案】B

  【解析】变量必须是由字母、汉字、数字、下划线组成的字符串,且第一个字符必须是英文字母或者汉字,最后一个字符可以是类型说明符;

  变量名不能包含+ - * / !@ # ?小数点等字符,且长度不能超过255;

  不能用Visual Basic的保留字(例如EndLenSub)作为变量名,但可以把保留字嵌入到变量名中,同时变量名也不能是末尾带有说明符的保留字;

  Visual Basic不区分变量名和其他名字中字母的大小写,但习惯上,符号常量一般用大写字母定义。

  故本题选B

  (12)【答案】C)

  【解析】非负数即大于等于0的数,由题意可知x是小于10并且大于等于0,所以用And表示,因此C)项是正确的。

  (13)【答案】D)

  【解析】在程序运行过程中,Name属性是一个窗体唯一的标识,若改变其Name属性值,则程序中原有代码对该窗体的引用就全部不能实现了,造成程序运行错误,因此D)项说法是错误的,为本题正确选项。

  (14)【答案】D)

  【解析】static关键字用于定义静态局部变量,不可以用于定义窗体模块级变量。

  (15)【答案】C)

  【解析】Rnd()函数产生的随机数范围为[0,1),乘以50以后为[0,50),包括0,不包括50,也就是从049。因此C)项是正确的。

  (16)【答案】D)

  【解析】x=x+10在此处为判断关系,xx+10不等,结果为False。除了单独的语句执行之外,出现在Ifwhileprint后面的“=”应该作为比较运算符。

  (17)【答案】A)

  【解析】-2 to 2-2-10125个数据,0 to 301234个数据,5*4=20,因此一共有20个数组元素。因此A)项是正确的。

  (18)【答案】B)

  【解析】index属性为区分控件数组元素的索引值,从0开始。因此B)项是正确的。

  (19)【答案】A)

  【解析】A)项中第二个case子句中is<=5,is>0x=0的情况给丢掉了,因此A)项是正确答案。

  (20)【答案】D

  【解析】x无初始值,当点击取消按钮后,输入的5并没有赋给x,窗体上没有输出

  (21)【答案】B)

  【解析】option base 1表示数组下标从1开始,则a数组元素a(1)=3, a(2)=5, a(3)=7, a(4)=9。第一次循环:x=1,s=0+a(4)*1=9, 第二次循环:x=10,s=9+a(3)*10=79, 第三次循环:x=100,s=79+a(2)*100=579, 第四次循环:x=1000,s=579+a(1)*1000=3579, 因此B)项是正确答案。

  (22)【答案】D)

  【解析】第一次单击:x为静态变量,初值为0,传给f函数的是5,返回值为5+5,则x的值为10. 第二次单击:x为静态变量,值为10,传给f函数的是15,返回值为15+15,则x的值为30. 第三次单击:x为静态变量,值为30,传给f函数的是35,返回值为35+35,则x的值为70. 因此D)项是正确答案。

  (23)【答案】C)

  【解析】当菜单项设置为无效时,表示菜单项可见但是不可用。因此C)项是正确答案。

  (24)【答案】A

  【解析】B多窗体工程中,每个窗体都是单独保存的。C,当打开一个窗体时,其他窗体只是处于不活动状态,并没有关闭。D,启动窗体是由程序设计指定的,并不是只有第一个窗体可以作为启动窗体。

  (25)【答案】A)

  【解析】filterindex属性为1,即默认显示的保存类型为filter属性设置的值的第一个,因此A)项是正确答案。

  (26)【答案】B)

  【解析】形式参数为数组时,表达示为sub name( array() as integer[string......]),并不需要指明元素个数,但小括号不能省略。因此B)项是正确答案。

  (27)【答案】C)

  【解析】组合框是文本框与列表框的简单组合,因此要看输入的数据,就是看文本框的内容,这存放在text属性中。因此C)项是正确答案。

  (28)【答案】C

  【解析】MID(string S,int A,int B)从字符串S中的第A个开取字符,一共取B个字符。当text1的发生变化时text1text值为aDataBase,所以MID(text1,1,5)的值为aData

  (29)【答案】A)

  【解析】利用Array()函数对数组各元素赋值,声明的数组必须是可变数组或连圆括号都可省的数组,并且其类型只能是Variant。因此dim arr()时,括号中不能有数字。因此A)项是正确答案。

  (30)【答案】D)

  【解析】删除一个数据后,数组中实际有效的值只剩下九个,因此最后输出的时候就只能输出前九个,最后一个数据是重复的,不能要,因此循环3应该把终值改为9. 因此D)项是正确答案。

  (31)【答案】B)

  【解析】注意三个控件之间的关系,当Drive1发生改变的时候,Dir1要发生改变,当Dir1发生变化的时候,File1要发生变化,因此要用前者的路径属性赋值给后者的路径属性,而不能颠倒。当然也不能越级。因此B)项是正确答案。

  (32)【答案】A)

  【解析】一个窗体的任意一个控件均可以弹出不同的弹出式菜单,并不是只有一个。因此A)项说法是错误的,是正确答案。

  (34)【答案】C)

  【解析】ShowText函数的两个参数为文本框类型,因此实参应给为对象而不是对象的某个属性值。文本框也是控件,可以用Control类型,可变类型也可以接受文本框类型的对象。因此C)项是正确答案。

  (35)【答案】C)

  【解析】随机文件的读写分别使用GetPut,因此本题正确答案为C)项。

  二、填空题

  (1)【答案】【1n-1

  【解析】在顺序表中删除一个元素,最坏情况是删除第一个元素,后面的(n-1)个元素均要向前移动,所以此处填n-1

  (2)【答案】【229

  【解析】通过题干的描述可知此循环队列共30个空间,另外队尾指针rear的值小于队头指针front的值,所以利用公式(rear-front+30)%30=29,可知此循环队列的元素个数为29

  (3)【答案】【3】数据操纵语言

  【解析】数据操纵语言DML(Data Manipulation Language),用户通过它可以实现对数据库的基本操作。例如,对表中数据的查询、插入、删除和修改。 DML中,应用程序可以对数据库作插、删、改、排、检等五种操作。

  (4)【答案】【4】关系

  【解析】关系数据库逻辑设计的主要工作是将E-R图转换成指定RDBMS中的关系模式,这种转换是比较直接的,实体与联系都可以表示成关系。

  (5)【答案】【5】面向对象方法

  【解析】面向对象方法是一种基于对象模型的程序设计方法,包括面向对象分析、面向对象设计、面向对象编程,是目前应用范围最广的设计方法。其中对象模型包括六个要素:封装、抽象、模块化、层次结构、类、并发性。面向对象方法的主要特征是封装、继承和多态性,所以此空应填面向对象方法。

  (6)【答案】output

  【解析】应该是以写的方式打开文本文件,因此用output

  (7)【答案】#1

  【解析】向文件中写入数据,要确定是哪个文件,因此用文件号来确定文件。

  (8)【答案】Button

  【解析】Button参数中存储的是按下的是左键还是右键,这个程序向判断按下的那个键然后存储到变量down中,因此要使用这个参数Button

  (9)【答案】down

  【解析】全局变量,用来判断点击过鼠标左键或者右键。点击过鼠标左键,down=true,点击过鼠标右键,down = false

  (10)【答案】Label1.Caption

  【解析】内容要显示在标签中,因此用Label1.Caption来接受内容。

  (11)【答案】List2.ListIndex

  【解析】List2.ListIndex是列表框2中选中项的内容,它已经被添加到列表框1中,因此要从列表框2中移除。

  (12)【答案】List2.AddItem List1.Text

  【解析】这个语句是向列表框2中添加列表框1中选中项的内容。

  (13)【答案】ch

  【解析】ch中存放的是从文本框中取出的一个字符,如果它还没有出现在temp中,则将它连接在temp的后面。

  (14)【答案】temp

  【解析】temp中存放了所有不重复的字符,是我们所需要的内容,因此最后将它显示在文本框中。

  (15)【答案】True

  【解析】found函数是判断某个字符是否在某个字符串中,如果是则返回True,如果不是则返回False