2009年9月全国计算机等级考试二级笔试试卷.DOC

上传人:天*** 文档编号:411119 上传时间:2018-10-03 格式:DOC 页数:12 大小:151KB
下载 相关 举报
2009年9月全国计算机等级考试二级笔试试卷.DOC_第1页
第1页 / 共12页
2009年9月全国计算机等级考试二级笔试试卷.DOC_第2页
第2页 / 共12页
2009年9月全国计算机等级考试二级笔试试卷.DOC_第3页
第3页 / 共12页
2009年9月全国计算机等级考试二级笔试试卷.DOC_第4页
第4页 / 共12页
2009年9月全国计算机等级考试二级笔试试卷.DOC_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、2009 年 9 月全国计算机等级考试二级笔试试卷 Visual Basic 语言程序设计 一、选择题 下列各题 A)、 B)、 C)、 D)四个选项中,只有一个选项是正确的。 (1) 下列数据结构中,属于非线性结构的是 A) 循环队列 B) 带链队列 C) 二叉树 D) 带链栈 (2) 下列数据结构中,能够按照“先进后出”原则存取数据的是 A) 循环队列 B) 栈 C) 队列 D) 二叉树 (3) 对于循环队列,下列叙述中正确的是 A) 队头指针是固定不变的 B) 队头指针一定大于队尾指针 C) 队头指针一定小于队尾指针 D) 队头指针可以大于队尾指针,也可以小于队尾指针 (4) 算法的空间

2、复杂度是指 A) 算法在执行过程中所需要的计算机存储空间 B) 算法所处理的数据量 C) 算法程序中的语句或指令条数 D) 算法在执行过程中所需要的临时工作单元数 (5) 软件设计中划分模块的一个准则是 A) 低内聚低耦合 B) 高内聚低耦合 C) 低内聚高耦合 D) 高内聚高耦合 (6) 下列选项中不属于结构化程序设计原则的是 A) 可封装 B) 自顶向下 C) 模块化 D) 逐步求精 (7) 软件详细设计产生的图如下。 该图是 A) N-S 图 B) PAD 图 C) 程序流程图 D) E-R图 (8) 数据库管理系统是 A) 操作系统的一部分 B) 在操作系统支持下的系统软件 C) 一种

3、编译系统 D) 一种操作系统 (9) 在 E-R 图中 ,用来表示实体联系的图形是 A) 椭圆形 B) 矩形 C) 菱形 D) 三角形 (10) 有 3 个关系 R、 S 和 T 如下。 其中关系 T 由关系 R和 S 通过某种操作得到,该操作为 A) 选择 B) 投影 C) 交 D) 并 (11) 以下变量名中合法的是 A) x2-1 B) print C) str_n D) 2x (12) 把数学表达式 表示为正确的 VB 表达式应该是 A) (5x+3)/(2y-6) B) x*5+3/2*y-6 C) (5*x+3)(2*y-6) D) (x*5+3)/(y*2-6) (13) 下面有

4、关标准模块的叙述中,错误的是 A) 标准模块不完全由代码组成,还可以有窗体 B) 标准模块中的 Private 过程不能被工程中的其他模块调用 C) 标准模块的文件扩展名为 .bas D) 标准模块中的全局变量可以被工程中的任何模块引用 (14) 下面控件中,没有 Caption 属性的是 A) 复选框 B) 单选按钮 C) 组合框 D) 框架 (15) 用来设置文字字体是否斜体的属性是 A) FontUnderline B) FontBold C) FontSlope D) Fontltalic (16) 若看到程序中有以下事件过程,则可以肯定的是,当程序运行时 Private SubCli

