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,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
c 3 1
则由关系R和S得到关系T的操作是 A)自然连接 B)并
d 2 1
c 3 1
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)0≤x<10 B)0<=x<10 C) x≥0 And x<10 D)x>=0 Or x<=10
答案:C
【解析】x是小于10的非负数。即x大于等于0并且小于10。A选项和B选项是数学的描述方式,不是VB的描述方式。“x大于等于0并且小于10”中的“并且”要使用And而不是Or(或者)。
(13 以下关于窗体的叙述中,错误的是 A)窗体的Name属性用于标识一个窗体
第 3 页 共 19 页
B)运行程序时,改变窗体大小,能够触发窗体的Resize事件 C)窗体的Enabled属性为False时,不能响应单击窗体的事件 D)程序运行期间,可以改变Name属性值
答案:D
【解析】Name属性只能在设计阶段通过属性窗口设置,属于只读属性,不能在程序运行时修改其值。
(14)下面定义窗体级变量a的语句中错误的是 A)Dim a% B)Private a%
C)Private a As Integer D)Static a%
答案:D
【解析】Static只能用在过程(窗体模块的过程或标准模块的过程)内部声明静态变量,不能用在窗体模块或标准模块的通用段。
(15)表达式Int(Rnd(0)*50)所产生的随机数范围是 A)(0,50) B)(1,50) C)(0,49) D)(1,49)
答案:C
【解析】因为Rnd产生的随机数范围是0~0.,Int函数返回不大于其参数值的一个整数,例如Int(8.6)返回8而不是9。Int(-8.6)返回-9而不是-8。
(16)设x=5,执行语句Print x = x + 10,窗体上显示的是 A)15 B)5 C)True D)False
答案:D
【解析】Print使用方式为:Print 输出列表。在语句Print x = x + 10中,x = x + 10是一个表达式而不是一条语句。作为表达式,x = x + 10的值是“False”,因为在该表达式中,=作为关系运算符使用,而不是作为赋值运算符使用。此处,=左边的x是5,=右边的值是15,=两边的值不同,所以是False。只有当x = x + 10作为语句时,才先计算=后面的值,然后把计算的值作为=左边的变量的值。
(17)设有如下数组声明语句:
Dim arr(-2 To 2, 0 To 3) As Integer 该数组所包含的数组元素个数是 A) 20 B) 16 C) 15 D) 12 答案:A
【解析】-2 To 2指的是-2、-1、0、1、2(共5),0 To 3指的是0、1、2、3(共4),因此元素个数是5×4=20
(18)现有由多个单选按钮构成的控件数组,用于区别该控件数组中各控件的属性是
A)Name B)Index C)Caption D)Value
答案:B
(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
答案:A
【解析】在条件Case Is < 0的情况下,Case Is <= 5, Is > 0是错误的。在条件Case Is < 0的情况下,Case Is <= 5, Is > 0只需表示成Case Is <= 5即可。
(20)设程序中有如下语句:
x = InputBox(\输入\数据\
Print x
运行程序,执行上述语句,输入5并单击输入对话框上的“取消”按钮,则窗体上输出 A)0 B)5 C)100 D)空白
答案:D
【解析】InputBox函数的功能是在输入对话框中显示提示(此处为“输入”),等待用户输入文本或单击按钮,并返回文本框内容。如果用户单击“确定”或按下 ENTER,则 InputBox 函
数返回文本框中的内容。如果用户单击“取消”按钮,则函数返回一个零长度字符串 (\。本题要注意的是InputBox函数返回的是String类型的数据,由于返回零长度字符串 (\,所以在窗体上输出空白而不是0。
第 5 页 共 19 页
2012年3月全国计算机等级考试二级VB笔试试卷及参考答案(带详细解析)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)