![]() ![]() |
|
2007年9月计算机二级VB模拟试题(2)及答案 | |
作者:佚名 文章来源:不详 点击数 更新时间:2008/4/18 16:09:22 文章录入:杜斌 责任编辑:杜斌 | |
|
|
一、单项选择题 (1) 算法的空间复杂度是指 (2) 用链表表示线性表的优点是 A) 存储结构 B) 物理结构 C) 逻辑结构 D) 物理和存储结构 解析: 数据结构概念一般包括3个方面的内容,数据的逻辑结构、存储结构及数据上的运算集合。数据的逻辑结构只抽象的反映数据元素之间的逻辑关系,而不管它在计算机中的存储表示形式。 (4) 结构化程序设计主要强调的是 (6) 检查软件产品是否符合需求定义的过程称为
(11) 窗体文件的扩展名是 A) .bas B) .cls C) .frm D) .res 解析:.bas为程序模块文件的扩展名;.cls为类模块文件的扩展名;.res为相关资源文件的扩展名,.frm为窗体文件的扩展名,所以选项C)是正确的。 (12) 下列可以启动Visual Basic的方法是 A) 打开"我的电脑",找到存放Visual Basic所在系统文件的硬盘及文件夹,双击"VB6.exe"图标 B) 在DOS窗口中,键入Visual Basic的路径,执行Visual Basic可执行文件 C) 利用"开始"菜单中的"程序"命令可启动Visual Basic D) A) 和C) 解析:启动Visual Basic有4种方式:打开"我的电脑",找到存放Visual Basic所在的系统文件的硬盘及文件夹,双击"VB6.exe"图标,即可进入Visual Basic编程环境;所以选项A)是正确的;利用"开始"菜单中的"程序"命令方式进入;所以选项C)也是正确的;使用"开始"菜单中的"运行"命令,在"打开"栏中键入VB6.exe的存放路径,单击"确定"按钮即可;把VB6.exe文件直接拖到桌面可建立启动Visual Basic的快捷方式,双击该执行文件即可。 (13) 关于货币型数据的说明,正确的是 A) 货币型数据有时可以表示成整型数据 B) 货币型数据与浮点型数据完全一样 C) 货币型数据是由数字和小数点组成的字符串 D) 货币型数据是小数点位置固定的实型数 解析:货币型数据是Visual Basic特有的一种数据结构,是专门用来表示货币数量的数据类型。货币型数据不能表示成整型数据的形式,这是使用"货币"数据的实际需要决定的。货币型数据是数值的,经常要进行各种运算,不能是字符串。货币型数据与浮点型数据都是带有小数点的数,但货币型数据小数点后的有效数位固定为4位。 (14) 在运行程序时,在文本框中输入新的内容,或在程序代码中改变Text的属性值,相应会触发到什么事件? A) GotFocus B) Click C) Change D) DblClick 解析:在本题的四个选项中,GotFocus是设置焦点事件,所以选项A)不合题意;Click是单击事件,不合题意;DblClick是双击事件,也不合题意;Change是改变文本框内容事件,只要文本框中的内容改变就会触发,故选项C)是本题的答案。 (15) 如果一个变量未经定义就直接使用,则该变量的类型为 A) Integer B) Byte C) Boolean D) Variant 解析:在Visual Basic中,系统提供了多种数据类型,有字符串类型、数值型、货币型、布尔型,日期型等,此外还有一种变体类型,Variant是一种特殊的数据类型,Variant变量中可以存放任何类型的数据,如数值、文本字符串、日期和时间等,向Variant变量赋值时不必进行任何转换,系统将自动进行必要的转换。如果变量未经定义就直接使用,则该变量为Variant类型。 (16) 根据变量的作用域,可以将变量分为3类,分别为 A) 局部变量、模块变量和全局变量 B) 局部变量、模块变量和标准变量 C) 局部变量、模块变量和窗体变量 D) 局部变量、标准变量和全局变量 解析:变量的作用域指变量的作用范围,根据变量的定义位置和使用的变量定义语句的不同,变量可以分为3类,即局部变量、模块变量和全局变量。局部变量是在过程(事件过程或通用过程) 内定义的变量,其作用域是它所在的过程,通常用来存放中间结果或用作临时变量;模块变量包括窗体变量和标准模块变量,窗体变量可用于该窗体内的所有过程,使用前必须先声明,也就是说,窗体层变量不能默认声明;全局变量也称全程变量,其作用域最大,可在工程的每个模块、每个过程中使用,和模块级变量类似,全局变量也在标准模块的声明部分声明,所不同的是全局变量必须用Public或Global语句声明,不能用Dim语句声明,更不能用Private声明;全局变量只能在标准模块中声明,不能在过程或窗体模块中声明。 (17) 标签控件能够显示文本信息,文本内容只能用什么属性来设置? A) Alignment B) Caption C) Visible D) BorderStyle 解析:标签(Label) 主要用来显示一小段不需要用户修改的文本,被显示文本内容只能由Caption属性来定义和修改,因此选项B)是正确的;选项A)确定标签标题的放置方式;选项C)决定程序运行后,控件是否在屏幕上显示出来;BorderStyle属性返回或设置对象的边框样式。 (18) 一个工程必须包含的文件的类型是 A) *.vbp *.frm *.frx B) *.vbp *.cls *.bas C) *.bas *.ocx *.res D) *.frm *.cls *.bas 解析:一个工程中可以包含7类文件,其中,工程文件、窗体文件和窗体的二进制数据文件是一个工程不可缺少的文件,这7类文件的扩展名及含义分别是: .vbp是Visual Basic Project的缩写,表示工程文件。 .frm是Form的缩写,表示窗体文件。 .frx笔试窗体的二进制数据文件。 .cls是class的缩写,表示类模块文件。 .bas是Basic的缩写,表示标准模块文件。 .ocx表示ActiveX控件的文件。 .res是resource的缩写,表示资源文件。 (19) 在Visual Basic中,要使标签的标题栏居中显示,则将其Alignment属性设置为 A) 0 B) 2 C) 1 D) 3 解析:本题考查的是标签的Alignment属性的设置。 Alignment属性用来设置标签中标题的位置,可将其设置为0,1,2,作用如下: 0:标题靠左显示(默认)。 1:标题靠右显示。 2:标题居中显示。 (20) 在Visual Basic中,组合框是文本框和什么的特性的组合? A) 复选框 B) 标签 C) 列表框 D) 目录列表框 解析:组合框是一个独立的控件,它具有列表框和文本框的功能,它可以像列表框一样,让用户通过鼠标选择需要的项目,也可以像文本框一样,用键入的方式选择项目。
(21) 当滚动条位于最左端或最上端时,Value属性被设置为 A) Min B) Max C) Max和Min之间 D) Max和Min之外 解析:一般情况下,垂直滚动条的值由上往下递增,最上端代表最小值,最下端代表最大值;水平滚动条的值从左到右递增,最左端代表最小值,最右端代表最大值。因此当滚动条位于最左端或最下端时,Value属性被设置为Min。 (22) 下面的数组声明语句中正确的是 A) Dim gg[1,5] As String B) Dim gg[1 To 5,1 To 5] As String C) Dim gg(1 To 5) As String D) Dim gg[1 :5,1: 5] As String 解析:在默认情况下无论是一维还是二维或更多维的数组其缺省下标都从0开始,但有时为了方便,用户可以自定义数组的上下界,那就得用关键字To来设置。例如:d(1 To 6),其含义就是一个名为d,上界为6,下界为1的数组。 (23) 下列说法正确的是 A) 任何时候都可以使用标准工具栏的"菜单编辑器"按钮打开菜单编辑器 B) 只有当代码窗口为当前活动窗口时,才能打开菜单编辑器 C) 只有当某个窗体为当前活动窗体时,才能打开菜单编辑器 D) 任何时候都可以使用"工具"菜单下的"菜单编辑器"命令,打开菜单编辑器 解析:在Visual Basic中,因为"菜单编辑器"命令是在"工具"菜单下,所以只有当某个窗体为当前活动窗体时,才能从"工具"菜单中选择"菜单编辑器"选项,打开菜单编辑器。 (24) 下列各选项说法错误的一项是 A) 文件对话框可分为两种,即打开(Open) 文件对话框和保存(Save As) 文件对话框 B) 通用对话框的Name属性的默认值为CommonDialogX,此外,每种对话框都有自己的默认标题 C) 打开文件对话框可以让用户指定一个文件,由程序使用;而用保存文件对话框可以指定一个文件,并以这个文件名保存当前文件 D) DefaultEXT属性和DialogTitle属性都是打开对话框的属性,但非保存对话框的属性 解析:文件对话框分为两种:即打开对话框和保存对话框,所以选项A)的正确;通用对话框的Name属性的默认值为CommonDialogX,此外,每种对话框都有自己的默认标题,所以选项B)正确;打开文件对话框可以让用户指定一个文件,由程序使用,而用保存文件对话框可以指定一个文件,并以这个文件名保存当前文件,所以选项C)正确;除DefaultEXT、DialogTitle属性是打开和保存对话框共有的,还有FileName、FileTitle、Filter、FilterIndex、Flags、InitDir、MaxFileSize、CancelError、HelpCommand、HelpContext和HelpFile属性,都是它们共有的,所以选项D)不正确。 (25) 用InputBox函数设计的对话框,其功能是 A) 只能接收用户输入的数据,但不会返回任何信息 B) 能接收用户输入的数据,并能返回用户输入的信息 C) 既能用于接收用户输入的信息,又能用于输出信息 D) 专门用于输出信息 解析:InputBox函数能接收用户输入的数据,并能返回用户输入的信息,不能用于输出信息。InputBox函数中的Prompt参数是在对话框中显示提示信息,这种提示信息是由用户确定的,不能把它当作输出信息的功能。 (26) 下列程序段的执行结果为 I=4 x=5 Do I=I + 1 x=x + 2 Loop Until I>=7 Print "I="; I Print "x="; x A) I=4x=5 B) I=7x=15 C) I=6x=8 D) I=7x=11 解析:此题用的是Do循环结构,其格式为: Do 语句块] [Exit Do] Loop Until 循环条件 此循环由于"先执行后检查",所以至少执行一次。本题中,程序运行到循环条件I>=7的值为True时才停止。所以当程序结束运行后I=7,x=11。 (27) 下列程序段的执行结果为 a=1 b=5 Do a=a + b b=b + 1 Loop While a < 10 Print a; b A) 1 5 B) 12 7 C) a b D) 10 25 解析:此题比较简单,开始a为1,b为5,执行Do语句,具体运行为:执行a=a+b,b=b+1语句后,a为6,b为6。这样运行到a=12,程序终止循环,此时b=7。 (28) 下列程序段的执行结果为 a=75 If a > 60 Then I=1 If a > 70 Then I=2 If a > 80 Then I=3 If a < 90 Then I=4 Print "I="; I A) I=1 B) I=2 C) I=3 D) I=4 解析:此题为If Then 结构的条件语句,如果a > 60 ,则I = 1;如果a > 70 ,则I = 2;如果a > 80 ,则I = 3;如果 a < 90,则I = 4;本题的条件是a=75,所以输出结果应该是I = 4。 (29) 有如下事件过程: Private Sub Command1_Click() b=10 Do Until b=-1 a=InputBox("请输入a的值") a=Val(A) b=InputBox("请输入b的值") b=Val(b) a=a * b Loop Print a End Sub 程序运行后,依次输入数值30,20,10,-1,输出结果为 A) 6000 B) -10 C) 200 D) -6000 解析:Do Until-Loop循环执行的规则是:先判断Do语句中的<条件>,若为真,则结束循环;若<条件>为假,则执行循环体。 本程序执行时,先判断条件"b=-1"是否为真,此时b为10,"b=-1"不成立,执行循环体。a和b分别取得InputBox函数接收到的值为30和20,做乘法后a的值为600。执行Loop后,返回Do语句再判断"b=-1"是否为真,此时b为20,"b=-1"不成立,继续执行循环体,a和b再次取得InputBox函数接收到的值为10和-1,做乘法后a的值为-10。执行Loop后,返回到Do语句判断"b=-1"是否为真,此时b=-1,"b=-1"条件成立,结束循环,把a的值打印出来。 (30) 下面程序段执行结果为 x=Int(Rnd() + 3) Select Case x Case 5 Print "excellent" Case 4 Print "good" Case 3 Print "pass" Case Else Print "fail" End Select A) excellent B) good C) pass D) fail 解析:本题中可以看到x = Int(Rnd()+ 3) 语句,其中Rnd用来产生随机数,其值在0~1之间,而在(Rnd()+3) 前面有Int进行强制转换,所以x为3,执行Print "pass"语句。
(31) 定义过程的格式中,Static关键字的作用是指定过程中的局部变量在内存中的存储方式。若使用了Static关键字,则 A) 每次调用此过程,该过程中的局部变量都会被重新初始化 B) 在本过程中使用到的,在其他过程中定义的变量也为Statci型 C) 每次调用此过程时,该过程中的局部变量的值保持在上一次调用后的值 D) 定义了该过程中定义的局部变量为"自动"变量 解析:Static关键字用于指定局部变量在内存中的存储方式。变量的存储方式有两种:静态的和自动的。静态存储方式是指当过程运行完毕后,变量所占的内存单元不释放,而变量的值被保存下来,该变量为静态变量。Static型变量所占存储控件只初始化一次,且变量的值在整个程序运行期间都存在;Static关键字对过程之外定义的变量没有影响;Static关键字是定义该过程中定义的局部变量为静态变量。 (32) 单击命令按钮时,下列程序的执行结果为 Private Sub Command1_Click() Dim x As Integer, y As Integer x=50: y=78 Call PPP(x, y) Print x; y End Sub Public Sub PPP(ByVal n As Integer, ByVal m As Integer) n=n \ 10 m=m \ 10 End Sub A) 08 B) 5078 C) 450 D) 7850 解析:在调用过程时,一般主调与被调过程之间有数据传递,即将主调过程的实参传递给被调用的过程,完成实参与形参的结合,然后执行被调过程,在Visual Basic中,实参与形参的结合有两种方式,即传址与传值。这两种方法的特点如下: 传址的结合过程时,当调用一个过程时,它将实参的地址传给形参,因此在被调用的过程中,对形参的任何操作都变成了对相应实参的操作,因此实参的值会随形参的改变而改变。 传值的结合过程时,当调用一个过程时,系统将实参的值复制给形参并断开了联系,被调用过程中的操作是在形参自己的存储单元中进行的,当过程调用结束时,这些形参所占用的存储单元也同时被释放,因此在过程中对形参的任何操作不会影响实参。而题中被调过程PPP中有两个形参,两者均为传值方式。主调过程分别把实参x、y 传递给PPP,所以当过程调用结束后,实参x、y的值都没有改变,最后输出的值应为50 78。 (33) 单击按钮时,以下程序运行后的输出结果是 Private Sub proc1(x As Integer, y As Integer, z As Integer) x=3 * z y=2 * z z=x + y End Sub Private Sub Command1_Click() Dim x As Integer, y As Integer, z As Integer x=1: y=2: z=3 Call proc1(x, x, z) Print x; x; z Call proc1(x, y, y) Print x; y; y End Sub A) 6 6 12 6 10 10 B) 9 5 10 5 10 10 C) 9 6 12 9 10 15 D) 9 10 10 5 4 10 解析:从整体上看,可得主调过程将两次调用过程Proc1后,实参的值将随形参变化而变化,现在分析一下这两次调用实参和形参是怎么变化的。 第一次调用被调过程proc1,主调过程把实参x,x,z的地址分别传给形参x,y,z,此时形参x,y,z值分别为1,1,3,执行语句x = 3 * z后,形参x值变为9,此时相对应的实参x也变为9,执行语句y = 2 * z后,形参y值变为6,则相对应的实参x值变为6。执行z = x + y后,形参z值应为12,当然这次调用后,程序代码输出的数值为6,6,12; 第二次调用被调过程proc1,主调过程把实参x,x,z的地址分别传给形参x,y,z。我们应注意一下,此时实参x的值为6而不是1,所以此时形参x,y,z值分别为6,2和2,执行语句x = 3 * z后,形参x值为6,相对实参x值也相应的变为6。执行语句y = 2 * z后,形参y值变为4,相应的实参y值也变为4,执行z = x + y后,形参z值变为10,相应的实参y的值变为10,而形参y和z的地址相同,最后它们值都应为10,所以此次调用后,程序代码将输出的数值为6,10和10。 (34) 单击命令按钮时,下列程序的运行结果为 二、填空题 (1) 数据的逻辑结构有线性结构和 【1】 两大类。
(9) 下列程序的输出结果为 【10】 。 num=2 While num <=3 num=num + 1 Print num Wend 解析: 程序先将2赋给num,然后执行While语句。 While循环语句的执行过程是:如果"条件"为真,则执行"语句块",当遇到Wend语句时,控制返回到While语句并对"条件"进行测试,如果仍然为真,则重复上述过程,直到"条件"为假。 起初num为2,所以小于3,条件为真,执行num=num+1语句,此时num为3,然后输出num的值即3,当程序执行num为3的时候,因为3等于3,所以执行num=num+1,此时num为4,输出num的值并退出循环。 (10) 以下是一个计算矩形面积的程序,调用过程计算矩形面积,请将程序补充完整。 Sub RecArea(L, W) Dim S As Double S=L * W MsgBox "Total Area is " & Str(S) End Sub Private Sub Command1_Click() Dim M, N M=InputBox("What is the L?") M=Val(M) 【11】 N=Val(N) 【12】 End Sub 解析: 程序通过RecArea来计算并输出矩形的面积,它有两个形式参数,分别为矩形的长和宽;在Sub事件过程中,从键盘上输入矩形的长和宽,调用InputBox函数分别将输入的数赋给M和B,所以【11】为N = InputBox("What is the W?") ;将M和N作为实参调用RecArea过程,它有两种书写方式,一种是把过程的名字放在一个Call语句中,格式为Call 过程名[(实际参数) ];另外一种是把过程名作为一个语句来使用,与第一种方式相比,它去掉关键字Call,去掉了参数列表,所以【12】为Call RecArea(M, N) 或RecArea(M, N)。 (11) 在KeyPress事件过程中,KeyAscii是所按键的 【13】 值。 解析: 当按下键盘上的某个键时,触发KeyPress事件过程,该事件用到的KeyAscii作为参数,此参数是一个预定义的变量,执行KeyPress事件过程时,KeyAscii是所按键的ASCII码。 (12) 有一个事件过程,其功能是:从已存在于磁盘上的顺序文件NM1.txt中读取数据,计算读出数据的平方值,将该数据及其平方值存入新的顺序文件NM2.txt中。请填空。 Private Sub Form_Click() Dim x As Single, y As Single Open "NM1.txt" For Input As #1 Open "NM2.txt" For Input As #2 Do While Not EOF(1) 【14】 Print x y=x ^ 2 【15】 Print y Loop Close #1, #2 End Sub 解析: 本题考查顺序文件的读写操作,事件过程中,顺序文件的打开和关闭语句都正确。循环语句使用也正确。事件过程的功能是:从NM1.txt中读取数据,向NM2.txt中写入数据。程序中没有对数据文件进行读写的语句,故空白处要填写的正是对顺序文件读数据和写数据的语句。 |
|
![]() ![]() |