1、国家二级( VB)机试模拟试卷 109及答案与解析 一、选择题 1 设循环队列为 Q(1: m),其初始状态为 front=rear=m。经过一系列入队与退队运算后, front=15, rear=20。现要在该循环队列中寻找最大值的元素,最坏情况下需要比较的次数为 ( A) 4 ( B) 6 ( C) m-5 ( D) m-6 2 下列叙述中正确的是 ( A)循环队列属于队列的链式存储结构 ( B)双向链表是二叉树的链式存储结构 ( C)非线性结构只能采用链式存储结构 ( D)有的非线性结构也可以采用顺序存储结构 3 某二叉树中有 n个叶子结点,则该二叉树中度为 2的结点数为 ( A) n+
2、1 ( B) n-1 ( C) 2n ( D) n/2 4 下列叙述中错误的是 ( A)算法的时间复杂度与算法所处理数据的存储结构有直接关系 ( B)算法的空间复杂度与算法所处理数据的存储结构有直接关系 ( C)算法的时间复杂度与空间复杂度有直接关系 ( D)算法的时间复杂度与算法程序执行的具体时间是不一致的 5 软件工程的三要素是 ( A)方法、工具和过程 ( B)建模、方法和工具 ( C)建模、方法和过程 ( D)定义、方法和 过程 6 通常软件测试实施的步骤是 ( A)集成测试、单元测试、确认测试 ( B)单元测试、集成测试、确认测试 ( C)确认测试、集成测试、单元测试 ( D)单元测
3、试、确认测试、集成测试 7 下面可以作为软件设计工具的是 ( A)系统结构图 ( B)数据字典 (DD) ( C)数据流程图 (DFD图 ) ( D)甘特图 8 在数据库设计中,将 E-R图转换成关系数据模型的过程属于 ( A)逻辑设计阶段 ( B)需求分析阶段 ( C)概念设计阶段 ( D)物理设计阶段 9 设有关系表学生 S( 学号,姓 名,性别,年龄,身份证号 ) ,每个学生学号唯一。除属性学号外,也可以作为键的是 ( A)姓名 ( B)身份证号 ( C)姓名,性别,年龄 ( D)学号,姓名 10 在数据库系统中,考虑数据库实现的数据模型是 ( A)概念数据模型 ( B)逻辑数据模型 (
4、 C)物理数据模型 ( D)关系数据模型 11 在 Visual Basic标准工具栏中, “菜单编辑器 “的图标是 ( A) ( B) ( C) ( D) 12 类模块文件的扩展名为 ( A) .res ( B) .cls ( C) .vbp ( D) .vbg 13 对于窗体而言,在运行期间对其值改变无效的属性是 ( A) Caption ( B) Enabled ( C) AutoRedraw ( D) BorderStyle 14 对于语句 Dim Var1, Var2 As String * 10,下列说法中正确的是 ( A) Var1和 Var2都被定义为定长字符串变量 ( B)
5、Var1被定义为变长字符串变量, Var2被定义为定长字符串变量 ( C) Var1被定义为定长字符串变量, Var2被定义为变长字符串变量 ( D) Var1被定义为变体变量 15 已知 num1 = 15,则表达式 Len(“abc“ s End Sub 程序运行后,单击命令按钮 Command1,输出结果为 ( A) 3 14 ( B) 6 14 ( C) 3 9 ( D) 6 9 37 在窗体上画 1个名称为 Command1的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim k As Integer, x As Integer Ran
6、domize Do For k = 1 To 1000 x = Int(Rnd() * 100) Print x; Select Case x Case 10 Exit For Case 50 Exit Do Case 60, 90 End End Select Next k Loop End Sub 上述事件过程执行后,下列叙述中正确的是 ( A)事件过程无法正常结束 ( B) DO循环的执行次数为 1000次 ( C)当产生的随机数为 10时退出所有循环 ( D)当产生的随机数为 60或 90时关闭窗体,结束程序 38 在窗体上画 1个名称为 Command1的命令按钮, 1个名称为 La
7、bel1的标签,然后编写如下事件过程: Private Sub Command1_Click() Dim m As Integer, x As Integer Dim tag As Boolean x = InputBox(“请输入一个正整数: “) Do tag = True m = 2 Do While tag And m x 2 If x Mod m = 0 Then tag = False Else m = m + 1 End If Loop If Not tag Then x = x + 1 Loop While Not tag Label1.Caption = x End Sub
8、程序运行后,单击命令按钮 Command1,并在输入对话框中输入 14,则标签中显示的内容是 ( A) 7 ( B) 13 ( C) 14 ( D) 17 39 编写如下程序: Private Sub Command1_Click() Dim a As Integer, i As Integer a = 2 For i = 1 To 3 Print fun_s(a); Next i End Sub Function fun_s(a As Integer) As Integer Dim b As Integer Static c As Integer a = a + 1 b = b + 1 c
9、= c + 1 fun_s = a + b + c End Function 程序运行后,单击命令按钮 Command1,输出结果为 ( A) 4 5 6 ( B) 5 6 7 ( C) 5 7 9 ( D) 4 6 8 40 窗体上有 2个名称为 List1、 List2的列表框, 1个标题为 “移动 “的命令按钮Command1,如图所示。在 List1中选择多个项目,并单击 “移动 “命令按钮,则选 中的项目被移动到 List2中。编写如下程序:Private Sub Command1_Click() Dim i As Integer,j As Integer, k As Integer
10、 Dim n As Integer,arr() As Integer n=List1.SelCount ReDim arr(1 to n) m=1 For i=1 To List1.ListCount i循环 If List1.Selected(i) Then arr(m)=i m=m+1 End if Next i For j=1 To n j循环 List2.AddItem.List1.List(arr(i) List1.RemoveItem arr(i) For k=j+1 TO n k循环 arr(k)=arr(k)-1 next k next jEnd Sub运行程序,发现有错误,以
11、一下正确的修改是 ( A) i循环的初始语句应改为: For i = 0 To List1.ListCount - 1 ( B) k循环的循环体应改为: arr(k) = arr(k) + 1 ( C) j循环的初始语句应改为: For j = m - 1 To n ( D)删除 k循环涉及的三行代码 二、基本操作题 41 (1)在名称为 Form1的窗体上添加一个名称为 Shape1的形状控件,通过设置参数使其形状为圆形;添加一个名称为 Label1的标签,标题为 “形状 ”,标签的大小能够根据标签内容的字数、大小而定;添加一个名称为 Text1的文本框,文本框最多能够显示 5个字符,文本框
12、中初始内容为 “圆形 ”,如图所示。注意:存盘时,将文件保存至学生文件夹下,且窗体文件名为 sjt1 frm,工程文件名为 sjt1 vbp。 (2)在名称为 Form1的窗休上添加一个名称为 Label1的标签,字号大小为四号,标题为 “等级考试 ”,如图 1所示。通过设置属性使标签初始为不显示。请编写适当的程序,使得运行程序时,窗体的标题立即变为 “标签 ”,单击窗体时,显示标签,如图 2所示。 注意:存盘时,将文件保存至考生文件夹下,且窗体文什名保存为 sjt2 frm,工程义件名保存为 sjt2 vbp。要求程序中不得使用变量,每个事件过程中只能写一条语句。三、简单应用题 42 (1)
13、在名称为 Forml的窗体上添加一个名称为 Text1的文本框,再建立一个名称为 Format的 弹出式菜单,含三个菜单项,标题分别为 “加粗 ”、 “斜体 ”、 “下划线 ”,名称分别为 M1、 M2、 M3。请编写适当的事件过程,在程序运行时,当用鼠标右键单击文本框时,弹出菜单,选中一个菜单项后,则按所选菜单标题设置文本框中文本的格式,如图所示。 注意:存盘时必须存放在考生文件夹下,工程文件名保存为 sjt3 vbp,窗体文件名保存为 sjt3.frm。 (2)在考生文件夹下有一个工程文件 sjt4 vbp,含有 Form1和 Form2两个窗体,其中 Form1为启动窗体,窗体上的控件如
14、图 1所示。程序运行后,在 Form1窗体 的文本框中输入有关信息 (如 “密码 ”文本框中显示 “*”字符 ),然后单击 “提交 ”按钮,弹出 “确认 ”对话框 (Form2窗体 ),并在 Form2中显示 Form1中输入的信息,如图 2所示。单击 “确认 ”按钮,程序结束,单击 “重输 ”按钮, Form2消失,回到 Form1窗体。在给出的窗体文件中已经给出了程序,但不完整。 要求: 将 Form1的标题改为 “注册 ”,将 Form2的标题改为 “确认 ”; 设置适当的属性,使 Form2标题栏右上角的所有按钮消失 (如图 2所示 ); 去掉程序中的注释符,把其中的 ?改为正确的内容
15、。 注意: 不能修改程序中的其他部分,标题等属性的修改只能在属性窗口中进行。最后将修改后的文件按原文件名存盘。四、综合应用题 43 在考生文件夹下有一个工程文件 sjt5 vbp,其名称为 Form1的窗体上已有三个文本框 Text1、 rext2、 Text3,以及部分程序代码,请完成以下工作。 在属性窗口中修改 Text3的适当属性,使其在运行时不显示,作为模拟的剪贴板使用,窗体如图所示。 建立下拉式菜单,如下表所示。 窗体文件中给出了所有事件过程,但不完整,请去掉程序中的注释符,把程序中的 ?改为正确的内容,以 便实现如下功能:当光标所在的文件框中无内容时, “剪切 ”、 “复制 ”不可
16、用,否则可以把该文本框中的内容剪切或复制到 Text3中;若 Text3中无内容,则 “粘贴 ”不能用,否则可以把 Text3中的内容粘贴在光标所在的文本框中的内容之后。 注意:不能修改程序中的其他部分,各菜单项的标题名称必须正确。最后将修改后的文件按原丈件名存盘。 国家二级( VB)机试模拟试卷 109答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 循环队列是队列的一种顺序存储结构,用队尾指针 rear指向队列中的队尾元素,用排 头指针指向排头元素的前一个位置,因此,从排头指针 front指向的后一个位置直到队尾指针 rear指向的位置之间所有的元素均为队列中的元素,队列初始状态
17、为 front=rear=m,当 front=15, rear=20时,队列中有 5个元素,比较次数为 4次, A选项正确。 2 【正确答案】 D 【试题解析】 循环队列是队列的一种顺序存储结构, A选项错误。双向链表为顺序存储结构,二叉树通常采用链式存储结构, B选项错误。完全二叉树是属于非线性结构,但其最佳存储方式是顺序存储方式, C选项错误, D选项正确。 3 【正确答案】 B 【试题解析】 对任何一棵二叉树,度为 0的节点(即叶子节点)总是比度为 2的节点多一个。二叉树中有 n个叶子节点,则度为 2的节点个数为 n-1, B选项正确。 4 【正确答案】 C 【试题解析】 算法的时间复杂
18、度是指执行算法所需要的计算工作量。数据的存储结构直接决定数据输入,而这会影响算法所执行的基本运算次数, A选项叙述正确。算法的空间复杂度是指执行这个算法所需要的内存空间,其中包括输入数据所占的存储空间, B选项叙述正确。而算法的时间复杂度与空间复杂度没有直接关系,故选择 C选项。算法 程序执行的具体时间受到所使用的计算机、程序设计语言以及算法实现过程中的许多细节所影响,而算法的时间复杂度与这些因素无关,所以是不一致的, D选项叙述正确。 5 【正确答案】 A 【试题解析】 软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。软件工程包含个要素:方法、工具和过程
19、。 A选项正确。 6 【正确答案】 B 【试题解析】 软件测试的实施过程主要有个步骤:单元测试、集成测试、确认测试(验收测试)和系统测试。 B选项正确。 7 【正确答案】 A 【试题解析】 结构化分析方法的常用工具:数据流图( DFD)、数据字典( DD)、判定表、判定树。常用的过程设计工具如下所述:图形工具(程序流程图、 N-S图、 PAD图、 HIPO)、表格工具(判定表)、语言工具( PDL)。结构化设计方法使用的描述方式是系统结构图。 A选项正确。 8 【正确答案】 A 【试题解析】 采用 E-R方法得到的全局概念模型是对信息世界的描述,并不适用于计算机处理,为了适合关系数据库系统的处
20、理,必须将 E-R图转换成关系模式。这就是逻辑设计的主内容, A选项正确。 9 【正确答 案】 B 【试题解析】 候选键是二维表中能唯一标识元组的最小属性集。一个二维表有多个候选码,则选定其中一个作为主键供用户使用。学生学号与身份证号均是唯一的,都可以作为主键, B选项正确。 10 【正确答案】 B 【试题解析】 数据模型按照不同的应用层次分为以下种类型:概念数据模型,它是一种面向客观世界、面向用户的模型,它与具体的数据库管理系统和具体的计算机平台无关;逻辑数据模型,是面向数据库系统的模型,着重于在数据库系统一级的实现;物理数据模型,是面向计算机物理实现的模型,此模型给出了数据模 型在计算机上
21、物理结构的表示。 B选项正确。 11 【正确答案】 C 【试题解析】 A项是窗体布局窗口; B项是属性窗口; C项是菜单编辑器, D项用来创建标准的 EXE工程。故选择 C项。 12 【正确答案】 B 【试题解析】 工具资源管理器窗口中的文件可以分为 6类,即窗体 (Frame)文件( .frm)、程序模块文件( .bas)、类( Class)模块文件( .cls)、工程文件( .vbp)、工程组文件( .vbg)和资源 (Resource)文件( .res)。故 B项正确,其他项错误。 13 【正确答案 】 D 【试题解析】 Caption属性设置窗体的标题; Enabled属性设置对象的可
22、见性;AutoRedraw用来控制屏幕图像的重建; BorderStyle用来确定窗体边框的类型,只有 BorderStyle属性在窗体运行期间对其值改变无效。故选择 D选项。 14 【正确答案】 D 【试题解析】 Dim 用于定义在标准模块、窗体模块或过程中定义变量或数组。AS String可以定义变长字符串变量也可以定义定长字符串变量。变长字符串变量的长度取决于赋给他的字符串常量的长度。定长字符串变量的长度通 过加上 “*数值 “来确定,故 Var2为定长字符串变量, C项错误。用一个 Dim可以定义多个变量,但每个变量都要用 AS子句声明其类型,否则该变量被看做变体类型,故Var1为变体
23、变量,故 D选项正确, A项和 B项错误。 15 【正确答案】 A 【试题解析】 y;z结合其所在位置可知,要求输出局部变量 x,全局变量 y和 z,结果为 1, 2,9,故选 B项。 34 【正确答案】 C 【试题解析】 接收从对话框输入的数字,并将其赋值给整型变量 x,如果满足 x对 3取模为 2且 x被 5整除,则输出 A,如果仅满足 x对 3取模为 2但 x不能整除5,输出 B。 11、 20、 32、 17都满足对 3取模为 2条件,其中 20,15能整除 5,11,17不能整除 5。输出结果为 BABB,选择 C项。 35 【正确答案】 D 【试题解析】 当 n=1时,执行循环内程
24、序, n=1+1=2, t=1*2=2;当 n=2,继续执行循环内程序, n=2+1=3, t=2*3=6;当 n=3时,执行循环内程序, n=3+1=4,t=6*4=24;当 n=4时,执行循环内程序, n=4+1=5, t=24*5=120,退出循环。故选择 D项。 36 【正确答案】 B 【试题解析】 程序中的 s和 n分别记录了最内层循环的程序执行次数和次内层循环的程序执行次数。当 a=1时,进入 For循环,最内层循环的程序执行 3次,次内层循环的程序执行 一次, s=1+1+1=3,n=1;当 a=2时,进入 For循环,最内层循环的程序执行 3+2次即 5次,次内层循环的程序执行
25、 2次 ,s=3+1+1+1+1+1=8,n=2;当 a=1时,进入 For循环,最内层循环的程序执行3+2+1次即 6次,次内层循环的程序执行 3次 ,s=8+1+1+1+1+1+1=14,n=3;故s=3+5+6=14, n=1+2+3=6。选择 B项。 37 【正确答案】 D 【试题解析】 x是 0 100之间随机数的整数形式(不包括 0和 100)。事件过程可以正常结束,当 x为 50,60,90时都 可结束,故 A错误; Do循环执行次数不确定,如果随机数为 50时,退出 Do循环,故选项 B表述错误;当 x为 10,退出For循环,但是不能退出 Do循环,故 C表述错误;当产生的随
26、机数为 60或 90时关闭窗体,结束程序,故 D选项正确。 38 【正确答案】 D 【试题解析】 X为 14时,进入外层的循环体,满足 x最内层的 do.while循环条件(大于 2*m+1且 tag为 true)执行内层循环体。 X满足 If条件( x对 m取余得0),故 tag为 False,跳出最内层循环,在外层循环中,由于 tag为负, x自增1, x=15, 且满足最外层循环条件。故第二次执行最外层循环的循环体。 tag再次赋值为 true, m=2,x满足内层循环条件,在内层循环中,不满足 IF条件,故 m为m+1为 3, x和 tag仍满足内层循环条件,故再次执行循环体,此时 x
27、和 m满足 If条件,故设置 tag为 false,推出内层循环。由于 tag为负, x自增 1, x=16,且满足最外层循环条件,再次进入内层循环。第三次执行外层循环的循环体, x满足内循环条件句,且满足 If条件,故 tag为 flase。由于 tag为 false, x自增 1, x=17,且满足最外层循环条件。当 x=17,满组 内层循环条件,不满足 If条件,故 m=3,如此多次执行循环体,直到 m=7时,不满足最内层的循环条件,此时 tag=true,x=17, m=7,退出内层循环。由于 tag=true,则不执行 x自增,且退出外层循环,故程序运行 x的最终值为 17。 39
28、【正确答案】 C 【试题解析】 程序初始定义全局变量 a,i。 a=2。在 fun_s中,定义了静态变量c,能够保留上一次程序调用的值,而 b不保留上次的值,每次调用函数时,自动初始化为 0。利用 For循环,三次调用函数 fun_s,执行结果为:第一次调用函数, a = a + 1=2+1=3, b = b + 1=0+1=1, c = c + 1=0+1=1, fun_s = a + b + c=5;第二次调用函数, a = a + 1=3+1=4, b = b + 1=0+1=1, c = c + 1=1+1=2, fun_s = a + b + c=7;第三次调用函数, a = a +
29、 1=3+1=4, b = b + 1=0+1=1, c = c + 1=2+1=3, fun_s = a + b + c=9。故选择 C项。 40 【正确答案】 A 【试题解析】 列表框的 SelCount用于读取列表框中所选项的数目。此题中,将所选项目数目赋值给 m。 ListCount是列表框中表项的数目,表项的排列从 0开始,最后一项的序号为 ListCount-1,故第一个 For循环初始语句应该改为 For i = 0 To List1.ListCount - 1,故 A项正确。 二、基本操作题 41 【正确答案】 步骤 1:新建一个窗体,按照题目要求建立形状控件、标签控件及文本框
30、控件并设置其属性,如图 3 27所示。程序中用到的控件及属性见表3 36。 步骤 2:渊试并运行程序,关闭程序后按题目要求存 盘。 (2)步骤 1:新建一个窗体,按照题目要求建立控件并设置其属性,如表 3 37所示。步骤 2:编写程序代码。Private Sub Form C1ick() Labe11 Visible=TrueEnd SubPrivate Sub Form Load() Forml Caption=“标签 “End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 【试题解析】 (1)Shape属性用来设置形状控什的形状。其取值及边框形状如下。取 0值:矩形,默认设
31、置;取 1:正方形;取 2:椭圆;取 3:圆; 取 4:圆角矩形;取 5:圆角正方形。 (2)通过标签的 Name、 Caption和 FontSize属性设置标签的名称、标题和字体大小,通过设置标签的 Visible属性为 False,使标签初始为不可见。编写适当的程序,在 FormLoad事件过程中,窗体的 Caption属性值立即变为 “标签 ”,在FormClick事件过程中单击窗体时,设置标签的 Visible属性为 True显示标签。 三、简单应用题 42 【正确答案】 步骤 1:新建一个窗体,按照题目要求建立名称为 “Text1”的文本框控件及一个弹出 式菜单并设置菜单属性,程序
32、中用到菜单属性见表 3 32。步骤 2:打开代码编辑窗口,在指定位置编写如下代码。 Private Sub M1 Click() Text1 FontBold=True设置字体为加粗 End SubPrivate Sub M2 Click() Text1 FontItalic=True设置字体为斜体 End SubPrivate Sub M3 Click() Text1 FontUnderline=True为文字加下划线 End Sub Private Sub Text1 MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button=2 Then判断是否执行该事件 Me PopupMenu