5、ck_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Print “VB Program“ End Sub A) 用鼠标左键单击名称为 “Command1“的命令按钮时,执行此过程 B) 用鼠标左键单击名称为 “MouseDown“的命令按钮时,执行此过程 C) 用鼠标右键单击名称为 “MouseDown“的控件时,执行此过程 D) 用鼠标左键或右键单击名称为 “Click“的控件时,执行此过程 (17) 可以产生 30 50(含 30 和 50) 之间的随机整数的表达式是 A) Int(Rnd*

6、21+30) B) Int(Rnd*20+30) C) Int(Rnd*50-Rnd*30) D) Int(Rnd*30+50) (18) 在程序运行时,下面的叙述中正确的是 A) 用鼠标右键单击窗体中无控件的部分,会执行窗体的 FormLoad 事件过程 B) 用鼠标左键单击窗体的标题栏,会执行窗体的 Form_Click 事件过程 C) 只载入而不显示窗体,也会执行窗体的 Form_Load 事件过程 D) 载入窗体后,每次显示该窗体时,都会执行窗体的 Form_Click 事件过程 (19) 窗体上有名称为 Commandl的命令按钮和名称为 Text1 的文本框 Private Sub

7、 Command1_Cliek() Text1.Text=“程序设计 “ Text1.SetFocus End Sub Private Sub Text1_GotFocus() Text1.Text=“等级考试 “ End Sub 运行以上程序,单击命令按钮后 A) 文本框中显示的是“程序设计”,且焦点在文本框中 B) 文本框中显示的是“等级考试”,且焦点在文本框中 C) 文本框中显示的是“程序设计”,且焦点在命令按钮上 D) 文本框中显示的是“等级考试”,且焦点在命令按钮上 (20) 设窗体上有名称为 Option1 的单选按钮,且程序中有语句: If Option1.Value=True

8、Then 下面语句中与该语句不等价的是 A) If Option1.Value Then B) If Option1=True Then C) If Value=True Then D) If Option1 Then (21) 设窗体上有 1 个水平滚动条,已经通过属性窗口把它的 Max 属性设置为 1, Min 属性设置为 100。下面叙述中正确的是 A) 程序运行时,若使滚动块向左移动,滚动条的 Value 属性值就增加 B) 程序运行时,若使滚动块向左移动,滚动条的 Value 属性值就减少 C) 由于滚动条的 Max 属性值小于 Min 属性值,程序会出错 D) 由于滚动条的 Max

9、 属性值小于 Min 属性值,程序运行时滚动条的长度会缩为一点,滚动 块无法移动 (22) 有如下过程代码: Sub var_dim() Static numa As Integer Dim numb As Integer numa=numa+2 numb=numb+1 print numa;mumb End Sub 连续 3 次调用 var_dim.过程,第 3 次调用时输出的是 A) 2 1 B) 2 3 C) 6 1 D) 6 3 (23) 在窗体上画 1 个命令按钮, 并编写如下事件过程: Private Sub Command1_Click() For i=5 To 1 Step-0

10、.8 Print Int(i) ; Next i End Sub 运行程序,单击命令按钮,窗体上显示的内容为 A) 5 4 3 2 1 1 B) 4 4 3 2 1 C) 4 3 2 1 1 D) 4 4 3 2 1 1 (24) 在窗体上画 1 个命令按钮,并编写如下事件过程: Private Sub Command1_Click() Dima(3, 3) For m=1 To 3 For n=1 To 3 If n=m Or n=4-m Then a(m,n)=m+n Else a(m,n)=0 End If Print a(m,n); Next n Print Next m End Su

11、b 运行程序,单击命令按钮,窗体上显示的内容为 A) 2 0 0 B) 2 0 4 C) 2 3 0 D) 2 0 0 0 4 0 0 4 0 3 4 0 0 4 5 0 0 6 4 0 6 0 0 6 0 5 6 (25) 设有以下函数过程: Function fun(a As Integer, b As Integer) Dim c As Integer If a b Then c=a:a=b:b=c End If c=0 Do Loop Until c Mod b=0 fun=c End Function 若调用函数 fun 时的实际参数都是自然数,则函数返回的是 A) a、 b 的最大

12、公约数 B) a、 b 的最小公倍数 C) a 除以 b 的余数 D) a 除以 b 的商的整数部分 (26) 窗体上有 1个名称为 Text1的文本框; 1个名称为 Timer的计时器控件,其 Interval属性值为 5000,Enabled 属性值是 True。 Timer1 的事件过程如下: Private Sub Timer1_Timer() Static flag As Integer If flag=0 Then flag=1 flag=-flag If flag=1 Then Text1.ForeColor=y End Sub 运行程序后单击命令按钮,窗体上显示的是 A) 10

