计算机等级考试二级VB笔试.docx

上传人:b****4 文档编号:3736299 上传时间:2022-11-25 格式:DOCX 页数:22 大小:112.66KB
下载 相关 举报
计算机等级考试二级VB笔试.docx_第1页
第1页 / 共22页
计算机等级考试二级VB笔试.docx_第2页
第2页 / 共22页
计算机等级考试二级VB笔试.docx_第3页
第3页 / 共22页
计算机等级考试二级VB笔试.docx_第4页
第4页 / 共22页
计算机等级考试二级VB笔试.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

计算机等级考试二级VB笔试.docx

《计算机等级考试二级VB笔试.docx》由会员分享,可在线阅读,更多相关《计算机等级考试二级VB笔试.docx(22页珍藏版)》请在冰豆网上搜索。

计算机等级考试二级VB笔试.docx

计算机等级考试二级VB笔试

2012年3月全国计算机等级考试二级笔试试卷

VisualBasic语言程序设计

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

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

下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。

请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。

(1)下列叙述中正确的是()。

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

C)循环队列是非线性结构D)循环队列是一种逻辑结构

 

(2)下列叙述中正确的是

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

C)栈与队列都是非线性结构D)以上三种说法都不对

【解析】栈是一种后进先出(LastInFirstOut)或先进后出(FirstInLastOut)的线性表,它的一端封闭(称为栈底),在另一端进行插入和删除操作,允许插入和删除的一端称为栈顶。

队列(queue)是指允许在一端进行插入、而在另一端进行删除的线性表。

允许插入的一端称为队尾,通常用一个称为尾指针(rear)的指针指向队尾元素,即尾指针总是指向最后被插入的元素;允许删除的一端称为排头(也称为队头),通常也用一个排头指针(front)指向排头元素的前一个位置。

显然,在队列这种数据结构中,最先插入的元素将最先能够被删除,最后插入的元素最后才能被删除。

因此,队列又称为“先进先出”(FirstInFirstOut,FIFO)或“后进后出”(LastInLastOut,LILO)的线性表,它体现了“先来先服务”的原则。

栈与队列都是线性结构。

答案:

D

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

A)16B)10C)6D)4

【解析】设二叉树结点数为n,度为2的结点数为n2,度为1的结点数为n1,度为0(即叶子结点)的结点数为n0。

则有n=n2+n1+n0。

另外,在二叉树中,度为0的结点数是度为2的结点数加1,因此有n0=n2+1。

此题中,n=25,n0=5,则n2=n0-1=5-1=4,因此n1=n-n2-n0=25-4-5=16。

答案:

A

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

A)外模式B)内模式C)概念模式D)逻辑模式

答案:

B

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

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

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

C)一个关系中必须有多个候选关键字

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

答案:

A

(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)软件维护

【解析】通常,将软件产品从提出、实现、使用、维护到停止使用甚至退役的过程称为软件生命周期。

任何一个软件产品或软件系统都要经历软件定义、软件开发、软件维护直至被淘汰这样一个全过程。

因此,软件生命周期可分为定义阶段、开发阶段和维护阶段。

定义阶段包括可行性研究和需求分析;开发阶段包括概要设计、详细设计、实现和测试;维护阶段包括使用、维护和退役。

因此软件生命周期—般包括可行性研究和需求分析、设计、实现、测试、交付使用以及维护等活动。

答案:

A

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

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

C)需求规格说明书评审D)制定软件集成测试计划

【解析】需求分析阶段的任务是确定待开发软件的功能、性能、数据、界面等要求,从而确定系统的逻辑模型。

需求分析阶段的主要工作包括:

①需求获取:

确定对目标系统的各方面需求;②需求分析:

对获取的需求进行分析和综合,最终给出系统的解决方案和目标系统的逻辑模型;③编写需求规格说明书:

为用户、分析人员和设计人员之间进行交流提供方便。

④需求评审:

对需求分析阶段的工作进行复审,验证需求文档的一致性、可靠性、完善性和有效性。

软件测试属于软件生命周期中的软件开发阶段,不属于需求分析阶段。

软件测试过程一般按4个步骤进行,即单元测试、集成测试、验收测试和系统测试。

答案:

D

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

A)程序内部逻辑B)程序外部功能

C)程序数据结构D)程序流程图

【解析】黑盒测试也称为功能测试或数据驱动测试。

