计算机二级VB模拟试题1及答案.docx
《计算机二级VB模拟试题1及答案.docx》由会员分享,可在线阅读,更多相关《计算机二级VB模拟试题1及答案.docx(15页珍藏版)》请在冰豆网上搜索。
计算机二级VB模拟试题1及答案
2007年9月计算机二级VB模拟试题
(1)及答案
一、选择题
(1)在深度为5的满二叉树中,叶子结点的个数为
A)32
B)31
C)16
D)15
解析:
所谓满二叉树是指这样的一种二叉树:
除最后一层外,每一层上的所有结点都有两个叶子结点。
这就是说,在满二叉树中,层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点。
(2)若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是
A)bdgcefha
B)gdbecfha
C)bdgaechf
解析:
前序遍历的第一个结点a为树的根结点;中序遍历中a的左边的结点为a的左子树,a右边的结点为a的右子树;再分别对a的左右子树进行上述两步处理,直到每个结点都找到正确的位置。
(3)一些重要的程序语言(如C语言和Pascal语言)允许过程的递归调用。
而实现递归调用中的存储分配通常用
A)栈
B)堆
C)数组
D)链表
解析:
一些较流行的程序语言允许过程的递归调用。
递归调用就是过程调用本身。
递归实现的是:
当过程每一次执行后,都能返回到最近一次调用它的过程中。
这样各调用点之间形成一种后进先出关系,而栈结构正适合来存储这些调用点。
(4)软件工程的理论和技术性研究的内容主要包括软件开发技术和
A)消除软件危机
B)软件工程管理
C)程序设计自动化
D)实现软件可重用
解析:
软件工程的目标是,在给定的成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。
基于这一目标,软件工程的理论和技术性研究的内容主要包括:
软件开发技术和软件工程管理。
(5)开发软件时对提高开发人员工作效率至关重要的是
A)操作系统的资源管理功能
B)先进的软件开发工具和环境
C)程序人员的数量
D)计算机的并行处理能力
解析:
软件工程鼓励研制和采用各种先进的软件开发方法、工具和环境。
工具和环境的使用又进一步提高了软件的开发效率、维护效率和软件质量。
(6)在软件测试设计中,软件测试的主要目的是
A)实验性运行软件
B)证明软件正确
C)找出软件中全部错误
D)发现软件错误而执行程序
解析:
使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。
软件测试是为了发现错误而执行程序的过程。
测试要以查找错误为中心,而不是为了演示软件的正确功能。
(7)数据处理的最小单位是
A)数据
B)数据元素
C)数据项
D)数据结构
解析:
数据处理的最小单位是数据项;由若干数据项组成数据元素;而数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。
故正确答案为选项C)。
(8)索引属于
A)模式
B)内模式
C)外模式
D)概念模式
解析:
内模式(InternalSchema)又称物理模式(PhysicalSchema),它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径。
(9)下述关于数据库系统的叙述中正确的是
A)数据库系统减少了数据冗余
B)数据库系统避免了一切冗余
C)数据库系统中数据的一致性是指数据类型一致
D)数据库系统比文件系统能管理更多的数据
解析:
数据库系统的数据具有高共享性和低冗余性,但不能完全避免数据冗余;数据的一致性是指在系统中同一数据的不同出现应保持相同的值。
(10)数据库系统的核心是
A)数据库
B)数据库管理系统
C)模拟模型
D)软件工程
解析:
数据库管理系统(DatabaseManagementSystem,简称DBMS)是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,数据库管理系统是数据库系统的核心。
(11)下列说法错误的是
A)窗体文件的扩展名为.frm
B)一个窗体对应一个窗体文件
C)VisualBasic中的一个工程只包含一个窗体
D)VisualBasic中一个工程最多可以包含255个窗体
解析:
VisualBasic中的一个工程可以包括一个或多个窗体,最多不超过255个窗体,因此选项D)是正确的,选项C)是不正确;窗体述文件的扩展名是.frm,所以选项A)是正确的;一个窗体对应于一个窗体文件,所以选项B)也是正确的。
(12)下列四组控件属性中,属性值的类型不相同的一组是
A)Label控件的Enabled属性与TextBox控件的Enabled属性
B)OptionButton控件的Value属性与CheckBox控件的Value属性
C)Command控件的Default属性与Command控件的Cancel属性
D)Command控件的Visible属性与Form控件的Visible属性
解析:
CheckBox控件的Value属性取值是0、1或2;OptionButton控件的Value属性取值是True或False。
(13)下列方法中不能退出VisualBasic的是
A)按Alt+Q组合键
B)按下Alt+F组合键,然后按Esc键
C)打开"文件"菜单,执行"退出"命令
D)按F10键,然后按F键,再按X键
解析:
Alt+Q为退出VisualBasic的快捷键,所以选项A)是正确的;F10为激活菜单栏的快捷键,激活菜单栏,然后按F键选择"文件"菜单,再按X键选择"退出"命令按钮,可退出,所以选项D)正确;Alt+F为激活"文件"菜单的快捷键,打开快捷菜单后,相应的快捷命令在各命令选项后都有提示,所以选项B)不正确;打开"文件"菜单,执行"退出"命令,也是可以的,所以选项C)正确。
(14)任何控件都有的属性是
A)BackColor
B)Caption
C)Name
D)BorderStyle
解析:
本题的四个选项中只有选项C)Name属性适用于所有控件,其他只是适用于部分控件。
如:
对话框控件就没有BackColor和BorderStyle属性。
(15)可以实现从键盘输入一个作为双精度变量a的值的语句是
A)a=InputBox()
B)a=InputBox("请输入一个值")
C)a=Val(InputBox("请输入一个值"))
D)a=Val(InputBox())
解析:
InputBox函数的格式为:
InputBox(prompt[,default][,xpos,ypos][,helpfile,context])
其中prompt是一个字符串,用于提示用户输入,是在对话框中显示的信息,不可省略,故选项A)和选项D)不正确;Val(字符串)函数的功能是把自变量中的第一个字符串转换为数值,其中的数值是一个双精度的实数,所以正确答案为选项C);选项B)没有类型转换符,不正确。
(16)下列符号常量的声明中,不合法的是
A)ConstaAsSingle=1.1
B)Consta="OK"
C)ConstaAsDouble=Sin
(1)
D)ConstaAsInteger="12"
是:
Const常量名=表达式[,常量名=表达式]……,其中常量名中可以用类型说明符,需要注意的是,"表达式"中不能使用字符串连接运算符、变量及用户定义的函数或者内部函数。
(17)在VisualBasic中,要强制用户对所用的变量进行显式声明,这可以在哪里设置?
A)"属性"对话框
B)"程序代码"窗口
C)"选项"对话框
D)对象浏览器
解析:
要强制用户显式声明变量,可以单击"工具"菜单下的"选项"命令,打开"选项"对话框,在"编辑器"选项卡下,选中"要求变量声明"复选框即可。
这样在每次新建文件时,VisualBasic将OptionExplicit(选择显式)自动添加到全局变量或模块级变量的声明部分,或者也可以在声明部分直接输入这条语句。
这样就必须在使用变量前声明,否则将会发生出错信息;属性窗口是用来设置对象属性的;程序代码窗口是用来编辑事件过程的。
(18)下列语句中,获得列表框List1中项目个数的语句是
A)x=List1.ListCount
B)x=ListCount
C)x=List1.ListIndex
D)x=ListIndex
解析:
List控件的ListCount属性返回列表部分项目的个数。
(19)要获得当前驱动器应使用驱动器列表框的属性是
A)Path
B)Drive
C)Dir
D)Pattern
解析:
驱动器控件常用的属性是Drive,返回当前驱动器号。
(20)如果将文本框的MaxLength属性设置为0,则文本框中的字符不能超过
A)8K
B)16K
C)32K
D)64K
解析:
对于文本框的MaxLength属性的设置如下:
MaxLength属性用来设置允许在文本框中输入的最大字符数,如果将其设置为0,则在文本框中输入的字符不能超过32K,所以选项C)是正确的。
(21)当在滚动条内拖动滚动块时触发
A)KeyUp事件
B)KeyPress事件
C)Scroll事件
D)Change事件
解析:
本题考查的是滚动条事件的应用。
在VisualBasic中,与滚动条有关的事件是Scroll和Change事件。
当在滚动条内拖动滚动块时触发Scroll事件;改变滚动框的位置后,将触发Change事件。
Scroll事件用于跟踪滚动条中的动态变化,Change事件用于得到滚动条的最后的值。
(22)设有声明语句
Dimb(-1To10,2To9,20)AsInteger
则数组b中全部元素的个数
A)2310
B)2016
C)1500
D)1658
解析:
在本题中,Dimb(-1To10,2To9,20)AsInteger定义了一个三维数组,如果没有指定下界,缺省值是0,所以计算数组中的个数就容易了,表达式为:
(10-(-1)+1)×(9-2+1)×(20-0+1)=2016,所以选项B)是正确答案。
(23)设在窗体上有个文本框,然后编写如下的事件过程:
PrivateSubText1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
ConstAlt=4
ConstKey_F2=&H71
altdown%=(ShiftAndAlt)>0
f2down%=(KeyCode=Key_F2)
Ifaltdown%Andf2down%Then
Text1.Text="BBBBB"
EndIf
EndSub
上述程序运行后,如果按【Shift+F2】,则在文本框中显示得是
A)Alt+F2
B)BBBBB
C)随机出几个数
D)文本框平均内容无变化
解析:
此题是有关KeyDown事件的题目,KeyDown是当一个键被按下时所产生的事件,而KeyUp是松开被按的键时产生的事件,如果要判断是否按下了某个转换键,可以用逻辑运算符And。
例如:
先定义了下面3个符号常量:
ConstShift=1,ConstCtrl=2,ConstAlt=4;然后用下面的语句判断是否按下Shift、Ctrl、Alt键;
如果ShiftAndShift>0,则按下了Shift键;
如果ShiftAndCtrl>0,则按下了Ctrl键;
如果ShiftAndAlt>0,则按下了Alt键;
这里的Shift时KeyDown的第二个参数;此事件过程中的If后的条件语句如果为真,则是按下了Alt+F2,而本题目中是按下了Shift+F2,所以不执行Then语句,即文本框的内容无变化。
(24)设已经在"菜单编辑器"中设计了窗体的快捷菜单,其顶级菜单为Bs,取消其"可见"属性,运行时,在以下事件过程中,可以使快捷菜单响应鼠标右键菜单的是
A)PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,_
XAsSingle,YAsSingle)
IfButton=2ThenPopupMenuBs,2
EndSub
B)PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,_
XAsSingle,YAsSingle)
PopupMenuBs
EndSub
C)PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,_
XAsSingle,YAsSingle)
PopupMenuBs,0
EndSub
D)PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,_
XAsSingle,YAsSingle)
If(Button=vbLeftButton)Or(Button=vbRightButton)ThenPopupMenuBs
EndSub
解析:
在VisualBasic中,允许出现快捷菜单,对用户来说,提供了很大的方便,一般来说,菜单都在窗口的顶部,有时,用户需要执行菜单中的某一命令,就得把鼠标移动到窗口顶部,然后打开菜单选择命令,这对用户来说,会觉得麻烦。
而快捷菜单并不需要到窗口的顶部来打开,只要单击鼠标右键,就会弹出菜单。
设计快捷菜单仍然可以用VisualBasic中提供的菜单编辑器,只要把某个菜单设置成隐藏就可以了,实际上,不管是在窗口顶部菜单条上显示的菜单还是隐藏的菜单,都可以用PopupMenu方法把它们作为快捷菜单在运行时显示出来。
PopupMenu方法的使用形式如下:
[对象].PopupMenu菜单名,标志,x,y
其中,x,y是提供菜单显示的位置;标志:
指定快捷菜单的行为。
(25)下列程序的功能是调用字体对话框来设置文本框字体,单击按钮弹出对话框后,按Cancel键退出对话框,则
PrivateSubCommand1_Click()
CommonDialog1.CancelError=True
CommonDialog1.Flags=cdlCFEffectsOrcdlDFBoth
CommonDialog1.Action=4
CommonDialog1.ShowFont
Text1.Font.Name=CommonDialog1.FontName
Text1.Font.Size=CommonDialog1.FontSize
Text1.Font.Bold=CommonDialog1.FontBold
Text1.Font.Italic=CommonDialog1.FontItalic
Text1.Font.Underline=CommonDialog1.FontUnderline
Text1.FontStrikethru=CommonDialog1.FontStrikethru
Text1.ForeColor=CommonDialog1.Color
EndSub
A)Text1的字体不发生变化
B)Text1的字体发生变化
C)Text1的字体和颜色发生变化
D)程序出错!
解析:
对话框的Cance1Error属性的作用是指示当选取"取消"按钮时是否出错,本题目中该属性为True,因此按Cnce1键后将导致程序出错,一般应该在程序中添加对错误的处理。
(26)要将名为MyForm的窗体显示出来,正确的使用方法是
A)MyForm.Show
B)Show.MyForm
C)MyFormLoad
D)MyFormShow
解析:
本题考核窗体处理时的使用方法或语句的格式。
VisualBasic中方法和语句的书写格式不同。
方法的格式为:
对象.方法
语句的格式为:
语句对象名
使用方法要先写对象名,要用"."运算符;使用语句要先写语句,语句后要空一格,后跟对象名。
(27)下列程序段的执行结果为
a=5
Fork=1To0
a=a+k
Nextk
Printk;a
A)-16
B)-116
C)15
D)1121
解析:
此题是考查For循环结构语句。
For循环有两种格式,其中一种格式是:
For循环变量=初值To终值Step[步长]
语句
[ExitFor]
语句
Next[循环变量]
此循环语句的执行过程为:
"循环变量"首先取得"初值",检查是否超过"终值",如果超过,就一次也不循环而跳出循环,属于"先检查后执行"的类型。
现在来看程序段,Fork=1To0中,初值为1,终值为0,显然当"循环变量"首先取得"初值"1,检查后超过"终值"0,所以一次也不执行,即最后执行Print时,k=1,a=5。
(28)下列程序段的执行结果为
a=3
b=1
ForI=1To3
f=a+b
a=b
b=f
Printf
NextI
A)436
B)459
C)634
D)728
解析:
本题考查的是For循环结构语句,现在看程序段是如何运行的。
开始a=3,b=1。
For循环中步长缺省值为1,循环变量I的初值为1,终值为3,所以此循环结构可以循环3次。
第一次循环后,结果为:
f=4,a=1,b=4
第二次循环后,结果为:
f=5,a=4,b=5
第三次循环后,结果为:
f=9,a=5,b=9
所以每循环一次,便输出f当前值,循环3次即便输出3个f值分别为4,5,9。
(29)下列程序段的执行结果为
I=9
x=5
Do
I=I+1
x=x+2
LoopUntilI>=7
Print"I=";I
Print"x=";x
A)I=4x=5
B)I=7x=15
C)I=6x=8
D)I=10x=7
解析:
此题用的是Do循环结构,其格式为:
Do [语句块]
[ExitDo]
LoopUntil循环条件
此循环由于"先执行后检查",所以至少执行一次。
本题中,程序运行到循环条件I>=7的值为True,才停止。
所以当程序结束运行后I=10,x=7。
(30)以下程序段运行时从键盘上输入字符"-",则输出结果为
op$=InputBox("op=")
Ifop$="+"Thena=a+2
Ifop$="-"Thena=a-2
Printa
A)2
B)-2
C)0
D)+2
解析:
此题是根据用户的输入计算变量a的值并显示。
当输入字符"-"时,第一个If条件不成立,跳过,而第二个If语句条件满足,因此执行a=a-2,使a=-2。
所以选项B)是正确答案。
(31)以下程序段的输出结果为
Diml,a(10),p(3)
k=5
Fori=0To10
a(i)=i
Nexti
Fori=0To2
p(i)=a(i(i+1))
Nexti
Fori=0To2
k=k+p(i)2
Nexti
Printk
A)20
B)21
C)56
D)32
解析:
第一个循环对数组a()进行赋值,第二个循环对数组p()进行赋值,第三个循环对k进行累加,k的初值等于5,第一次循环k=k+p(0)*2=5,……,第三次循环k=k+p
(2)*2=21并输出,所以选项B)正确。
(32)下列程序的执行结果为
PrivateSubCommand1_Click()
DimxAsInteger,yAsInteger
x=12:
y=20
CallValue(x,y)
Printx;y
EndSub
PrivateSubValue(ByValmAsInteger,ByValnAsInteger)
m=m*2:
n=n-5
Printm;n
EndSub
A)20 12
20 15
B)12 20
12 25
C)24 15
12 20
D)24 12
12 15
解析:
被调过程Value的两个参数m和n前面都有关键字"ByVal"修饰,即在主调过程用此过程时,实参与形参之间是以传值方式传递信息的,而当实参与形参以传值方式相结合时,形参的改变并没有影响到实参,单单就这一点来说,当程序代码执行主调过程中的Printx;y语句时,x和y的值应不变,还是12和20,这样就能够排除选项A)和选项B)了。
当主调过程调用被调过程时,把实参x、y的值分别传给形参m和n,这就是说此时形参m值为12,n值为20,执行被调过程中的m=m*2:
n=n-5语句后,m值为24,n值为15,所以Printm;n后,程序输出的结果为24和15。
最后程序输出的结果如选项C)所示。
(33)在窗体上画一个命令按钮,然后编写下列程序
PrivateSubCommand3_Click()
Tcl2
Tcl3
Tcl4
EndSub
SubTcl(aAsInteger)
StaticxAsInteger
x=x+a