13、0 100 B) 100 120 C) 110 100 D) 110 120 (29) 设 a、 b 都是自然数,为求 a 除以 b 的余数,某人编写了以下函数: Function fun(a As Integer, b As Integer) While a b a=a-b Wend fun=a End Function 在调试时发现函数是错误的。为使函数能产生正确的返回值,应做的修改是 A) 把 a=a-b 改为 a=b-a B) 把 a=a-b 改为 a=ab C) 把 While a b 改为 While a b D) 把 While a b 改为 While a =b (30) 下列

14、关于通用对话框 CommonDialog1 的叙述中,错误的是 A) 只要在“打开”对话框中选择了文件,并单击“打开”按钮,就可以将选中的文件打开 B) 使用 CommonDialogl.ShowColor 方法,可以显示“颜色”对话框 C) CancelError 属性用于控制用户单击“取消”按钮关闭对话框时,是否显示出错警告 D) 在显示“字体”对话框前,必须先设置 CommonDialogl的 Flags 属性,否 则会出错 (31) 在利用菜单编辑器设计菜单时,为了把组合键“ Alt+X”设置为“退出 (X)”菜单项的访问键,可以将该菜单项的标题设置为 A) 退出 (X&) B) 退出

15、 (&X) C) 退出 (X#) D) 退出 (#X) (32) 在窗体上画 1 个命令按钮和 1 个文本框,其名称分别为 Command1 和 Text1,再编写如下程序: Dim ss As String Private Sub Text1_KeyPress(KeyAscii As Integer) If Chr(KeyAscii) “ Then ss=ss+Chr(KeyAscii) End Sub Private Sub Command1_Click() Dim m As String, i As Integer For i=Len(ss) To 1 Step-1 m=m+Mid(ss

16、, i, 1) Next Text1.Text=UCase(m) End Sub 运行程序后,在文本框中输入“ Number100”,并单击命令按钮,则文本框中显示的是 A) NUMBER 100 B) REBMUN C) REBMUN 100 D) 001 REBMUN (33) 窗体的左右两端各有 1 条直线,名称分别为 Line1、 Line2;名称为 Shape1 的圆靠在左边的 Line1直线上 (见图 );另有 1 个名称为 Timer1 的计时器控件,其 Enabled 属性值是 True。要求程序运行后,圆每秒向右移动 100,当圆遇到 Line2 时则停止移动。 为实现上述功

17、能,某人把计时器的 Interval属性设置为 1000,并编写了如下 程序: Private SubTimer1_Timer() For k=Line1.X1 To Line2.X1 Step 100 If Shape1.Left+Shape1.Width Line2.X1 Then Shape1.Left=Shape1.Left+100 End If Next k End Sub 运行程序时发现圆立即移动到了右边的直线处,与题目要求的移动方式不符。为得到与 题目要求相符的结果,下面修改方案中正确的是 A) 把计时器的 Interval属性设置为 1 B) 把 For k=Line1.X1

18、To Line2.X1 Step 100 和 Next k 两行删除 C) 把 For k=Line1.X1 To Line2.X1 Step 100 改为 For k=Line2.X1 To Line1.X1 Step 100 D) 把 If Shape1.Left+Shape1.Width Line2.X1 Then 改为 If Shape1.Left Line2.X1 Then (34) 下列有关文件的叙述中,正确的是 A) 以 Output 方式打开一个不存在的文件时,系统将显示出错信息 B) 以 Append 方式打开的文件,既可以进行读操作,也可以进行写操作 C) 在随机文件中,每

19、个记录的长度是固定的 D) 无论是顺序文件还是随机文件,其打开的语句和打开方式都是完全相同的 (35) 窗体如图 1 所示。要求程序运行时,在文本框 Text1 中输入一个姓氏,单击“删除”按钮 (名称为Command1),则可删除列表框 List1 中所 有该姓氏的项目。若编写以下程序来实现此功能: Private Sub Command1_Click() Dim n%, k% n=Len(Text1.Text) For k=0 To List1.ListCount-1 If Left(List1.List(k),n) =Text1.TextThen List1.Removeltem k E

