2013年3月全国计算机等级考试二级vb笔试试卷及参考答案_第1页
2013年3月全国计算机等级考试二级vb笔试试卷及参考答案_第2页
2013年3月全国计算机等级考试二级vb笔试试卷及参考答案_第3页
2013年3月全国计算机等级考试二级vb笔试试卷及参考答案_第4页
2013年3月全国计算机等级考试二级vb笔试试卷及参考答案_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2012 年 3 月全国计算机等级考试二级笔试试卷 Visual Basic 语言程序设计 (考试时间 90 分钟,满分 100 分) 一、选择题(每小题 2 分,共 70 分) 下列各题 A) 、B) 、C) 、D)四个选项中,只有一个选项是正确的。请将正确选项填涂 在答题卡相应位置上,答在试卷上不得分。 (1)下列叙述中正确的是( ) 。 A)循环队列是队列的一种链式存储结构 B)循环队列是队列的一种顺序存储结构 C)循环队列是非线性结构 D)循环队列是一种逻辑结构 【解析】队列的存储表示有两种:一种是基于数组的存储表示,另一种是基于链表的存储表示。 队列的基于数组的存储表示亦称为顺序队列,它是利用一个一维数组作为队列元素的存储结构。为 了充分地利用数组的存储空间,把数组的前端和后端连接起来,形成一个环形的表,称为循环队列。 因此循环队列是队列的一种顺序存储结构。 队列不管采用链式存储结构还是顺序存储结构,它都是线性结构。循环队列作为队列的特殊情 况,它也是线性结构。 循环队列是在队列的基础上,将队列的头和尾接到一起形成一个环状,它给出了数据的逻辑结 构在计算机内部的存储形式,因此是一种存储结构。 答案:B (2)下列叙述中正确的是 A)栈是一种先进先出的线性表 B)队列是一种后进先出的线性表 C)栈与队列都是非线性结构 D)以上三种说法都不对 【解析】栈是一种后进先出(Last In First Out)或先进后出(First In Last Out)的线性表,它 的一端封闭(称为栈底) ,在另一端进行插入和删除操作,允许插入和删除的一端称为栈顶。 队列(queue)是指允许在一端进行插入、而在另一端进行删除的线性表。允许插入的一端称 为队尾,通常用一个称为尾指针(rear)的指针指向队尾元素,即尾指针总是指向最后被插入的元 素;允许删除的一端称为排头(也称为队头) ,通常也用一个排头指针(front)指向排头元素的前 一个位置。显然,在队列这种数据结构中,最先插入的元素将最先能够被删除,最后插入的元素最 后才能被删除。因此,队列又称为“先进先出” (First In First Out,FIFO)或“后进后出” (Last In Last Out,LILO)的线性表,它体现了“先来先服务”的原则。 栈与队列都是线性结构。 答案:D (3)一棵二叉树共有 25 个结点,其中 5 个是叶子结点,则度为 1 的结点数为 A)16 B)10 C)6 D)4 【解析】设二叉树结点数为 n,度为 2 的结点数为 n2,度为 1 的结点数为 n1,度为 0(即叶子 结点)的结点数为 n0。则有 n=n2+n1+n0。另外,在二叉树中,度为 0 的结点数是度为 2 的结点数加 1,因此有 n0=n2+1。此题中, n=25,n 0=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(Problem Analysis Diagram,问题分析图) (2)表格工具:判定表。 (3)语言工具:PDL(过程设计语言 )。 数据流图( Data Flow Diagram ,DFD )是需求分析阶段结构化分析的常用工具。需求分析阶 段其他常用的结构化分析工具还有数据字典(Data Dictionary,DD) 、结构化语言、判定表和判定 树等。 答案:C (11)以下合法的 VB 变量名是 A)case B)name10 C)t-name D)x*y 答案:B 【解析】变量命名规则:(1)字母、数字、下划线。 (2)不能使用保留字。 (3)不能以数字 开头。本题中,case 是保留字,t-name 中是中划线,不是下划线。x*y 中的*不是字母、也不是数 字、也不是下划线。 (12)设 x 是小于 10 的非负数。对此叙述,以下正确的 VB 表达式是 A)0x10 B)0=0 And x5 以下表示上述分段函数的语句序列中错误的是 A) Select Case x B) If x 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 Then y = 2 * x If x 5 Then y = x * x + 1 答案:A 【解析】在条件 Case Is 0 是错误的。在条件 Case Is 0 只需表示成 Case Is 50 Then Sum = Sum + a End If Next a End Sub 运行上述程序时出现错误,错误之处是 A)数组定义语句不对,应改为 Dim arr B)没有指明 For 循环的终值 C)应在 For 语句之前增加 Sum = 0 D)Next a 应改为 Next 答案:A 【解析】Array 函数的功能是为一维数组初始化。在使用该函数时,要求=左边的数组 arr 是下 面的三种形式之一: (1)arr 不声明直接使用,即 arr 为 Variant 类型的变量。 (2)采用 Dim arr 的声明形式 (3)采用 Dim arr()的声明形式 (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 程序运行后发现显示的结果不正确。应该进行的修改是 A)产生随机数时不使用 Int 函数 B)循环 2 的初值应为 i = x C)数组定义改为 Dim a(11) As Integer D)循环 3 的循环终值应改为 9 答案:D 【解析】删除一个元素后,数组中只有 9 个元素。由于有 Option Base 1,数组下标的下界从 1 开始,所以最后一个元素的下标是 9,而不是 10。 (31)使用驱动器列表框 Drive1、目录列表框 Dir1、文件列表框 File1 时,需要设置控件的同步, 以下能够正确设置两个控件同步的命令是 A)Dir1.Path = Drive1.Path B)File1.Path = Dir1.Path C)File1.Path = Drive1.Path D)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,就可产生 同步效果。即: Private Sub Drive1_Change() Dir1.Path = Drive1.Drive End Sub 这样,每当改变驱动器列表框的 Drive 属性时,将产生 Change 事件,目录列表框中的目录变 为该驱动器的目录。 综合上面的分析,选项 D 是错误的。 在实际应用中,驱动器列表框、目录列表框和文件列表框往往需要同步操作,这可以通过 Path 属性的改变引发 Change 事件来实现。例如: Private Sub Dir1_Change() File1.Path = Dir1.Path End Sub 该事件过程使窗体上的目录列表框 Dir1 和文件列表框 File1 产生同步。因为目录列表框 Path 属 性的改变将产生 Change 事件,所以在 Dir1_Change 事件过程中,把 Dir1.Path 赋给 File1.Path,就可 以产生同步。 因此选项 B 是正确的。 (32)以下关于弹出式菜单的叙述中,错误的是 A)一个窗体只能有一个弹出式菜单 B)弹出式菜单在菜单编辑器中建立 C)弹出式菜单的菜单名(主菜单项)的“可见”属性通常设置为 False D)弹出式菜单通过窗体的 PopupMenu 方法显示 答案:A 【解析】要使用弹出式菜单,首先必须通过菜单编辑器建立菜单,该菜单必须包含主菜单项和 子菜单项,而且主菜单的“可见”属性必须设置为 False,即主菜单必须在程序运行时不可见,然 后通过 PopupMenu 方法进行显示。可以建立多个弹出式菜单。 综合上面的分析,A 是错误的。 (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 不对 答案:D 【解析】对于 Print 方法,其使用格式如下: 对象名.Print 表达式列表 其中,表达式列表要求是“字符串表达式”或“数值表达式” 。对于自定义数据类型的变量 a,不能直接打印该变量,必须指出是要打印该变量的哪个成员,即形如 a.X 或 a.Y 的方式。 (34)在窗体上画两个名称分别为 Text1、Text2 的文本框,一个名称为 Label1 的标签,窗体外观 如图 a 所示。要求当改变任一个文本框的内容,就会将该文本框的内容显示在标签中,如图 b 所示。 实现上述功能的程序如下: 图 a 图 b Private 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 End Sub 关于上述程序,以下叙述中错误的是 A)ShowText 过程的参数类型可以是 Control B)ShowText 过程的参数类型可以是 Variant C)两个过程调用语句有错,应分别改为 Call ShowText(Text1.Text)、Call ShowText(Text2.Text) D)ShowText 过程中的 T 是控件变量 答案:C 【解析】此题可以使用排除法。Text1 等价于 Text1.Text,Text2 等价于 Text2.Text,所以选项 C 是错误的。 (35)设有打开文件的语句如下: Open “text.dat“ For Random As #1 要求把变量 a 中的数据保存到该文件中,应该使用的语句是 A)Input #1, a B)Write #1, a C)Put #1, a D)Get #1, a 答案:C 【解析】对于随机文件的写操作,使用 Put 语句,其使用格式如下: Put #文件号, 记录号, 变量名 其中记录号可以省略,但记录号后面的那个逗号不能省略。 A 选项:用于使用 For Input 方式打开的顺序文件,读取文件操作。 D 选项:用于读取操作,而不是保存。 B 选项:用于使用 For Outputt 方式或 Append 方式打开的顺序文件的写操作。 二、填空题(每空 2 分,共 30 分) 请将每空的正确答案写在答题卡【l】至【15】序号的横线上,答在试卷上不得分。 (1)在长度为 n 的顺序存储的线性表中删除一个元素,最坏情况下需要移动表中的元素个数为 【1】 。 【解析】线性表采用顺序存储结构时,如果删除运行在线性表的末尾进行,即删除第 n 个元素, 则不需要移动表中的元素(这是最好的情况) ;如果要删除线性表中的第 1 个元素,则从第 2 个元 素开始直到最后一个元素(第 n 个元素) ,一共 n-1 个元素,必须依次向前移动一个位置(这是最 坏的情况) ;一般情况下,要删除第 i(1i n)个元素时,则要从第 i+1 个元素开始,直到第 n 个 元素之间共 n-i 个元素依次向前移动一个位置;在平均情况下,要在线性表中删除一个元素,需要 移动表中一半的元素。 答案:n-1 (2)设循环队列的存储空间为 Q(1:30),初始状态为 front=rear=30,现经过一系列入队与退队运算 后,front=16,rear=15,则循环队列中有 【2】 个元素。 【解析】当 frontrear 时,循环队列中元素的个数为 rear-front,当 frontrear 时,循环队列中 元素的个数为 N(N 为循环队列容量)- front + rear。此题中 front=16 rear=15,因此该循环队列 中共有 30-16+15=29 个元素。 答案:29 (3)数据库管理系统提供的数据语言中,负责数据的增、删、改和查询的是 【3】 。 【解析】数据库管理系统一般提供下列几种数据语言(data language ) ,分别是: 数据定义语言(Data Definition Language,DDL):负责数据的模式定义和数据的物理存取 构建。 数据操纵语言(Data Manipulation Language,DML):负责数据的操纵,包括查询及增加、 删除、修改等操作。 数据控制语言(Data Control Language,DCL):负责数据完整性、安全性的定义与检查以 及并发控制、故障恢复等功能,包括系统初始程序、文件读/ 写、存取路径管理程序、缓冲区管理 程序、安全性控制程序、完整性检查程序、并发控制程序、事务管理程序、运行日志管理程序以及 数据库恢复程序等。 答案:数据操纵语言 或 DML (4)在将 E-R 图转换到关系模式时,实体和联系都可以表示成 【4】 。 答案:关系 (5)常见的软件工程方法有结构化方法和面向对象方法,类、继承以及多态性等概念属于 【5】 。 答案:面向对象方法 (6)下面的事件过程执行时,可以把 Text1 文本框中的内容写到文件“file1.txt”中去。请填空。 Private Sub Command1_Click() Open “file1.txt“ For 【 6】 As #1 Print 【 7】 , Text1.Text Close #1 End Sub 【解析】Open 语句格式为:Open 文件名 For 打开方式 As 文件号 其中, “打开方式”可以是 Input、Output、Random 等。Input 方式是把顺序文件中的内容读到 程序中,Output 方式是把程序中的数据写到顺序文件中。Random 方式用于打开随机文件。 Print 语句格式为:Print 文件号 , 变量列表 其功能是把变量列表中的所有变量的值写到由文件号指定的文件中。 本题中,要求把文本框的内容(Text1.Text)写到文件 file1.txt 中,因此打开方式应该为 Output,所以【6】应该填入 Output。由于已经由 Open 语句将顺序文件“file1.txt ”和文件号(此处 为 1)进行了关联,所以【7】应该填入#1。 答案:【6】Output 【7】 #1 【考试误区】注意:语句“Print #1, Text1.Text ”中 Print 与数字 1 之间的#不能省略,不能写 成 “Print 1, Text1.Text ”,否则,就变成了在窗体上输出数字 1 和文本框的内容。但是,Open 语 句中 As 子句后面的#则可以省略。 (7)设窗体上有一个名称为 Label1 的标签,程序运行时,单击鼠标左键,再移动鼠标,鼠标的位 置坐标会实时地显示在 Label1 标签中;单击鼠标右键则停止实时显示,并将标签中内容清除。下 面的程序可实现这一功能,请填空。 Dim down As Boolean Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Select Case 【8】 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 【9】 Then 【10】 = “X=“ & X & “ Y=“ & Y Else Label1.Caption = “ End If End Sub 【解析】首先注意到窗体的通用段定义了一个模块级的变量 down,类型为 Boolean,因此该变 量可以被窗体模块中的所有过程使用。 答案:【8】Button 【9】down = True 或 down 【10】Label1.Caption 或 Label1 (8)窗体上有 List1、List2 两个列表框,程序运行时,在两个列表框中分别选中 1 个项目,如图 a 所示,单击名称为 Command1 的“交换”按钮,则把选中的项目互换,互换后的位置不限,如图 b 所示。下面的程序可实现这一功能,请填空。 图 a 交换前 图 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 答案:【11】List2.ListIndex 【12】List2.AddItem List1.Text 【解析】列表框的 RemoveItem 方法的功能是删除被选中的列表项,该方法后面的参数是一个 整数值,该整数值是被选中的列表项的索引值(取值 0ListCount-1) ,被选中的列表框的索引值用 ListIndex 代表。 列表框的 AddItem 方法的功能是把指定的内容添加到列表框中,该方法的格式如下: AddItem 要添加的内容 , Index 在 vb 中,使用属性时,总是要指明该属性是哪个对象的属性,所以【11】要填 List2.ListIndex。 程序中,List1.AddItem List2.Text 的功能是把列表框 List2 中被选中的列表项的内容(用 List2.Text 代表)添加到列表框 1 中,然后删除列表框 2 中被选中的这项(选中的这项的索引值用 ListIndex 代表) ,所以【11】要填 List2.ListIndex。 【12】要填入的是 List2.AddItem List1.Text,其功能是把列表框 1 中选中的列表框(该列表项

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论