黑盒测试是对软件已试验的功能是否满足需求进行测试和验证,它主要根据需求规格说明所规定的功能来设计测试用例,检查程序的功能是否符合它的功能说明,它不考虑程序的内部结构和处理过程。

答案:

B

 

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

A)系统结构图B)PAD图

C)数据流图(DFD图)D)程序流程图

【解析】软件设计一般分为两步完成,分别是概要设计和详细设计。

系统结构图是概要设计阶段使用的工具,而详细设计(过程设计)常见的工具有:

(1)图形工具:

程序流程图、N-S图(盒图)、PAD(ProblemAnalysisDiagram,问题分析图)

(2)表格工具:

判定表。

(3)语言工具:

PDL(过程设计语言)。

数据流图(DataFlowDiagram,DFD)是需求分析阶段结构化分析的常用工具。

需求分析阶段其他常用的结构化分析工具还有数据字典(DataDictionary,DD)、结构化语言、判定表和判定树等。

答案:

C

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

A)caseB)name10C)t-nameD)x*y

答案:

B

【解析】变量命名规则:

(1)字母、数字、下划线。

(2)不能使用保留字。

(3)不能以数字开头。

本题中,case是保留字,t-name中是中划线,不是下划线。

x*y中的*不是字母、也不是数字、也不是下划线。

(12)设x是小于10的非负数。

对此叙述,以下正确的VB表达式是

A)0≤x<10B)0<=x<10

C)x≥0Andx<10D)x>=0Orx<=10

答案:

C

【解析】x是小于10的非负数。

即x大于等于0并且小于10。

A选项和B选项是数学的描述方式,不是VB的描述方式。

“x大于等于0并且小于10”中的“并且”要使用And而不是Or(或者)。

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

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

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

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

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

答案:

D

【解析】Name属性只能在设计阶段通过属性窗口设置,属于只读属性,不能在程序运行时修改其值。

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

A)Dima%B)Privatea%

C)PrivateaAsIntegerD)Statica%

答案:

D

【解析】Static只能用在过程(窗体模块的过程或标准模块的过程)内部声明静态变量,不能用在窗体模块或标准模块的通用段。

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

A)(0,50)B)(1,50)C)(0,49)D)(1,49)

答案:

C

【解析】因为Rnd产生的随机数范围是0~0.999999,Int函数返回不大于其参数值的一个整数,例如Int(8.6)返回8而不是9。

Int(-8.6)返回-9而不是-8。

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

A)15B)5C)TrueD)False

答案:

D

【解析】Print使用方式为:

Print输出列表。

在语句Printx=x+10中,x=x+10是一个表达式而不是一条语句。

作为表达式,x=x+10的值是“False”,因为在该表达式中,=作为关系运算符使用,而不是作为赋值运算符使用。

此处,=左边的x是5,=右边的值是15,=两边的值不同,所以是False。

只有当x=x+10作为语句时,才先计算=后面的值,然后把计算的值作为=左边的变量的值。

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

Dimarr(-2To2,0To3)AsInteger

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

A)20B)16C)15D)12

答案:

A

【解析】-2To2指的是-2、-1、0、1、2(共5),0To3指的是0、1、2、3(共4),因此元素个数是5×4=20

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

A)NameB)IndexC)CaptionD)Value

答案:

B

(19)设有分段函数:

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

A)SelectCasexB)Ifx<0Then

CaseIs<0y=5

y=5ElseIfx<=5Then

CaseIs<=5,Is>0y=2*x

y=2*xElse

CaseElsey=x*x+1

y=x*x+1EndIf

EndSelect

C)y=IIf(x<0,5,IIf(x<=5,2*x,x*x+1))D)Ifx<0Theny=5

Ifx<=5Andx>=0Theny=2*x

Ifx>5Theny=x*x+1

答案:

A

【解析】在条件CaseIs<0的情况下,CaseIs<=5,Is>0是错误的。

在条件CaseIs<0的情况下,CaseIs<=5,Is>0只需表示成CaseIs<=5即可。

(20)设程序中有如下语句:

x=InputBox("输入","数据",100)

Printx

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

A)0B)5C)100D)空白

答案:

D

【解析】InputBox函数的功能是在输入对话框中显示提示(此处为“输入”),等待用户输入文本或单击按钮,并返回文本框内容。

如果用户单击“确定”或按下ENTER,则InputBox函数返回文本框中的内容。

如果用户单击“取消”按钮,则函数返回一个零长度字符串("")。