20、nd lf Next k End Sub 在调试时发现,如输入“陈”,可以正确删除所 有姓“陈”的项目,但输入“刘”,则只删除了“刘邦”、“刘备”两项,结果如图 2 所示。这说明程序不能适应所有情况,需要修改。正确的修改方案是把 For k=0 To List1.ListCount-1 改为 A) For k=List1.ListCount-1 To 0 Step-1 B) For k=0 To List1.ListCount C) For k=1 To List1.ListCount-1 D) For k=1 To List1.LstCount 二、填空题 请将每空的正确答案写在 1 15引

21、序号的横线上。 (1) 某二叉树有 5 个度为 2 的节点及 3 个度为 1的节点,则该二叉树中共有 _个节点。 (2) 程序流程图中的菱形框表示的是 _。 (3) 软件开发过程主要分为需求分析、设计、编码与测试 4 个阶段,其中 _阶段产生“软件需求规格说明书”。 (4) 在数据库技术中,实体集之间的联系可以是一对一或一对多或多对多的,那么“学生”和“可选课程”的联系为 _。 (5) 人员基本信启、一般包括身份证号、姓名、性别、年龄等。其中可以作为主关键字的是 _。 (6) 工程中有 Form1、 Form2 两个窗体, Form1 窗体外观如图 1 所示。程序运行时,在 Form1 中名称

22、为 Text1的文本框中输入 _个数值 (圆的半径 ),然后单击命令按钮“计算并显示” (其名称为 Command1),则显示 Form2 窗体,且根据输入的圆的半径计算圆的面积,并在 Form2 的窗体上显示出来,如图 2 所示。如果单击命令按钮时,文本框中输入的不是数值,则用信息框显示“请输入数值 数据 !”,请填空。 Private Sub Command1_Click() If Text1.Text=“ Then MsgBox “请输入半径 !“ ElseIf Not IsNumeric( 6 ) Then MsgBox “请输入数值数据 !“ Else r=Val( 7 ) Form

23、2.Show 8 .Print “圆的面积是 “ & 3.14*r*r End If End Sub (7) 设有整型变量 s,取值范围为 0 100,表示学生的成绩。有如下程序段: If s =90 Then Leve1=“A“ Else If s =75 Then Leve1=“B“ Else If s =60 Then Leve1=“C“ Else Leve1=“D“ End If 下面用 Select Case 结构改写上述程序,使两段程序所实现的功能完全相同,请填空。 Select Case s Case 9 =90 Leve1=“A“ Case 75 To 89 Leve1=“B“

24、 Case 60 To 74 Leve1=“C“ Case 10 Leve1=“D“ 11 (8) 窗体上有名称为 Command1 的命令按钮。事件过程及 2 个函数过程如下: Private Sub Command1_Click() Dim x As Integer, y A8 Integer, z X=3 y=5 z=fy(y) Print fx(fx(x) ),y End Sub Function fx(ByVal a As Integer) a=a+a fx=a End Function Function fy(ByRef a As Integer) a=a+a fy=a End F

25、unction 运行程序并单击命令按钮,则窗体上显示的两个值依次是 12 和 13 。 (9) 窗体上有名称为 Command1 的命令按钮及名称为 Text1、能显示多行文本的文本框。程序运行后,如果单击命令按钮,则可打开磁盘文件 c:test.txt,并将文件中的内容 (多行文本 ) 显示在文本框中。下面是实现此功能的程序,请填空。 Private Sub Command1_Click() Text1=“ Number=FreeFile Open “c:test.txt“ For Input As Number Do While NotEOF( 14 ) Line Input #Numbe

