1、二级 VISUAL+BASIC 笔试 31 及答案解析(总分:90.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.有关菜单的说法不恰当的是(分数:2.00)A.菜单与窗体无关,是对立的B.菜单总是于窗体有关,每个菜单都依附于一定的窗体C.菜单分为下拉式菜单和弹出式菜单D.在 Visual Basic 中有专门的设计菜单环境,那就是菜单编辑器2.公司中有多个部分和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是(分数:2.00)A.多对多B.一对一C.多对一D.一对多3.有如下事件过程,当同时按下转换键 Ctrl 和功能键
2、F6 时,最后输出的信息是 Const ShiftKey=1 Const CtrlKey=2 Const Key_F5=n-m(分数:2.00)A.-3 3B.5-9C.3-3D.-6520.希尔排序属于(分数:2.00)A.交换排序B.归并排序C.选择排序D.插入排序21.下列叙述中,错误的是(分数:2.00)A.数据的存储结构与数据处理的效率密切相关B.数据的存储结构与数据处理的效率无关C.数据的存储结构在计算机中所占的空间不一定是连续的D.一种数据的逻辑结构可以有多种存储结构22.下列程序段的执行结果为 a=1 b=2 For I=1 To 3 f=a * b a=b b=f Print
3、 f Next I(分数:2.00)A.2 3 6B.2 4 8C.2 3 4D.2 2 823.线性表若采用链式存储结构时,要求内存中可用存储单元的地址(分数:2.00)A.必须是连续的B.部分地址必须是连续的C.一定是不连续的D.连续不连续都可以24.以下为 Visual Basic 学习版的控件的是(分数:2.00)A.数据绑定控件B.ActiveX 控件C.自动化管理器D.报表控件25.在窗体上画一个命令按钮,然后编写如下程序: Private Sub Commandl_Click( ) Dim a AS Integer,b As Integer a=15 b=2 t N(a,b) E
4、nd Sub Function N(x As Integer,y As Integer) As Integer N=IIf(x)y,x,y) End Function 程序运行后,单击命令按钮,输出结果为(分数:2.00)A.1B.2C.15D.826.下列叙述中,不属于结构化分析方法的是(分数:2.00)A.面向数据流的结构化分析方法B.面向数据结构的 Jackson 方法C.面向数据结构的结构化数据系统开发方法D.面向对象的分析方法27.详细设计的结果基本决定了最终程序的(分数:2.00)A.代码的规模B.运行速度C.质量D.可维护性28.在待排序的元素序列基本有序的前提下,效率最高的排序
5、方法是(分数:2.00)A.冒泡排序B.选择排序C.快速排序D.归并排序29.在 PasswordChar 属性中设置#,但运行时仍显示文本内容,原因是(分数:2.00)A.文本框的 Locked 属性设置为 FalseB.文本框的 Locked 属性设置为 TreeC.文本框的 Multiline 的属性设置为 FasleD.文本框的 Multiline 的属性设置为 True30.以下程序运行后,单击按钮输出结果是 Private Sub Commandl_Click( ) Dim x As Integer,y As Integer,z As Integer X=4:y=2: Z=3 Ca
6、ll Gopd(x,x,z) Print x;X;Z Call Gopd(x,y,y) Print x;y;y End Sub Private Sub Gopd(x As Integer,y As Integer,z As Integer) X=3 * Z + 1 y=2 * z z=x + y End Sub(分数:2.00)A.6 6 12 7 11 11B.8 5 10 5 11 11C.9 6 12 9 10 15D.8 10 10 5 9 1031.有如下程序: Private Sub Commandl_Click( ) Dim i As Integer For i=1 To 2 D
7、S Next i End Sub Sub DS( ) Dim x As Integer,m As String Static y,n X=X + 1 y=y + 1 m=m n-m(分数:2.00)A.-3 3 B.5-9C.3-3D.-65解析:解析:把程序具体分析一下,可得:程序开始时分别执行 m,n 赋值 5,- 6。If 语句 Not m0 相当于 m=0,现在 m 得值为 5 比 0 大,所以条件值为 False,执行 Else 语句 n=m+3,此时 n 为 8,执行Print 方法,即输出 m-n 和 n-m 的值,m-n=-3, nm=3,所以最后输出结果应该如选项 A)所示。
8、20.希尔排序属于(分数:2.00)A.交换排序B.归并排序C.选择排序D.插入排序 解析:解析:希尔排序的基本思想是把记录按下标的一定增量分组,对每组记录使用插入排序,随增量的逐渐减小,所分成的组包含的记录越来越多,到增量的值减小到 1 时,整个数据合成一组,构成一组有序记录,故其属于插入排序方法。21.下列叙述中,错误的是(分数:2.00)A.数据的存储结构与数据处理的效率密切相关B.数据的存储结构与数据处理的效率无关 C.数据的存储结构在计算机中所占的空间不一定是连续的D.一种数据的逻辑结构可以有多种存储结构解析:解析:一般来说,一种数据结构根据需要可以表示成多种存储结构。常用的存储结构
9、有顺序、链接、索引等,而采用不同的存储结构,其数据处理的效率是不同的;一个数据结构中的各数据元素在计算机存储空间中的位置关系与逻辑关系是有可能不同的。22.下列程序段的执行结果为 a=1 b=2 For I=1 To 3 f=a * b a=b b=f Print f Next I(分数:2.00)A.2 3 6B.2 4 8 C.2 3 4D.2 2 8解析:解析:本题考查的是 For 循环结构语句,程序段的运行过程为:开始 a=1,b=2。For 循环中步长缺省值为 1,循环变量 I 的初值为 1,终值为 3,所以此循环结构可以循环 3 次。 第一次循环后,结果为:f=2,a=2,b=2;
10、 第二次循环后,结果为:f=4,a=2,b=4; 第三次循环后,结果为:f=8,a=4,b=8; 所以每循环一次,便输出 f 当前值,循环 3 次即便输出 3 个 f 值分别为 2,4,8。23.线性表若采用链式存储结构时,要求内存中可用存储单元的地址(分数:2.00)A.必须是连续的B.部分地址必须是连续的C.一定是不连续的D.连续不连续都可以 解析:解析:在链式存储结构中,存储数据结构的存储空间可以是连续的,也可以是不连续的,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致。24.以下为 Visual Basic 学习版的控件的是(分数:2.00)A.数据绑定控件 B.ActiveX
11、 控件C.自动化管理器D.报表控件解析:解析:Visual Basic 学习版中包括内部控件、网格控件、数据绑定控件和 Tab 对象,所以数据绑定控件是 Visual Basic 学习版中的控件;报表控件为专业版中的控件;而自动化管理器是企业版的控制系统。25.在窗体上画一个命令按钮,然后编写如下程序: Private Sub Commandl_Click( ) Dim a AS Integer,b As Integer a=15 b=2 t N(a,b) End Sub Function N(x As Integer,y As Integer) As Integer N=IIf(x)y,x,
12、y) End Function 程序运行后,单击命令按钮,输出结果为(分数:2.00)A.1B.2C.15 D.8解析:解析:事件过程 N 的作用是输出两个数中最大的,它调用了 IIF 函数,条件部分是(xy),如果满足,那么 N 的值即为 x 的值,否则为 y 的值。在 Sub 过程中,定义了两个变量 a,b,并赋给它们初值15,2,并调用 Print 函数,输出 N(a,b)的值,因为 xy,所以输出 15。26.下列叙述中,不属于结构化分析方法的是(分数:2.00)A.面向数据流的结构化分析方法B.面向数据结构的 Jackson 方法C.面向数据结构的结构化数据系统开发方法D.面向对象的
13、分析方法 解析:解析:常见的需求分析方法有结构化分析方法和面向对象的分析方法两类。其中结构化分析方法又包括面向数据流的结构化分析方法(SAStructured analy sis),面向数据结构的 Jackson 方法(JSD-Jackson system development method)和面向数据结构的结构化数据系统开发方法(DSSDData structured system development method)。27.详细设计的结果基本决定了最终程序的(分数:2.00)A.代码的规模B.运行速度C.质量 D.可维护性解析:解析:详细设计阶段的根本目标是确定应该怎样具体的实现所要求
14、的系统,但详细设计阶段的任务还不是具体的编写程序,而是要设计出程序的“蓝图”,以后程序员将根据这个蓝图写出实际的程序代码,因此,详细设计阶段的结果基本上就决定了最终的程序代码的质量。28.在待排序的元素序列基本有序的前提下,效率最高的排序方法是(分数:2.00)A.冒泡排序 B.选择排序C.快速排序D.归并排序解析:解析:从平均时间性能而言,快速排序最佳,其所需时间最少,但快速排序在最坏情况下的时间性能不如堆排序和归并排序。当序列中的记录基本有序或元素个数较少时,冒泡排序和简单选择排序为最佳排序方法,故本题答案应该为选项 A)。29.在 PasswordChar 属性中设置#,但运行时仍显示文
15、本内容,原因是(分数:2.00)A.文本框的 Locked 属性设置为 FalseB.文本框的 Locked 属性设置为 TreeC.文本框的 Multiline 的属性设置为 FasleD.文本框的 Multiline 的属性设置为 True 解析:解析:选项 A)和 B)中,Locked 属性是决定控件是否失效,不符合本题的本意;而 MultiLine 属性决定文本框是否可以输入多行文本,如果设置为 True,则 Pass- wordChar 失效,所以选项 C)错误,选项D)正确。30.以下程序运行后,单击按钮输出结果是 Private Sub Commandl_Click( ) Dim
16、 x As Integer,y As Integer,z As Integer X=4:y=2: Z=3 Call Gopd(x,x,z) Print x;X;Z Call Gopd(x,y,y) Print x;y;y End Sub Private Sub Gopd(x As Integer,y As Integer,z As Integer) X=3 * Z + 1 y=2 * z z=x + y End Sub(分数:2.00)A.6 6 12 7 11 11 B.8 5 10 5 11 11C.9 6 12 9 10 15D.8 10 10 5 9 10解析:解析:第一次调用被调过程
17、 Gopd,主调过程把实参 x,x,z 的地址分别传给形参 x,y,z,此时形参 x,y,z 值分别为 4,4 和 3,执 行语句 x=3 * z+1 后,形参 x 值变为 10,此时相对应的实参 x 也变为10 执行语句 y=2*z 后,形参 y 值变为 6,则相对应的实参 x 值变为 6;执行 z=x+y 后 ,形参 z 值应为12,当然这次调用后,程序代码输出的数值为 6,6,12;第二次调用被调过程 Gopd,主调过程把实参x,x,z 的地址分别传给形 参 x,y,z,此时实参 x 的值为 6 而不是 1,所以此时形参 x,y,z 值分别为6,2 和 2,执行语句 x=3*z+1 后,
18、形参 x 值为 7,相对实参 x 值也相应的变 为 7;执行语句 y=2*z 后,形参 y 值变为 4,相应的实参 y 值也变为 4;执行 x=x+y 后,形参 z 值变为 11,相应的实参 y 的值变为11,而形参 y 和 z 的地址 相同,最后它们值都应为 11,所以此次调用后,程序输出的数值为 7,11 和11。31.有如下程序: Private Sub Commandl_Click( ) Dim i As Integer For i=1 To 2 DS Next i End Sub Sub DS( ) Dim x As Integer,m As String Static y,n X=
19、X + 1 y=y + 1 m=m &“*”:n=n&“#“ Print x,y,m,n End Sub 程序运行后,输出的结果是(分数:2.00)A.1 1 * #B.1 1 * #C.1 1 * # 1 1 * # 1 2 * #D.1 1 * # 1 1 * # 1 2 * # 解析:解析:当 i=1 时,调用函数过程 DS,由于 y,n 为静态变量值保存,执行 x =x+1;y=y + 1 后x=1,y=1 执行 m=m &“*“:n=n&“#“后,m=“*“,n =“#“;当 I=2 时同上,只是 y=2,n=“#“。输出结果如选项 D)所示。32.下列不属于静态测试方法的是(分数:
20、2.00)A.代码检查B.白盒法 C.静态结构分析D.代码质量度量解析:解析:静态测试包括代码检查、静态结构分析和代码质量度量等。其中白盒测试属于动态测试。33.下列关系运算的叙述中,正确的是(分数:2.00)A.投影、选择、连接是从二维表行的方向进行的运算B.并、交、差是从二维表的列的方向来进行运算C.投影、选择、连接是从二维表列的方向进行的运算 D.以上 3 种说法都不对解析:解析:在关系模型的数据语言中,一般除了运用常规的集合运算(并、交、差、笛卡尔积等),还定义了一些专门的关系运算,如投影、选择、连接等。前者是将关系 (即二维表)看成是元组的集合,这些运算主要是从二维表的行的方向来进行
21、的。后者是从二维表的列的方向来进行运算的。34.当一个命令按钮的 Default 属性为 True 时,按何键与单击该命令按钮作用相同(分数:2.00)A.InsertB.回车 C.BreakD.Shift解析:解析:在一个窗体中,只能有一个命令按钮的 Default 属性设为 True,当一个命令按钮的 Default属性被设置为 True 时,单击该命令按钮与按回车键的作用是相同的。35.下列程序段,在运行时最后输出的内容是 a=2 c=3 AAA: c=c * a If c10 Then Print c GoTo AAA Else Print“10 以内的奇数显示完毕” End If(分
22、数:2.00)A.3B.7C.9D.10 以内的奇数显示完毕 解析:解析:在本题中使用了 If 语句与 GoTo 语句,来控制结构。当 c10 时输出 c,并继续运行;当大于 10 时,显示“10 以内的奇数显示完毕。”并结束程序。因为 c =c*a,c 和 a 都是正数,总有大于 10 的时候,所以最后输出的一定是“10 以内的奇数显示完毕”。二、B填空题/B(总题数:10,分数:20.00)36.用链表表示线性表的突出优点是 【1】 。(分数:2.00)填空项 1:_ (正确答案:(1)【1】便于插入和删除操作)解析:解析:为了克服顺序表中插入和删除时需要移动大量数据元素的缺点,引入了链式
23、存储结构。链表表示线性表的突出优点是插入和删除操作方便,不必移动数据元素,执行效率高。37.子程序通常分为两类: 【2】 和函数,前者是命令的抽象,后者是为了求值。(分数:2.00)填空项 1:_ (正确答案:(2)【2】过程)解析:解析:当程序之间发生调用关系时,调用命令所在的代码段被称为主程序,被调用的代码段被称为子程序。子程序是对功能的抽象,可分为过程和函数两类,两者的区别是函数是通过函数名来返回值的,而过程只能通过形式参数或对全局变量进行修改以返回值。38.软件的 【3】 设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。(分数:2.00)填空项 1:_ (正确答案:(3)【
24、3】概要)解析:39.对软件是否能达到用户所期望的要求的测试称为 【4】 。(分数:2.00)填空项 1:_ (正确答案:(4)【4】有效性测试)解析:40.实体之间的联系可以归结为一对一联系、一对多(或多对多)的联系与多对多联系。如果一个学校有许多教师,而一个教师只归属于一个学校,则实体集学校与实体集教师之间的联系属于 【5】 的联系。(分数:2.00)填空项 1:_ (正确答案:(5)【5】一对多(或 1:N))解析:41.下述程序段在运行时的显示结果是 【6】 。 Cls x=134 + 8 Print Len(x)(分数:2.00)填空项 1:_ (正确答案:(6)【6】4)解析:解析
25、:在本题中考查了 Len(x)函数,它的功能是测试字符串的长度,也可以测试变量的存储空间,它的自变量可以是字符串,也可以是变量名。本题中 x=934,四位数字和一个小数点位,共 4 位,所以输出结果应该是 4。42.要使标签的背景样式为不透明,应将 BackStyle 属性设置为 【7】 。(分数:2.00)填空项 1:_ (正确答案:(7)【7】1)解析:解析:BackStyle 属性用来指定标签的背景样式是否透明,该属性可以取两个值:0 和 1。当为 0时,标签为“透明”的;当值为 1 时,标签将覆盖背景。43.建立随机文件 Workersdat。存取职工的姓名和职工号,然后把该文件中的数
26、据读出显示。请在空白处填入适当的语句。 Type Worker name As String*8 number As Integer End Type Open“e:/Workersdat“For Random As #1 Len=Len(Workerl) Workerlname=“zn“:Worker1number=100# 【8】 Close #1 Open“Workersdat“For Random As #1 Len=Len(Worker1) 【9】 Print“Worker1:“,Worker1name Print “Worker1:“,Worker1number Close #1(
27、分数:2.00)填空项 1:_ (正确答案:(8)【8】Put #1,1,Worker1)解析:【9】Get#1,1,Worker1 解析:Put 命令是向随机文件写入数据,Get 命令是读取随机文件的数据。44.在窗体上有一个过程函数,然后编写如下事件程序,该过程的功能是用选择交换法将 10 个数排成升序,请在空白处填入适当的语句。 Sub SORT1 Dim a(1 To 10) For i=1 To 10 a(i)=Val(InputBox(“ “ ,“ “,0) Next i For i= 【10】 k=i For j= 【11】 If a(k)a(j)Then 【12】 If k i
28、 Then ba(k) a(k)a(i) a(i) =b End If Next j Next i For k=1 To 10 Print a(k) Next k End Sub(分数:2.00)填空项 1:_ (正确答案:(9)【10】1 To 9)解析:【11】I+1 To 10 【12】k=j 解析:由于是 10 个数所以 1 从 1 到 9,j 从 i 到 10 形成两次循环,如果是 100 个的话,那就是 1 从 1 到 99,j 从 1 到 100 形成两次循环;由于 a(k)a(j)所以要交换,以便排序。45.在窗体上添加一个文本框控件 Info,画一个命令按钮,当单击命令按钮显
29、示“保存文件”对话框,设置该对话框可用于保存文本文件(默认)和可执行文件(exe),然后在文本控件中显示保存的文件名。 Private Sub Command1_Click1 CommonDialog1Filter= 【13】 CommonDialog1FilterIndex= 【14】 CommonDialog1ShowSave InfoText= 【15】 End Sub(分数:2.00)填空项 1:_ (正确答案:(10)【13】“文本文件(*txt)|*.txt|可执行文件(exe)|*exe*”)解析:【14】1 【15】CommonDialog1FileTitle 解析:要设置通用
30、对话框可用于保存文本文件和 Word文档,需要设置通用对话框的 Filter 属性值,在这里应该填写的是“文本文件(*txt)|*txt|可执行文件(exe)| *.exe”;在文件类型栏内通过下拉列表选择要显示的文件类型,而最初默认显示的文件类型(过滤器)可以由 FilterIndex 属性来指定,该属性是一个整数。用 Filter 属性设置多个过滤器后,每个过滤器都有一个值,第一个过滤器的值为 1,第二个过滤器的值为 2,用 FilterIndex 属性可以指定作为默认显示的过滤器,对于本题要想使文本文件为默认的类型,只需设置 FilterIndex 属性值为 1 即可;选择了需要保存的文本文件或 Word 文档后,应该让文件的文件名显示在文本框中,因此需要将通用对话框中选择的文件赋给文本控件,即将对话框的 FileTitle 属性值赋给文本框的 Text 属性。