1、国家二级 VB机试(选择题)模拟试卷 31及答案与解析 一、选择题 1 下列链表中,其逻辑结构属于非线性结构的是 ( A)二叉链表 ( B)循环链表 ( C)双向链表 ( D)带链的栈 2 设循环队列的存储空间为 Q(1: 35),初始状态为 front=rear=35。现经过一系列入队与退队运算后, front=15, rear=15,则循环队列中的元素个数为 ( A) 15 ( B) 16 ( C) 20 ( D) 0或 35 3 下列关于栈的叙述中,正确的是 ( A)栈底元素一定是最后入栈的元素 ( B)栈顶 元素一定是最先入栈的元素 ( C)栈操作遵循先进后出的原则 ( D)以上说法均
2、错误 4 在关系数据库中,用来表示实体间联系的是 ( A)属性 ( B)二维表 ( C)网状结构 ( D)树状结构 5 公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是 ( A) 1: 1联系 ( B) m: 1联系 ( C) 1: m联系 ( D) m: n联系 6 ( A)选择 ( B)投影 ( C)自然连接 ( D)并 7 数据字典( DD) 所定义的对象都包含于 ( A)数据流图( DFD图 ) ( B)程序流程图 ( C)软件结构图 ( D)方框图 8 软件需求规格说明书的作用不包括 ( A)软件验收的依据 ( B)用户与开发人
3、员对软件要做什么的共同理解 ( C)软件设计的依据 ( D)软件可行性研究的依据 9 下面属于黑盒测试方法的是 ( A)语句覆盖 ( B)逻辑覆盖 ( C)边界值分析 ( D)路径覆盖 10 下面不属于软件设计阶段任务的是 ( A)软件总体设计 ( B)算法设计 ( C)制定软件确认测试计划 ( D)数据库设计 11 在编辑 VB应用 程序时,如果不小心关闭了属性窗口,则可以单击主窗口标准工具栏上的一个按钮直接打开属性窗口,这个按钮的图标是 12 下面关于 VB应用程序的叙述中正确的是 ( A) VB应用程序只能解释运行 ( B) VB应用程序只能编译运行 ( C) VB应用程序既能解释运行,
4、也能编译运行 ( D) VB应用程序必须先编译,然后解释运行 13 下面变量定义中错误的是 ( A) Public mod As Integer ( B) Static buf ( C) Dim ch As String * 10 ( D) Dim a!(-5 To -1) 14 语句: Print Asc(Chr$(Mid$(“98765432“, 4, 2) 的输出是 ( A) 65 ( B) A ( C) 8765 ( D) W 15 设变量 x中的值是 395,则下面语句的输出是 Print x 100 + (x Mod 100) 10) * 10 + (x Mod 10) * 100
5、 ( A) 935 ( B) 395 ( C) 539 ( D) 593 16 如果要定义一个窗体级变量,定义变量语句的位置应该是 ( A)在使用该变量的过程 中 ( B)在该窗体模块所有过程的前面 ( C)在该窗体模块所有过程的后面 ( D)在某个标准模块中 17 如果把程序的启动对象设置为: Sub Main,则 Sub Main过程 ( A)只能写在 Form1窗体中代码的最前面 ( B)可以写在 Form1窗体中代码的任何位置 ( C)只能写在某个标准模块的代码中 ( D)可以写在任何窗体或标准模块的代码中 18 设有下面的程序段: x = InputBox(“请输入一个整数 “) R
6、eDim a(x) For k = x To 0 Step -1 a(k) = k Next k 一般,在这段程序之前应先进行数组 a的定义。下面定义语句中正确的是 A) B) C) D) 答案: ( A) Dim a(100) As Integer ( B) Dim a() As Integer ( C) Dim a As Integer ( D) Dim a(0 To 100) As Integer 19 设有以下过程: Private Sub proc(x As Integer, Optional y As Integer) Print x, y End Sub 针对此过程,下面正确的过
7、程调用语句是 ( A) Call proc(a!, 23) ( B) Call proc x%, 12 ( C) proc b% ( D) x = proc(12) 20 下面语句中能够打开随机文件的是 ( A) Open “file.txt“ For Random As #1 ( B) Open “file.txt“ For Input As #1 ( C) Open “file.txt“ For Output As #1 ( D) Open “file.txt“ For Append As #1 21 文本框的 Locked属性被设置为 True后产生的效果是 ( A)光标不能进入文本框
8、( B)不能使文本框中的文本左右滚动 ( C)不能修改文本框中的文本 ( D)在程序中不能引用文本框的内容 22 下面关于直线控件的叙述中正确的是 ( A)它的 X1、 X2属性值必须满足 X1 c Or a + c b Or b + c a Then Print “可以构成一个三角形 “ Else Print “不能构成三角形 “ End If ( C) If a + b = c Or a + c = b Or b + c = a Then Print “不能构成三角形 “ Else Print “可以构成一个三角形 “ End If ( D) If a + b m Then n = a(k
9、) End If Next k Print n End Sub 程序运行时的输出是 ( A)数组中最大的数(即 98) ( B)数组中最小的数(即 12) ( C)数组中第 2大的数(即 87) ( D)数组中第 1个 数(即 22) 35 设有下面程序代码: Private Sub Command1_Click() Dim str As String, ch As String str = “Visual Basic Programming“ ch = “a“ n = fun(ch, str) Print str, n End Sub Private Function fun(ch As S
10、tring, str As String) As Integer Dim strbuf As String, c As String, n As Integer For k = 1 To Len(str) c = Mid$(str, k, 1) If c ch Then strbuf = strbuf Next k End Sub 程序运行时的输出是 ( A) 27 24 41 64 98 58 ( B) 64 24 98 27 58 41 ( C) 24 27 41 58 64 98 ( D) 98 64 58 41 27 24 37 由高中数学可知,对于连续函数 f(x),若 f(x1)与
11、 f(x2)值的符号相反,则在 x1和 x2之间必存在 x0,使得 f(x0)=0(该点称为 “零点 “)。 设有 VB函数: Private Function f(x As Single) As Single 可以返回 f(x)的值(函数体没有给出)。下面程序的功能是从键盘输入 2个实数 x1、 x2,判断在 x1、 x2之间是否存在零点。 Private Sub Command1_Click() Dim x1 As Single, x2 As Single x1 = InputBox(“请输入一个实数 x1“) x2 = InputBox(“请再输入一个实数 x2“) If ( _ ) T
12、hen Print “在 “; x1; “与 “; x2; “之间存在零点 “ Else Print “不能确定在 “; x1; “与 “; x2; “之间是否存在零点 “ End If End Sub Private Function f(x As Single) As Single End Function 为使上面程序可以实现该功能,程序代码中横线处应填写的代码是 ( A) f(x1) 0 Or f(x2) 0 ( B) f(x1) 0 And f(x2) 0 ( C) f(x1) * f(x2) 0 ( D) f(x1) * f(x2) 0 38 设窗体上有 3个图像框: Image1
13、、 Image2、 Image3,并有下面的程序代码: Private Sub Form_Load() Image1.Picture = LoadPicture(“LEAF.bmp“) Image2.Picture = LoadPicture(“OPEN.bmp“) Image3.Visible = False End Sub Private Sub Image1_Click() Image2.Picture = Image1.Picture End Sub Private Sub Image2_Click() Image3.Picture = Image2.Picture Image2.Pi
14、cture = Image1.Picture Image1.Picture = Image3.Picture End Sub 在程序运行期间单击 Image2,则在窗体上看到的结果是 ( A)在 Image3中显示 Image2中的图片 ( B) Image1、 Image2中原有图片被交换了 ( C) Image1、 Image2中都是原来 Imege1中的图片 ( D) Image1、 Image2中都是原来 Imege2中的图片 39 设窗体上有一个名称为 List1的列表框和一个名称为 Check1的复选框数组(下标从 0开始)。程序运行时,单击某个复选框,如果列表 框中没有该复选框的
15、标题,则把该复选框的标题添加到列表框中,否则从列表框中把该复选框标题删除。 Private Sub Check1_Click(Index As Integer) For k = 0 To List1.ListCount - 1 If Check1(Index).Caption = List1.List(k) Then Exit For End If Next k If k List1.ListCount Then List1.RemoveItem k Else List1.AddItem_ End If End Sub 为使上面程序可以实现该功能,程序代码中横线上应该填入的代码是 ( A) k
16、 ( B) Check1.Caption ( C) Check1(k) ( D) Check1(Index).Caption 40 窗体上有一个名称为 Shape1并显示为圆的形状控件(其 Width和 Height属性值相等),一个名称为 Timer1的计时器,并有下面程序代码: Dim r As Single, flag As Integer Private Sub Form_Load() r = Shape1.Width Timer1.Enabled = True Timer1.Interval = 500 End Sub Private Sub Timer1_Timer() If fl
17、ag = 0 Then Shape1.Width = Shape1.Width - 10 If Shape1.Width = 100 Then flag = 1 End If Else Shape1.Width = Shape1.Width + 10 If Shape1.Width = r Then flag = 0 End If End If End Sub 运行程序后产生的结果是 ( A)圆逐渐缩小,再逐渐增大,然后再逐渐缩小,依此往复 ( B)圆一直在缩小 ( C)圆每隔 0.5秒向右移动一次 ( D)圆每隔 1秒向下移动一次 国家二级 VB机试(选择题)模拟试卷 31答案与解析 一、选
18、择题 1 【正确答案】 A 【试题解析】 在定义的链表中,若只含有一个指针域来存放下一个元素地址,称这样的链表为单链表或线性链表。带链的栈可以用来收集计算机存储空间中所有空闲的存储结点,是线性表。在单链表中的结点中增加一个指针域指向它的直接前件,这样的链表,就称为双向链表(一个结点中含有两个指针),也是线性链表。循环链表具有单链表的特征,但又不需要增加额外的存贮空间,仅对表 的链接方式稍做改变,使得对表的处理更加方便灵活,属于线性链表。二叉链表是二叉树的物理实现,是一种存储结构,不属于线性结构。答案为 A选项。 2 【正确答案】 D 【试题解析】 在循环队列中,用队尾指针 rear指向队列中的
19、队尾元素,用排头指针 front指向排头元素的前一个位置。在循环队列中进行出队、入队操作时,头尾指针仍要加,朝前移动。只不过当头尾指针指向向量上界时,其加操作的结果是指向向量的下界。由于入队时尾指针向前追赶头指针,出队时头指针向前追赶尾指针,故队空和队满时,头尾指针均相等。答案为 D选项。 3 【正确答案】 C 【试题解析】 栈顶元素总是后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。栈的修改是按后进先出的原则进行的。因此,栈称为先进后出表,或 “后进先出 “表,所以选择C。 4 【正确答案】 B 【试题解析】 关系模型实体间的联系采用二维
20、表来表示,简称表。选项 C为网状模型实体间的联系,选项 D为层次模型实体间的联系,选项 A属性刻画了实体 5 【正确答案】 C 【试题解析】 两个实体集间的联系实际上是实体集 间的函数关系,主要有一对一联系( 1:1)、一对多联系( 1:m)、多对一联系( m:1)、多对多联系( m:n)。对于每一个实体部门,都有多名职员,则其对应的联系为一对多联系( 1:m),答案选 C。 6 【正确答案】 A 【试题解析】 由关系 R到关系 S为一元运算,排除 C和 D。关系 S是关系 R的一部分,是通过选择之后的结果,因此选 A。 7 【正确答案】 A 【试题解析】 在数据流图中,对所有元素都进行了命名
21、,所有名字的定义集中起来就构成了数据字典。因此选 A,而 B, C, D都不符合。 8 【正确答案 】 D 【试题解析】 软件需求规格说明书是需求分析阶段的最后成果,是软件开发的重要文档之一。 软件需求规格说明书有以下几个方面的作用。 便于用户、开发人员进行理解和交流, B正确; 反映出用户问题的结构,可以作为软件开发工作的基础和依据, C正确; 作为确认测试和验收的依据, A正确。 9 【正确答案】 C 【试题解析】 黑盒测试不关心程序内部的逻辑,只是根据程序的功能说明来设计测试用例。在使用黑盒测试法时,手头只需要有程序功能说明就可以了。黑盒测试法分等价类划分法、边界值分析法和错误推测法,答
22、案 为 C。而 A、 B、 D均为白盒测试方法。 10 【正确答案】 C 【试题解析】 从技术观点上看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。所以 A、 B、 D正确, C为软件测试阶段的任务。 11 【正确答案】 D 【试题解析】 按 F4键,或单击工具栏中 “属性窗口 “ 按钮,或选取 “视图 “菜单中的 “属性窗口 “子菜单,均可打开属性窗口。 12 【正确答案】 C 【试题解析】 VB程序有两种运行方式,即解释方式与编译方式。 13 【正确答案】 A 【试题解析】 变量名的命名规 则是: 255个字符以内,第一个字符是字母,其后可以是字母、数字和下划线的组合,最后一个
23、字符也可以是类型说明符。通常使用具有一定含义的变量名,可以帮助说明功能,简化调试过程。保留字不能作为变量名。选项 A)中的 mod为保留字,所以选项 A)错误。 14 【正确答案】 A 【试题解析】 Mid$(字符串 ,p,n)从第 P个字符开始 ,向后截取 n个字符。 Chr$()是求 ASCII字符的函数 ,格式是 Chr$(表达式 ),其中 “表达式 “应该是合法的ASCII码值, Chr$()函数把 “表达式 “的值转换为相应的 ASCII字符。 Asc() ,求字符串表达式的第一个字符的 ASCII 编码,函数返回值类型为 Integer。 15 【正确答案】 D 【试题解析】 整除
24、运算 ()的结果是商的整数部分。例如, 72表示整除,商为 4.5,结果取整数部分 3,不进行四舍五入。如果参加整除的操作数是浮点数,则先按四舍五入的原则将它们变成整数,然后再执行整除运算。例如,对于 8.52,先将 8.5变成 9再进行整除,商为 4.5,结果为 4。 取余运算 (Mod)是求两个整数相除后的余数。如果参加取余运算的操作数是浮点数, 则先按四舍五入的原则将它们变成整数,然后再执行取余运算。例如,对于8.52.1,先将 8.5变成 9,2.1变成 2,然后 9除以 2与 1,因此取余结果为 1。 算术运算符的优先级:先乘除,后加减;乘方优先于乘除;函数优先于乘方;Mod次于乘除
25、而优先于加减;括号最优先。 本题中, x 100结果为 3, (x Mod 100) 10) * 10结果为 90, (x Mod 10) * 100结果为 500,所以输出为 593,选项 D)正确。 16 【正确答案】 B 【试题解析】 窗体级变量,在窗体的 “通用声明 “段所有过程的前面用 Dim语句或用 Private语句声明的变量 ,可被本窗体的任何过程访问。 17 【正确答案】 C 【试题解析】 在运行窗体程序之前先执行一些操作,此时可以通过在标准模块中创建一个 Sub Main的子过程,不能在窗体模块中创建 Sub Main的子过程,然后在创建的 Sub Main过程中编写启动时
26、要执行的代码,每个工程只能有一个 Sub Main的子过程。 18 【正确答案】 B 【试题解析】 在 VB中定义动态数组通常分两步:首先在窗体层或标准模块中用Dim、 Private或 Public声明一个没有下标的数组 (括号不能省略 ),然后在过程中用 ReDim语句定义带下标的数组。根据题意,选项 B)正确。 19 【正确答案】 C 【试题解析】 ( 1)用 Call语句调用 Sub过程:语法: Call 过程名( 实参表列 ),实参的个数、类型和顺序,应该与被调用过程的形式参数相匹配,有多个参数时,用逗号分隔。( 2)把过程名作为一个语句来用:语法:过程名 实参1,实参 2 ,它与(
27、 1)的不同点是:去掉了关键字和实参列表的括号。根据题意,选项 C)正确。 20 【正确答案】 A 【试题解析】 打开随机文件的一般格式为 Open “文件名 “ For Random As #文件号 Len=记录长度 。 21 【正确答案】 C 【试题解析】 文本框控件 Locked属性用于设置是否锁定,如设置为 True,则不能编辑该文本框。 22 【正确答案】 D 【试题解析】 直线控件的( X1,Y1)、 (Y2,Y2)属性用来设置直线起点和终点的坐标。可以通过改变( X1, Y1) ,(X2, Y2)的值改变线的位置。 X1、 X2属性值不是必须满足 X1X2, 所以选项 A)错误;
28、如果显示的是一条垂直线,它的 X1、 X2属性的值相等,所以选项 B)错误;当 Line1.X1 = Line2.X2, Line1.Y1 = Line2.Y2时, 2条线有一端相连,所以选项 C)错误。 23 【正确答案】 A 【试题解析】 KeyPreview属性返回或设置一个值,以决定是否在控件的键盘事件之前激活窗体的键盘事件。键盘事件为: KeyDown、 KeyUp和 KeyPress。当KeyPreview的值为 True时窗体先接收键盘事件,然后是活动控件接收事件;为False时(缺省值 )活动控件接收键盘事件,而窗体不接收。 24 【正确答案】 B 【试题解析】 在一般情况下,
29、垂直滚动条的值由上往下递增,最上端代表最小值(Min),最下端代表最大值 (Max);水平滚动条的值从左到右递增,最左端代表最小值 (Min),最右端代表最大值 (Max),其取值范围为 32768 32768。 25 【正确答案】 C 【试题解析】 List1.Selected()返回的是一个项目的选择状态,返回的是布尔值 ; List1.ListIndex返回的是列表框 List1中当前选择项目的索引号码; List属性的作用是罗列或设置表项中的内容。 26 【正确答案】 C 【试题解析】 通用对话框 (CommonDialog)提供诸如打开文件、保存文件、设置打印选项、选择颜色和字体、显
30、示帮助等操作的一组标准对话框,该控件运行时不可见。通用对话框的 Action属性用于设置被打开对话的类型。 Action属性见下表。 27 【正确答案】 A 【试题解析】 显示弹出式菜单使用 PopupMenu方法。 28 【正确 答案】 A 【试题解析】 实现对象的自动拖放应设置 DragMode=1。 29 【正确答案】 A 【试题解析】 把 Form1上文本框中的内容复制到 Form2上的文本框中,所以应该在 Form2中添加语句: Text1 = Form1.Text1。 30 【正确答案】 D 【试题解析】 VB中,窗体和图片框具有 CurrentX、 CurrentY属性,经常用这
31、两个属性来设置当前绘图点。 VB中在图片框特定位置显示文本: Picture1.CurrentX =x座标 设置当前 X方向座标 Picture1.CurrentY =y座标 设置当前 Y方向座标 Picture1.Print “文本内容 “ 在当前位置输出文本 31 【正确答案】 B 【试题解析】 三角形构成的条件必须满足任意 2边之和大于第 3边,即 a, b, c任何两个的和必须大于第三个。 A)满足。 B)中的 Or是或,条件不满足。 C)和D)可以通过判断,均能进行正确判断。选 B)。 32 【正确答案】 C 【试题解析】 DoLoop Until 循环和 Do WhileLoop
32、循环都是满足执行条件时会一直执行循环体内的语句。 直到条件不满足退出。外循环 i初值为 1,条件是小于 5,每次循环加 2,则执行 2次。内循环条件 i=1时执行 10次, i=3时执行 6次。选 C)。 33 【正确答案】 A 【试题解析】 素数是大于 1的自然数,除了 1和本身不能被任何数整除的数。程序用 Do While循环对 n进行判断,如能被整除 isprime赋值为 False。否则赋值为True。随后的代码检测 isprime为 True时执行打印。因此 Do While判断条件中除了判断循环变量的上限还需要判断 isprime的值。根据执行条件可知,选 A)。 34 【正确答案
33、】 C 【试题解析】 n和 m都获得数组元素 a( 0)的值。在 For循环中, k=1时, a( k) =a( 1) =43, If条件满足, n=a( 0), m=a( 1)。 Else If判断的相同值的条件,只有在大于 n并且不等于 m的时候才赋值给 n。因此 n中存储的数永远比m小。而 m中的值是数组中最大的值。因此选 C)。 35 【正确答案】 B 【试题解析】 Mid$(A$,4,2)是为了与老版本的 VB兼容( $的作用是强制将函数的返回值设为字符型)。 &用来连接字符串。 If条件判断字符是否和输入的字符相等,相等 则 n加 1。选 B)。 36 【正确答案】 A 【试题解析
34、】 第一个 For循环对 x数组元素赋初值。被赋的值根据下标,从 b数组中获取。而 x的下标从数组 a中的元素获得。注意 Option Base 1的影响,下标从 1开始。因此 x数组中的值实际上是按照 a数组中值进行了一个重新排序。即 x( 1)是数组 b中第 4个元素的值: 27,其它值以此类推。选 A)。 37 【正确答案】 C 【试题解析】 判断 x1和 x2之间是否存在零点的条件是 x1和 x2符号相反。即 x1和 x2的积是负数。函数 f可以返回 f( x)的值,因此满 足上述条件的表达式是f(x1) * f(x2) 0,选 C)。 38 【正确答案】 B 【试题解析】 Form_Load过程中在图相框里载入相应图片。点击 Image2时,激发 Image2_Click事件,在事件中图片进行了交换。选 B)。 39 【正确答案】 D 【试题解析】 题干给出的是没有该复选框的标题时,把该复选框的标题添加到列表框中。 List1.AddItem可以为列表框添加新项。需要添加的项要根据索引添加。选 D)。 40 【正确答案】 A 【试题解析】 Form_Load 过程中设定 timer事件定时触发;在 Timer1_Timer过程中,圆圈先变小后变大,然后退出。下一次 timer事件触发时继续这个过程。因此,选 A)。