26、r, s Text1.Text=Text1.Text+ 15 +Chr(13) +Chr(10) Loop Close Number End Sub 2009 年 9 月笔试试卷参考答案及解析 一、选择题 (1) C 解析 根据数据结构中各数据元素之间前后关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。线性结构表示数据元素之间为一对一的关系,非线性结构表示数据元素之间 为一对多或者多对一的关系。根据各种结构的定义可知二叉树是一种非线性结构。 (2) B 解析 栈是限定只在一端进行插入与删除的线性表,通常称插入、删除的这一端为“栈顶”,另一端为“栈底”。栈顶元素总是后被插入的元

27、素,也是最先被删除的元素;栈底元素总是最先被插入的元素,也是最后才能被删除的元素。栈是按照“先进后出”或“后进先出”的原则组织数据的。 (3) D 解析 循环队列是将顺序队列首尾相连形成的,随着插入元素或删除元素的进行,其队头指针及队尾指针是在不断变化的,有时可能会出现队头 指针大于队尾指针的情况,也可能是队尾指针大于队头指针,故答案为 D)。 (4) A 解析 算法的空间复杂度是指:算法执行过程中所需的存储空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间及算法执行过程中所需要的额外空间。 (5) B 解析 模块划分应考虑的因素包括模块之间的耦合和内聚。一般来

28、说,要求模块之间的耦合尽可能得低,即模块尽可能独立,要求模块的内聚程度尽可能得高,即遵循高内聚、低耦合的原则。 (6) A 解析 模块化、自顶向下、 逐步求精都是结构化程序设计的原则;可封装是面向对象程序设计的原则。 (7) C 解析 N-S 图是由若干基本框图构成的流程图,其特点是没有流程线; PAD 图即问题分析图(Problem Analysis Diagram),它是一种由左往右展开的二维树型结构;程序流程图用于描述问题解决的过程和步骤,其中方框表示处理步骤,菱形框表示逻辑判断,箭头表示控制流向; E-R图即实体 -联系图 (Entity Relationship Diagram),用

29、来描述现实世界的概念模型,构成元素有实体、属性和联系,分别用 矩形、椭圆形和菱形表示。本题答案为 C) 。 (8) B 解析 数据库管理系统是指位于用户与操作系统之间的数据管理软件。数据库管理系统是为数据库建立、使用和维护而配置的软件。 (9) C 解析 E-R图中用矩形表示实体 (等同于表 ),用椭圆形表示实体的属性 (等同于表中字段 ),用菱形表示实体关系 (等同于外键 )。 (10) D 解析 两个相同结构关系的并是由属于这两个关系的元组组成的集合。 (11) C 解析 变量命名应遵循以下规则:名字只能由字母、数字和下 画线组成;名字的第一个字符必须是英文字母,最后一个字符可以是类型说明

30、符;名字的有效字符为 255 个;不能用 Visual Basic的保留字作变量名,但可以把保留字嵌入变量名中;同时,变量名也不能是末尾带有类型说明符的保留字。变量名字中不应该出现“ ”符号,所以 A)选项错误; print 是 Visual Basic 中的保留字,所以 B)选项也不符合变量命名规则;选项 D)中 2x 的第一个字符不是英文字母,所以也不符合变量命名规则。 (12) D 解析 VB中的数乘应用“ *”来连接,浮点除法用“ /”连 接。选项 A)中应该将 5x、 2y 改成5*x 和 2*y;选项 B)中 5*x+3 是一个整体被除数,所以应该用小括号,否则整个表达式的运算优先

31、级顺序将改变;选项 C) 中两个表达式间应该用“ /”连接。 (13) A 解析 模块有窗体模块、标准模块和类模块 3 种类型,其中标准模块可以包含类型、常数、变量、外部过程和公共过程的公共的或模块级的声明,其文件扩展名为 .bas。标准模块中可以引用窗体但不包含窗体,所以 A)选项错误。 (14) C 解析 组合框含有 Name、 Height、 Width、 Top、 Left、 Enabled、 Visible、 Index、 List、 ListIndex、ListCount、 Selected、 Sorted、 Text、 MultiSelect 和 Style 等属性,但没有 Ca