本题要注意的是InputBox函数返回的是String类型的数据,由于返回零长度字符串(""),所以在窗体上输出空白而不是0。

 

(21)现有如下一段程序:

OptionBase1

PrivateSubCommand1_Click()

Dima

a=Array(3,5,7,9)

x=1

Fori=4To1Step-1

s=s+a(i)*x

x=x*10

Next

Prints

EndSub

执行程序,单击Command1命令按钮,执行上述事件过程,输出结果是

A)9753B)3579C)35D)79

答案:

B

【解析】因为有OptionBase1语句,因此a

(1)=3,a

(2)=5,a(3)=7,(4)=9。

i

x

a(i)

s=s+a(i)*x

4

1

9

s=0+9*1=9

3

10

7

s=9+7*10=79

2

100

5

s=79+5*100=579

1

1000

3

s=579+3*1000=3579

 

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

OptionBase1

PrivateSubCommand1_Click()

StaticxAsInteger

x=f(x+5)

Cls

Printx

EndSub

PrivateFunctionf(xAsInteger)AsInteger

f=x+x

EndFunction

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

A)10B)30C)60D)70

答案:

D

【解析】Static在过程级别中使用,用于声明变量并分配存储空间。

在整个代码运行期间都能保留使用Static语句声明的变量的值。

本题中,x为Static类型的变量,其初值为0。

第一次单击按钮,x=f(5),调用Function过程,执行f=5+5,Function过程返回值为10,所以x=10。

第二次单击按钮时,x=f(10+5),调用Function过程,执行f=15+15,Function过程返回值为30,所以x=30。

第三次单击按钮时,x=f(30+5),调用Function过程,执行f=35+35,Function过程返回值为70,所以x=70。

窗体上显示70。

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

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

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

C)设计菜单时,菜单项的“有效”未选,即

,表示该菜单项不显示

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

答案:

C

【解析】表示该菜单项不显示,应该是

,而不是

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

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

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

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

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

答案:

A

【解析】如果工程中有多个窗体,存盘时每个窗体对应一个窗体文件。

所以B错误。

打开一个窗体,其他窗体不会自动关闭,只是成为非活动窗体。

所以C错误。

VB默认第一个窗体是启动窗体,但可以通过工程属性设置其他窗体为启动窗体。

所以D错误。

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

PrivateSubCommand1_Click()

CommonDialog1.DefaultExt="doc"

CommonDialog1.FileName="VB.txt"

CommonDialog1.Filter="All(*.*)|*.*|Word|*.Doc|"

CommonDialog1.FilterIndex=1

CommonDialog1.ShowSave

EndSub

运行上述程序,如下叙述中正确的是

A)打开的对话框中文件“保存类型”框中显示“All(*.*)”

B)实现保存文件的操作,文件名是VB.txt

C)DefaultExt属性FileName属性所指明的文件类型不一致,程序出错

D)对话框的Filter属性没有指出txt类型,程序运行出错

答案:

A

【解析】注意,通用对话框的FilterIndex属性取值从1开始,不是从0开始。

所以对于语句

CommonDialog1.Filter="All(*.*)|*.*|Word|*.Doc|"

12

在上图中,FilterIndex属性,All(*.*)为1,Word为2。

(26)设程序中有如下数组定义和过程调用语句:

Dima(10)AsInteger

......

Callp(a)

如下过程定义中,正确的是

A)PrivateSubp(aAsInteger)B)PrivateSubp(a()AsInteger)

C)PrivateSubp(a(10)AsInteger)D)PrivateSubp(a(n)AsInteger)

答案:

B

【解析】定义过程时,如果形参为数组,无需指明数组的长度,但必须把数组的标志(就是一对圆括号)写出。

所以C和D均错误,B正确。

A选项因为在定义过程时形参不是数组,所以是错误的。

(27)若要获得组合框中输入的数据,可使用的属性是

A)ListIndexB)CaptionC)TextD)List

答案:

C

【解析】组合框是由一个文本框和列表框组合而成,要获得组合框中输入的数据(即文本框中输入的数据),只需使用组合框的Text属性即可。

(28)在窗体上画两个名称分别为Text1、Text2的文本框,Text1的属性为“DataBase”,如图所示。

现有如下事件过程:

PrivateSubText1_Change()

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

EndSub

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

A)DataAB)DataBC)aDataD)aBase

答案:

C

【解析】在文本框Text1中原有字符之前输入a,此时文本框Text1的内容变为aDataBase。

