1、2011年3月全国计算机等级考试二级vb笔试试卷(考试时间 90分钟,满分100分)一、 选择题(每小题2分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。(1)下列关于栈叙述正确的是A)栈顶元素最先能被删除 B)栈顶元素最后才能被删除C)栈底元素永远不能被删除 D)以上三种说法都不对答案:A解析:栈的特点是“先进后出,后进先出”的线性结构,进栈又称为入栈最先进入栈的数据元素会被压入栈底,最后进入栈的元素所在位置称为栈顶,出栈又称为退栈即将元素从栈中删除,将元素退栈是先将栈顶的元素退栈,对于栈的运行原理可参考快
2、动网公共基础知识视频教程。所以上边选项正确的是A。(2)下列叙述中正确的是A) 有一个以上根结点的数据结构不一定是非线性结构B)只有一个根结点的数据结构不一定是线性结构C)循环链表是非线性结构D)双向链表是非线性结构B)【解析】在数据结构中,树这类的的数据结构只有一个根结点,但它不是线性结构。解析:A错误,符合线性结构的特点是:(1)有且只有一个根结点(2)每一个结点最多只有一个前件,也最多只有一个后件,根据题意不一定是非线性结构即指的是线性结构,那么根据线性结构的特点只有一个根结点,所以选项A叙述错误。B正确,比如二叉树是一个非线性结构,二叉树就是一个根结点,所以该选数正确。C和D叙述错误,
3、循环链表和双向链表都是线性结构。(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)A)3 B)4 C)6 D)7D)【解析】根据二叉树的性质,度为0的结点(即叶子结点)总是比度为2的结点多一个。题目中的二叉树的叶子结点为1,因此度为2的结点的数目为0,因而这个二叉树的深度为7。解析:根据二叉树的性质,叶子结点即度为0的结点个数总比度为2的结点个数多1,根据题目内容可知度为2的结点个数为0,因为叶子结点只有1个,由于二叉树的结点类型有三种:度为0,度为1,度为2,根据题目内容可知二叉树共有7个结点所以度为1的结点个数是6,度为1表示结点只有一个分支,这个分
4、支可以是左子树或右子树,我们画一下该二叉树的图为: (4)在软件开发中,需求分析阶段产生的主要文档是A) 软件集成测试计划 B)软件详细设计说明书C)用户手册 D)软件需求规格说明书D)【解析】在软件开发过程中,需求分析阶段产生的主要文档是软件需求规格说明书。A错误,集成测试计划是在概要设计阶段编写的文档。B错误,详细设计阶段产生的文档是软件详细设计说明书。C错误,用户手册是在软件实现阶段要完成文档。D正确。需求规格说明书是后续工作如设计、编码等需要的重要参考文档。(5)结构化程序所要求的基本结构不包括A)顺序结构 B)GOTO跳转C)选择(分支)结构 D)重复(循环)结构B)【解析】结构化程
5、序的基本结构有:顺序结构、选择结构和循环结构,没有GOTO跳转结构。解析:结构化程序的基本结构包括:顺序结构、选择结构、循环结构三种,以上选项B所说的GOTO结构是错误的,goto只是一种编程指令不是一种程序结构。(6)下面描述中错误的是A)系统总体结构图支持软件系统的详细设计B)软件设计是将软件需求转换为软件表示的过程C)数据结构与数据库设计是软件设计的任务之一D)PAD图是软件详细设计的表示工具A)【解析】系统总体结构图描述了软件系统的结构这是概要设计阶段的任务,详细设计阶段正是在概要设计阶段之后要进行工作。软件设计是将软件需求转换为软件表示的过程;数据结构与数据库设计是软件设计的任务之一
6、;PAD图,即问题分析图,是一种主要用于描述软件详细设计的图形工具。C正确,数据结构和数据库设计是概要设计阶段的任务。D正确,详细设计的表示具包括:程序流程图,N-S,PAD,HIPO等。(7)负责数据库中查询操作的数据库语言是A)数据定义语言 B)数据管理语言 C)数据操纵语言 D)数据控制语言【解析】负责数据库中查询操作的数据库语言是数据操纵语言。解析:用户通过数据定义语言可以方便地对数据库中的相关内容进行定义。例如,对数据库、表、索引进行定义。用户通过数据操纵语言可以实现对数据库的基本操作。例如,对表中数据的查询、插入、删除和修改。数据控制语言负责数据完整性、安全性的定义与检查以及并发控
7、制、故障恢复等功能。所以该题目选择C。(8)一个教师可讲授多门课程,一门课程可由多个教师讲授,则实体教师和课程间的联系是A)1:1联系 B)1:m联系 C)m:1联系 D)m:n联系D)【解析】一个教师可讲授多门课程,一门课程可由多个教师讲授,则实体教师和课程的联系是多对多的联系。(9)有三个关系R、S和T如下:R S TC1ABCA12B21C31ABc3则由关系R和S得到关系T的操作是A)自然连接 B)交 C)除 D)并C(2,1,)2 (A,1) 1 (B,2)1 (C,3)解析:A错误,自然连接是关系的横向运算。连接运算将两个关系横向地拼接成一个更宽的关系所以T关系不是R和S的自然连接
8、后的结果。B错误,关系R与关系S经交运算后所得到的关系是既在R中又在S中的元组组成,题目中的T关系的元组在S中不存在。C正确。D错误。并是两个关系的和集,从上图可以看出T不是R和S的和除(Division)给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集YX包含S在Y上投影的集合。记作:其中YX为x在R中的象集,x=trX。除操作是同时从行和列角度进行运算。例6 设关系R,S分别为图2.7中的(a)和(b),RS的
9、结果为图2.7(c)。在关系R中,A可以取四个值a1,a2,a3,a4。其中:a1的象集为(b1,c2),(b2,c3),(b2,c1)a2的象集为(b3,c7),(b2,c3)a3的象集为(b4,c6)a4的象集为(b6,c6)S在(B,C)上的投影为(b1,c2),(b2,c1),(b2,c3)显然只有a1的象集(B,C)a1包含了S在(B,C)属性组上的投影,所以RSa1 图2.7(10)定义无符号整数类为UInt,下面可以作为类UInt实例化值的是A)-369 B)369 C)0.369 D)整数集合1,2,3,4,5B)【解析】UInt表示的是无符号整数类,所以它的每个实例都是一个无
10、符号整数,所以排除选项A)和选项C),选项D)是整数集合,所以也排除。(11)在Visual Basic集成环境中,可以列出工程中所有模块名称的窗口是A)工程资源管理器窗口 B)窗体设计窗口C)属性窗口 D)代码窗口答案:A(12)假定编写了如下4个窗体事件的事件过程,则运行应用程序并显示窗体后,已经执行的事件过程是A)Load B)Click C)LostFocus D)KeyPress答案:A解析:Load事件用来在启动程序时对属性和变量进行初始化,在装入窗体后,如果运行程序,将自动触发该事件。(13)为了使标签具有“透明”的显示效果,需要设置的属性是A) Caption B) Align
11、ment C) BackStyle D) AutoSize答案:C解析:Caption属性用来在标签中显示文本;Alignment属性用来确定标签中标签的放置方式;AutoSize属性设置标签是否根据标题的长度自动调整大小;BackStyle属性可以取两个值,当值为1时,标签将覆盖背景,当值为0时,则标签具有“透明”的显示效果。(14)下面可以产生20-30(含20和30)的随机整数的表达式是A) Int(Rnd*10+20) B) Int(Rnd*11+20)C) Int(Rnd*20+30) D) Int(Rnd*30+20)答案:B解析:Rnd函数用来生成范围在0,1)之间的随机数。(1
12、5)设窗体上有一个名称为HS1的水平滚动条,如果执行了语句:HS1.Value=(HS1.Max-HS1.Min)/2+HS1.Min 则A)滚动块处于最左端B)滚动块处于最右端C)滚动块处于中间位置D)滚动块可能处于任何位置,具体位置取决于Max、Min属性的值答案:C解析:本题中语句的设置效果是将滚动条的Value值设为当前滚动条刻度个数的1/2再加上Min值,此值正好为滚动条的中间位置,而Value值用来设置滚动块的位置,故答案为C。(16)窗体上有一个名称为Cb1的组合框,程序运行后,为了输出选中的列表项,应使用的语句是A)Print Cb1.Selected B)Print Cb1.
13、List(Cb1.ListIndex)C)Print Cb1.Selected.TextD)Print Cb1.List(ListIndex)答案:B(17)为了在窗体上建立2组单选按钮,并且当程序运行时,每组都可以有一个单选按钮被选中,则以下做法中正确的是A) 把这2组单选按钮设置为名称不同的2个控件数组B) 使2组单选按钮的Index属性分别相同C) 使2组单选按钮的名称分别相同D) 使2组单选按钮分别画到2个不同的框架中答案:D解析:当窗体上有多个单选按钮时,如果选择其中的一个,其他单选按钮将自动关闭。当需要在同一个窗体上建立几组相互独立的单选按钮时,则必须通过框架为单选按钮分组,使得在
14、一个框架内的单选按钮为一组,每个框架内的单选按钮操作不影响其他组的按钮。(18)如果一个直线控件在窗体上呈现为一条垂直线,则可以确定的是A)它的Y1、Y2属性的值相等B)它的X1、X2属性的值相等C)它的X1、Y1属性的值分别与X2、Y2属性的值相等D)它的X1、X2属性的值分别与Y1、Y2属性的值相等答案:B解析:平行线的Y1、Y2属性的值相等;垂直线的X1、X2属性的值相等。(19)设a=2,b=3,c=4,d=5,则下面语句的输出是Print 32*b Or a=c And bc Or cdA) False B) 1 C) True D) -1答案:A解析:分别计算表达式32*b;a=c
15、 And bc;cd的值,其值均为False,则输出为False。(20)窗体Form1上有一个名称为Command1的命令按钮,以下对应窗体单击事件的事件过程是A) Private Sub Form1_Click() End SubB) Private Sub Form_Click() End SubC) Private Sub Command1_Click() End SubD) Private Sub Command_Click() End Sub答案:B(21)默认情况下,下面声明的数组的元素个数是Dim a(5,-2 to 2)A)20 B)24 C)25 D)30答案:D解析:VB
16、中数组下标默认从0开始,数组定义的值为数组可取的最大值,因此第一维可取值为6个,第二维可取值为:-2,-1,0,1,2,为5个,故数组元素个数为5*6=30个。(22)设有如下程序段Dim a(10)For Each x In a Print x;Next x在上面的程序段中,变量x必须是A) 整型变量 B)变体型变量 C)动态数组 D)静态数组答案:B解析:在For EachNext语句中,x为一个变体变量,它是为循环提供的,并在For EachNext结构中重复使用,它实际上代表的是数组中的每个元素。(23) 设有以下函数过程 Private Function Fun(a() As Int
17、eger, b As String)As IntegerEnd Function若已有变量声明:Dim x(5)As Integer,n As Integer,ch As String则下面正确的过程调用语句是A. x(0)=Fun(x,ch) B. n=Fun(n,ch)C. Call Fun x,ch D. n=Fun(x(5),ch)答案:A(24)假定用下面的语句打开文件: Open“Filel.txt”ForInput AS #1 则不能正确读文件的语句是 A) Input #1 ,ch$ B) Line Input #1,ch$ C) ch$=Input$(5,#1) D) Rea
18、d #1 ,ch$答案:D解析:本题打开的是顺序文件,读取方式有:Input #语句,Line Input #语句,Input函数,故答案选D。(25)下面程序执行结果是 Private Sub Command 1_Click() a=10 For k=1 To 5 Step-1 a=a-k Next k Print a ;k End Sub A) -5 6 B) -5 -5 C)10 0 D) 10 1解析:本题For循环的步长为-1,但题中给出的初始值比终止值小,因此循环未执行,故a值未变,仍为10。k值需被赋值为1后与5作比较才知道大小,故k值为1。(26)设窗体上有一个名为Text1
19、的文体框和一个名为Command1 的命令按钮,并有以下事件过程: Private Sub Command 1_Click() X!=Val(Text1.Text) Select Case x Case Is =20 Print “输入错误” Case Is0 Print 20-x Case Is 10 Print 20 Case Is5 Or x-1 Next End Sub运行程序,其中Do循环执行的次数是 A) 15 B) 10 C) 7 D) 3 答案:C解析:本题需要注意区分Do UntilLoop语句和DoLoop Until语句。后者为后判断条件的循环语句,无论初始条件是否满足都
20、至少执行一次循环,当条件满足时跳出循环。(28)阅读程序 Private Sub Command 1_ Click Dim arr Dim i As Integer Arr=Array (0,1,2,3,4,5,6,7,8,9,10) For i=0 To 2 Printarr(7 i); NextEnd Sub程序运行后,窗体上显示的是: A) 8 7 6 B) 7 6 5 C) 6 5 4 D) 5 4 3答案:B解析:本题中,arr被Array函数定义为数组并被赋初值;For循环中i的值为0到2,那么,7-i的值为7,6,5;Print arr(7-i)也就是输出arr(7),arr(6
21、),arr(5)的值,即输出7,6,5。(29)在窗体上画一个名为Command 1的命令按钮,然后编写以下程序: Private Sub Command 1_Click() Dim a(10) As Integer For k=10 TO 1 Step -1 a(k)=20-2*k Next k K=k+7 Print a(k-a(k) End Sub运行程序,单击命令按钮,输出结果是A) 18 B) 12 C)8 D)6答案:A(30)窗体上有一个名为Command 1 的命令按钮,并有如下程序: Private Sub Command 1_Click() Dim a(10),x% For
22、 k=1 To 10 a(k)=Int(Rnd*90+10) x=x+a(k) Mod 2Next k Print x End Sub程序运行后,单击命令按钮,输出结果是:A) 10个数中奇数的个数 B) 10个数中偶数的个数C) 10个数中奇数的累加和 D) 10个数中偶数的累加和答案:A解析:Mod函数为求余函数,与2取余,值为0表示为偶数,值为1表示为奇数。因加上0对x的值并无影响,加上1表示有一个奇数,因此答案为A。(31) 窗体上有一个名为 Command 1的命令按钮和一个名为Timer 1 的计时器,并有下面的事件过程: Private Sub Command 1_Click()
23、Timer 1.Enabled=True End Sub Private Sub Form _Load() Timer 1.Interval=10 Timer 1.Enabled=False End Sub Private Sub Timer 1_Timer() Command 1.Left=Command 1.Left+10End Sub程序运行时,单击命令按钮,则产生的结果是A) 命令按钮每10秒向左移动一次B) 命令按钮每10秒向右移动一次C) 命令按钮每10毫秒向左移动一次D) 命令按钮每10毫秒向右移动一次答案:D解析:Interval属性的单位为毫秒。(32)设窗体上有一个名为Li
24、st1 的列表框,并编写下面的事件过程: Private Sub List 1_Click()Dim ch AS Stringch=List 1.List(List1.ListIndex)List 1.RemoveItem List1.ListIndexList 1.AddItem chEnd Sub程序运行时,单击一个列表项,则产生的结果是A) 该列表项被移到列表的最前面 B) 该列表项被删除C) 该列表项被移到列表的最后面 D) 该列表项被删除后又在原位置插入答案:C解析:RemoveItem方法作用是删除项;AddItem方法作用是添加项,若省略Index值,则默认为插入到列表的最后面。
25、(33)窗体上有一个名为Command1的命令按钮,并有如下程序:Private Sub Command1_Click()Dim a As Integer, b As Integera = 8b = 12Print Fun(a, b); a; bEnd SubPrivate Function Fun(ByVal a As Integer, b As Integer) As Integera = a Mod 5b = b 5Fun = aEnd Function程序运行时,单击命令按钮,则输出结果是A)3 3 2B)3 8 2C)8 8 12D)3 8 12答案:B(34)为了从当前文件夹中读入
26、文件File1.txt,某人编写了下面的程序:Private Sub Command1_Click()Open File1.txt For Output As #20Do While Not EOF(20) Line Input #20, ch$ Print chLoopEnd Sub程序调试时,发现有错误,下面的修改方案中正确的是A)在Open语句中的文件名前添加路径B)把程序中各处的“20”改为“1”C)把Print ch 语句改为Print #20,chD)把Open语句中的Output改为Input答案:D解析:本题要求从当前文件夹中读入文件,因此在Open语句中应使用输入(Input
27、)打开文件。(35)以下程序运行后的窗体如图所示,其中组合框的名称是Combo1,已有列表项如图所示;命令按钮的名称是Command1。Private Sub Command1_Click()If Not check(Combo1.Text) Then MsgBox (输入错误) Exit SubEnd IfFor k = 0 To Combo1.ListCount - 1 If Combo1.Text = Combo1.List(k) Then MsgBox (添加项目失败) Exit Sub End IfNext kCombo1.AddItem Combo1.TextMsgBox (添加项
28、目成功)End SubPrivate Function Check(ch As String) As Boolean n = Len(ch) For k = 1 To n c$ = UCase(Mid(ch, k, 1) If c Z Then Check = False Exit Function End If Next k Check = TrueEnd Function程序运行时,如果在组合框的编辑区中输入“Java”,则单击命令按钮后产生的结果是A) 显示“输入错误”B) 显示“添加项目失败”C) 显示“添加项目成功”D) 没有任何显示答案:B二、填空题(每空2分,共30分)请将每空的
29、正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。(1)有序线性表能进行二分查找的前提是该线性表必须是【1】存储的。答案:【1】顺序【解析】二分查找只适用于顺序存储的有序线性表。(2)一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为【2】。答案:【2】DEBFCA(3)对软件设计的最小单位(模块或程序单元)进行的测试通常称为【3】测试。答案:【3】单元【解析】单元测试是对软件设计的最小单位模块(程序单元)进行正确性检验的测试。单元测试的目的是发现各模块内部可能存在的各种错误。(4)实体完整性约束要求关系数据库中元组的【4】属性值不能为空。答案
30、:【4】主键【解析】实体完整性约束要求关系的主键中属性值不能为空值,因为主键是惟一决定元组的,如为空值则其惟一性就成为不可能的了。(5)在关系A(S,SN,D)和关系B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,则称【5】是关系A的外码。答案:【5】D【解析】如果表A中的某属性集是某表B的键,则称该属性集为A的外键或外码。(6)在窗体上有1个名称为Command1的命令按钮,并有如下事件过程和函数过程:Private Sub Command1_Click()Dim p As Integerp = m(1) + m(2) + m(3)Print pEnd SubPrivate Fu
31、nction m(n As Integer) As Integer Static s As Integer For k = 1 To n s = s + 1 Next m = sEnd Function运行程序,单击命令按钮Command1后的输出结果为【6】。答案:【6】10(7)在窗体上画1个名称为Command1的命令按钮,然后编写如下程序:Private Sub Command1_Click()Dim m As Integer, x As IntegerDim flag As Booleanflag = Falsen = Val(Intputbox(请输入任意1个正整数)Do Whil
32、e Not flag a = 2 flag = 【7】 Do While flag And a i Then i = i + 1 a(i) = 【10】 End If Loop While i a(j) then temp =a(i),a(i)=a(j);【12】 Next j Next i For i = 1 To 10 Print a(i) Next iEnd Sub答案:【10】num【11】i+1【12】a(j)=temp(9)窗体上已有名称分别为Drive1、Dir1、File1的驱动器列表框、目录列表框和文件列表框,且有1个名称为Text1的文本框。以下程序的功能是:将指定位置中扩
33、展名为“.txt”的文件显示在File1中,如果双击File1中某个文件,则在Text1中显示该文件的内容。请填空。Private Sub Form_Load()File1.Pattern = 【13】End SubPrivate Sub Drive1_Change()Dir1.Path = Drive1.DriveEnd SubPrivate Sub Dir1_Change()File1.Path = Dir1.PathEnd SubPrivate Sub File1_DblClick()Dim s As String * 1If Right(File1.Path, 1) = Then f_
34、name = File1.Path + File1.FileNameElse f_name = File1.Path + + File1.FileNameEnd IfOpen f_name 【14】 As #1 Text1.Text = Do While 【15】 s = Input(1, #1) Text1.Text = Text1.Text + s Loop Close #1End Sub答案:【13】*.txt【14】For Input【15】NOT EOF(1)选择题:1-5 AADDB6-10 BCDCB11-15 AACBC16-20 BDBAB21-25 DBACD26-30 CCBAA31-35 DCBDB填空题 1、顺序 2、DEBFCA 3、单元 4、主键 5、D 6、10 7、Ture 8、a=a+1 9、n 10、num11、i 12、a(j)=temp 13、”*.txt|*.txt” 14、for input 15、not eof(1) (注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。可复制、编制,期待你的好评与关注)