32、ption 属性。 (15) D 解析 FontUnderline 属性是表示正文字体是否带有下画线; FontBold 属性是表示正文字体是否是粗体;没有 FontSlope 属性; FontItalic 属性是表示正文字体是否是斜体。所以正确答案为 D)。 (16) D 解析 在鼠标单击事件过 程中, Button 属性值为 1 时代表按下鼠标左键,值为 2 时代表按下鼠标右键,题中所述代码中没有定义 Button 值,所以单击鼠标左键或者右键都能触发 MouseDown 事件;代码中控件名称为 Click,所以答案为 D) 。 (17) A 解析 生成某个范围内的随机整数,计算公式为:

33、Int(上界 -下界 +1), Rnd+下界 ),题目中上界为 30,下界为 50,所 HiE确答案为 A)。 (18) C 解析 当加载窗体时,系统白动触发该窗体的 Load 事件;当窗体成为一个活动窗口时,触发Activate 事件;单击窗体空白处时,会触发窗体 Click 事件;选项 A)触发的是 Form_Click 事件;选项 B)用鼠标左键单击窗体的标题栏,不会触发 Form_Click 事件过程;选项 D)触发的是 Form_Activate 事件过程。所以正确答案为 C)。 (19) B 解析 运行程序后单击命令按钮,首先执行命令按钮 Command1_Click 代码的内容,

34、即 Text1文本框获得焦点并显示内容“程序设计”;当文本框获得焦点后,程序执行文本框的 Text1_GetFocus 事件代码,即文本框显示内容“等级考试” ,覆盖了原来文本框的内容,同时文本框获得焦点。 (20) C 解析 在 If 语句中,如果省略其判断条件,则默认为 True 时, Then 后面的语句成立,所以选项 A)的形式与题目语句等价; Option1 的默认属性为 Value,所以选项 B)中的 Option1=True 与题中语句Option1.Value=True 等价;同理,选项 D) 省略了 If 语句判断条件及 Option1 的默认属性,也是与原语句等价的。 (2

35、1) A 解析 因为 Max Min,最大值将被置于水平滚动条的最左端,所以在程序 运行时水平滚动条左边为 100,右边为 1,滚动条向左移动,滚动条的 Value 属性值就增加,所以正确答案为 A) 。 (22) C 解析 由题意可知, numa 是静态变量,所以 3 次调用过程该变量值是累加的,而 numb 是动态变量,每次调用过程,该变量值都被初始化为 0,所以 3 次调用该过程后输出的结果是 6 和 1。 (23) A 解析 题中所述程序是一个初值为 5,步长为 -0.8,终值为 1 的循环过程。第一次执行时,循环变量 i=5, Print Int(i)的输出结果为在窗体上打印数字 5

36、,其中 Int()函数取不大于 i的最大整数;第 2 次循环, i=4.2,输出结果为 4;第 3 次、第 4 次输出结果分别为 3和 2;第 5 次循环, i=1.8,输出结果为 1;第 6 次循环, i=1,输出结果为 1。第 6 次循环后跳出循环,整个程序结束。 (24) B 解析 当 m=1 时,如果 n=1,满足条件 m=n,执行 Then 语句 a(1,1)=m+n=2;当 n=2 时,不满足 If语句中的条件,执行 Else语句 a(1,2)=0;当 n=3时,满足 If条件 n=4-m,执行 Then语句 a(1,3)=m+n=4。同理可得,当 m=2 时,得到的结果为 0,

37、4, 0;当 m=3 时,结果为 4, 0, 6。 (25) B 解析 题中所述函数过程中, If 语句用来保证数 a 大于数 b,如果数 a 小于数 b,则将两者的值交换。取模运算符 Mod 用来求余数,即结果是数 c 整除数 b 所得的余数。 c 等于 a 值的累加,其值在逐步增大, c 当然能整除 a;而循环结束的条件为 c 是否能整除 b,当刚好整除时跳出循环体,所以 c 的值能整除 a 和 b 的最小值,因此 Do Loop 循环语句运行的结果为 a 和 b 的最小公倍数。 (26) C 解析 flag 变量为静态变量;第 1 次执行 Timer1_Timer 事件过程, flag=-1,文本框为绿色;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。