对于文本框的Change事件而言,只要文本框的内容发生改变,即触发该事件。

对于Mid(Text1,1,5)而言,其功能是从第1个位置开始,截取5个字符。

Text1的值是字符串“aDataBase”,第1个位置是字符“a”,从“a”开始截取5个,所以结果是“aData”。

(29)有如下程序:

OptionBase1

PrivateSubCommand1_Click()

Dimarr(10)

arr=Array(10,35,28,90,54,68,72,90)

ForEachaInarr

Ifa>50Then

Sum=Sum+a

EndIf

Nexta

EndSub

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

A)数组定义语句不对,应改为DimarrB)没有指明For循环的终值

C)应在For语句之前增加Sum=0D)Nexta应改为Next

答案:

A

【解析】Array函数的功能是为一维数组初始化。

在使用该函数时,要求=左边的数组arr是下面的三种形式之一:

(1)arr不声明直接使用,即arr为Variant类型的变量。

(2)采用Dimarr的声明形式

(3)采用Dimarr()的声明形式

(30)要求产生10个随机整数,存放在数组arr中。

从键盘输入要删除的数组元素的下标,将该元素中的数据删除,后面元素中的数据依次前移,并显示删除后剩余的数据。

现有如下程序:

OptionBase1

PrivateSubCommand1_Click()

Dimarr(10)AsInteger

Fori=1To10'循环1

arr(i)=Int(Rnd*100)

Printarr(i);

Next

Print

X=InputBox("输入1-10的一个整数:

")

Fori=X+1To10'循环2

arr(i-1)=arr(i)

Next

Fori=1To10'循环3

Printarr(i);

Next

EndSub

程序运行后发现显示的结果不正确。

应该进行的修改是

A)产生随机数时不使用Int函数B)循环2的初值应为i=x

C)数组定义改为Dima(11)AsIntegerD)循环3的循环终值应改为9

答案:

D

【解析】删除一个元素后,数组中只有9个元素。

由于有OptionBase1,数组下标的下界从1开始,所以最后一个元素的下标是9,而不是10。

 

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

A)Dir1.Path=Drive1.PathB)File1.Path=Dir1.Path

C)File1.Path=Drive1.PathD)Drive1.Drive=Dir1.Path

答案:

B

【解析】在程序运行时,驱动器列表框(DriveListBox)的Drive属性用来设置或返回选择的驱动器(缺省值是当前驱动器),目录列表框(DirListBox)的Path属性用来设置或返回所选择的目录(缺省值是当前目录),文件列表框(FileListBox)的Path属性用来设置或返回其当前的目录(缺省值是当前路径),

首先A和C可以排除,因为驱动器列表框没有Path属性,所以Drive1.Path的使用是错误的。

驱动器列表框的Drive属性,用来设置或返回所选择的驱动器名。

Drive属性只能用程序代码设置,不能通过属性窗口设置。

其格式为:

驱动器列表框名称.Drive[=驱动器名]

这里的“驱动器名”是指定的驱动器,如果省略,则Drive属性是当前驱动器。

如果所选择的驱动器在当前系统中不存在,则产生错误。

每次重新设置驱动器列表框的Drive属性时,都将引发Change事件。

驱动器列表框与目录列表框有着密切联系。

在一般情况下,改变驱动器列表框中的驱动器名后,目录列表框中的目录应当随之变为该驱动器上的目录,也就是使驱动器列表框和目录列表框产生同步(Synchronize)效果。

这可以通过一个简单的语句来实现。

当改变驱动器列表框的Drive属性时,将产生Change事件。

当Drive属性改变时,Drive_Change事件过程就发生反应。

因此,只要把Drive1.Drive的属性值赋给Dir1.Path,就可产生同步效果。

即:

PrivateSubDrive1_Change()

Dir1.Path=Drive1.Drive

EndSub

这样,每当改变驱动器列表框的Drive属性时,将产生Change事件,目录列表框中的目录变为该驱动器的目录。

综合上面的分析,选项D是错误的。

在实际应用中,驱动器列表框、目录列表框和文件列表框往往需要同步操作,这可以通过Path属性的改变引发Change事件来实现。

例如:

PrivateSubDir1_Change()

File1.Path=Dir1.Path

EndSub

该事件过程使窗体上的目录列表框Dir1和文件列表框File1产生同步。

因为目录列表框Path属性的改变将产生Change事件,所以在Dir1_Change事件过程中,把Dir1.Path赋给File1.Path,就可以产

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1