1、计算机二级(VB)8 及答案解析(总分:1765.00,做题时间:90 分钟)一、选择题(每小题 2分,共 70分) 下列各(总题数:25,分数:1750.00)1.下列程序的执行结果为( )。 Private Sub Command1_Click() Dim FirStr As String FirSt=“abcdef“ Print Pat(FirStr) End Sub Private Function Pat(xStr As String)As String Dim tempStr As String,strLen As Integer tempStr=“ “ strLen=Len(xS
2、tr) i=1 Do While i=1 tempstr=tempstr+Mid(xstr,i,1) i=i-1 Loop ystr=tempstr End Sub (分数:70.00)A.fedcbaB.abcdefC.afbecdD.defabc4.一个工程必须包含的文件的类型是( )。(分数:70.00)A.public operator thisB.shod string staticC.it while =D.private cout printf5.下列说法有错误的是( )。(分数:70.00)A.默认情况下,属性 Visible的值为 FalseB.如果设置控件的 Visible
3、属性为 False,则运行时控件会隐藏C.Visible的值可设为 True或者 FalseD.设置 Visible属性同设置 Enabled属性的功能是相同的,都是使控件处于失效状态6.以下关于 KeyPress事件过程中参数 KeyAscii的叙述中正确的是_。 (分数:70.00)A.KeyAscii参数是所按键的 ASCII码B.KeyAscii参数的数据类型为字符串C.KeyAscii参数可以省略D.KeyAscii参数是所按键上标注的字符7.在窗体上有一个命令按钮,然后编写如下事件过程 Private Sub Command1 _ cickc ( ) a=InputBox(“ent
4、er the first integer“) b=InputBox(“enter the second integer“) Print b + a End Sub 程序运行后,单击命令按钮,先后在两个输入框中分别输入“2”和“6”,则输出结果为( )。 (分数:70.00)A.2B.62C.8D.268.在窗体上画一个列表框和一个命令按钮,其名称分别为 List1和 Command1,然后编写 如下事件过程 Private Sub Form_Load() List1.AddItem “Item1“ List1.AddItem “Item2“ List1.AddItem “Item3“ End
5、Sub Private Sub Command1_Click() List1.List(List1.ListCount) = “AAAA“ End Sub 程序运行后,单击命令按钮,其结果为_。 (分数:70.00)A.把字符串“AAAA”添加到列表框中,但位置不能确定B.把字符串“AAAA”添加到列表框的最后(即“Item3”的后面)C.把列表框中原有的最后一项改为“AAAA”D.把字符串“AAAA”插入到列表框的最前面(即“Item1”的前面)9.下列叙述中正确的是_。 (分数:70.00)A.软件测试应该由程序开发者来完成B.程序经调试后一般不需要再测试C.软件维护只包括对程序代码的维护
6、D.以上三种说法都不对10.能够获得一个文本框中被选取文本的内容的属性是( )。(分数:70.00)A.n/102B.(n-n10)/100C.n10D.n100/1011.有如下程序段,该程序段执行完后,执行循环的次数是( )。 total=0 Counter=1 Do Print Counter total=total + Counter Print total Counter=Counter+1 If total10 Then Exit Do End If Loop While Counter =10 (分数:70.00)A.5B.10C.15D.2012.表达式(7/2+1)*(8/2
7、+2)的值为( )。(分数:70.00)A.4.58B.5.69C.24D.2213.当在滚动条内拖动滚动块时触发( )。(分数:70.00)A.KeyUp事件B.KeyPress事件C.Scroll事件D.Change事件14.下列程序段的执行结果为( )。 a=95 If a60 Then I=l If a70 Then l=2 If a80 Then I=3 If a90 Then I=4 Print“I=“:I (分数:70.00)A.3B.4C.9D.1015.下列说法错误的是( )。(分数:70.00)A.x 0B.x -4C.x -416.设 a = “a“,b = “b“,c
8、= “c“,d = “d“,执行语句 x=IIf(ad),“A“,“B“)后,x 的 值为 _。 (分数:70.00)A.“a“B.“b“C.“B“D.“A“17.下列程序段的执行结果为( )。 X=2 Y=5 If X * Y 1 Then Y=Y - 1 Else Y=-1 Print Y-X0 (分数:70.00)A.TrueB.FalseC.-1D.118.下列叙述中,正确的是( )。(分数:70.00)A.控件数组的每一个成员的 Caption属性值都必须相同B.控件数组的每一个成员的 Index属性值都必须不相同C.控件数组的每一个成员都执行不同的事件过程D.对已经建立的多个类型相
9、同的控件,这些控件不能组成控件数组19.下面有一段程序代码,如果从键盘上输入“Computer“,则在文本框内显示的内容是( )。 Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii =65 And KeyAscii=122 Then KeyAscii=42 End If End Sub (分数:70.00)A.ComputerB.什么都没有C.* * * * * * * *D.程序出错20.对长度为 n的线性表进行顺序查找,在最坏情况下所需要的比较次数为_。 (分数:70.00)A.log2nB.n/2C.nD.n+121.
10、下列可以启动 Visual Basic的方法是( )。(分数:70.00)A.打开“我的电脑”,找到存放 Visual Basic所在系统文件的硬盘及文件夹,双击“VB6exe”图标B.在 DOS窗口中,键入 Visual Basic的路径,执行 Visual Basic可执行文件C.利用“开始”莱单中的“程序”命令可启动 Visual BasicD.A)和 C)22.下面的控件可作为其他控件容器的是( )。(分数:70.00)A.PictureBox和 DataB.Frame和 ImageC.PictureBox和 FrameD.Image和 Data23.下列说法错误的是( )。(分数:7
11、0.00)A.窗体文件的扩展名为frmB.一个窗体对应一个窗体文件C.Visual Basic中的一个工程只包含一个窗体D.Visual Basic中一个工程最多可以包含 255个窗体24.Visual Basic程序设计采用的编程机制是( )。(分数:70.00)A.可视化B.面向对象C.事件驱动D.过程结构化25.以下关于变量作用域的叙述中,正确的是( )。 (分数:70.00)_26.SQL语言又称为( )。(分数:-1.00)A.结构化定义语言B.结构化控制语言C.结构化查询语言D.结构化操纵语言27.数据结构中,与所使用的计算机无关的是数据的( )。(分数:-1.00)A.存储结构B
12、.物理结构C.逻辑结构D.物理和存储结构28.结构化程序设计的 3种结构是( )。(分数:-1.00)A.顺序结构、选择结构、转移结构B.分支结构、等价结构、循环结构C.多分支结构、赋值结构、等价结构D.顺序结构、选择结构、循环结构29.为了提高测试的效率,应该( )。(分数:-1.00)A.随机选取测试数据B.取一切可能的输人数据作为测试数据C.在完成编码以后制定软件的测试计划D.集中对付那些错误群集的程序30.用链表表示线性表的优点是( )。(分数:-1.00)A.便于随机存取B.花费的存储空间比顺序存储少C.便于插入和删除操作D.数据元素的物理顺序与逻辑顺序相同31.算法分析的目的是(
13、)。(分数:-1.00)A.找出数据结构的合理性B.找出算法中输入和输出之间的关系C.分析算法的易懂性和可靠性D.分析算法的效率以求改进32.软件开发的结构化生命周期方法将软件生命周期划分成( )。(分数:-1.00)A.定义、开发、运行维护B.设计阶段、编程阶段、测试阶段C.总体设计、详细设计、编程调试D.需求分析、功能定义、系统设计33.数据库、数据库系统和数据库管理系统之间的关系是( )。(分数:-1.00)A.数据库包括数据库系统和数据库管理系统B.数据库系统包括数据库和数据库管理系统C.数据库管理系统包括数据库和数据库系统D.3者没有明显的包含关系34.在数据管理技术的发展过程中,经
14、历了人工管理阶段、文件系统阶段和数据库系统阶段 其中数据独立性最高的阶段是 ( )。(分数:-1.00)A.数据库系统B.文件系统C.人工管理D.数据项管理35.对象实现了数据和操作的结合,是指对数据和数据的操作进行( )。(分数:-1.00)A.结合B.隐藏C.封装D.抽象三、填空题(每空 2分,共 30分)(总题数:10,分数:30.00)36.改变驱动器列表框的 Drive属性值将引发 1 事件。(分数:3.00)填空项 1:_37.如果存在如下过程: Private Function FMax(a1As Integer) Dim First As Integer,Last As Int
15、eger,i As Integer First=LBound(A) Last=UBound(A) Max=a(First) For i=First To Last If a(i) Max Then Max=a(i) Next i FMax=Max End Function 在窗体上添加一个命令按钮,然后编写如下事件过程: Private Sub Command1 Click2 ReDim m(1 To 4) As Integer m(1)=20:m(2)=30:m(3)=50:m(4)=100 c=FMax(m) Print c End Sub 单击命令按钮,其输出结果为 3。 (分数:3.0
16、0)填空项 1:_38.如果存在如下过程: Private Function FMax(a1As Integer) Dim First As Integer,Last As Integer,i As Integer First=LBound(A) Last=UBound(A) Max=a(First) For i=First To Last If a(i) Max Then Max=a(i) Next i FMax=Max End Function 在窗体上添加一个命令按钮,然后编写如下事件过程: Private Sub Command1 Click2 ReDim m(1 To 4) As I
17、nteger m(1)=20:m(2)=30:m(3)=50:m(4)=100 c=FMax(m) Print c End Sub 单击命令按钮,其输出结果为 3。 (分数:3.00)填空项 1:_39.问题处理方案的正确而完整的描述称为 1。(分数:3.00)填空项 1:_40.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中 1 的作用是将测试数据传送给被测试的模块,并显示被测试 模块所产生的结果。(分数:3.00)填空项 1:_41.在窗体上加上一个文本框控件 TextBox,画一个命令按钮,当单击命令按钮的时候将显示“保存文件”对话框,设置该对
18、话框可用于保存文本文件(默认)和 Word文档,然后在文本框控件中显示保存的文件名,请填空。 Private Sub Command1_Click1 CommonDialog1Filter= 2 CommonDialog1Filter= 3 CommonDialog1ShowSave TextBoxText= 4 End Sub (分数:3.00)填空项 1:_42.如果在 D盘当前文件夹下已 2经存在名为 PICday 的顺序文件,那么执行语句 Open “D:/PICdat“ For Append As #1 之后将 1。 (分数:3.00)填空项 1:_43.为了使计时器控件 Timer
19、1每隔 0.5秒触发一次 Timer事件,应将 Timer1控件的 1 属性设置为 2。(分数:3.00)填空项 1:_44.下列程序是判断一个整数(=3)是否为素数,请补充完整。 Dim n As Integer n=InputBox(“请输入一个整数(=3)“) k=Int(Sqr(n) i=2 swit=0 While i=1 tempstr=tempstr+Mid(xstr,i,1) i=i-1 Loop ystr=tempstr End Sub (分数:70.00)A.fedcba B.abcdefC.afbecdD.defabc解析:被调过程 Invert的参数 xstr,ystr
20、 从主调函数中收到实参 s1,s2 传来的值“abcdef”,过程Invert开始声明了两个变量,都是 String型的:xstr,ystr。I=Len (xstr) 以上语句的功能是:i 的值就是 xstr的长度,此题为 6。程序代码执行 Do WhileLoop的循环语句。循环体为tempstr=tempstr+Mid(xstr,i,1),其中变量是 I,由 I= Len(xstr)开始的,每循环一次减 1,;此程序段的最后输出的是字符串 s1的反向输出,所以正确答案是选项 C)。4.一个工程必须包含的文件的类型是( )。(分数:70.00)A.public operator this B
21、.shod string staticC.it while =D.private cout printf解析:关键字是系统已预定义的单词,在程序中有不同的用途,考生应该 熟记。5.下列说法有错误的是( )。(分数:70.00)A.默认情况下,属性 Visible的值为 FalseB.如果设置控件的 Visible属性为 False,则运行时控件会隐藏C.Visible的值可设为 True或者 FalseD.设置 Visible属性同设置 Enabled属性的功能是相同的,都是使控件处于失效状态 解析:Visible 是用来设置对象的可见性的,有两种值:True 和 False,所以选项 C)表
22、述正确;默认情况下 Visible的值中是 True,所以选项 A)没有错误;如果将对象的 Visible值设为 False,窗体和控件在设计阶段仍可见,只有运行时才隐藏,所以选项 B)也是正确的;Enabled 的功能是使控件有效还是无效,默认值为 True,处于有效状态,运行时可用,如果设为 False,则处于禁止状态,运行时不可用,但可见,所以选项 D)错误。6.以下关于 KeyPress事件过程中参数 KeyAscii的叙述中正确的是_。 (分数:70.00)A.KeyAscii参数是所按键的 ASCII码 B.KeyAscii参数的数据类型为字符串C.KeyAscii参数可以省略D.
23、KeyAscii参数是所按键上标注的字符解析:KeyPress 事件的 KeyAscii 参数返回用户所按键的 ASCII 码,类型为整型;它不是按键上的字符;并且 KeyAscii 参数不可以省略。7.在窗体上有一个命令按钮,然后编写如下事件过程 Private Sub Command1 _ cickc ( ) a=InputBox(“enter the first integer“) b=InputBox(“enter the second integer“) Print b + a End Sub 程序运行后,单击命令按钮,先后在两个输入框中分别输入“2”和“6”,则输出结果为( )。
24、(分数:70.00)A.2B.62 C.8D.26解析:在默认的情况下,InputBox 函数的返回值是一个字符串类型,而不是变体类型。如果没有事先声明返回值变量的类型,或声明为变体类型,则当把函数的返回值赋给这个变量时,Visual Basic 将是把它作为字符串来处理。因此当需要用 InputBox 函数输入数据,并且需要输入的数值参加运算时,必须在进行运算前用 Val函数(或其他函数)把它转换为相应类型的数值,否则有可能会得到不正确的结果。如果正确地声明了返回值的变体类型,则可不必进行类型转换;由于本题没有事先声明变量,所以 a 和 b所获得的为字符“2”和“6”,所以输出“62”。8.
25、在窗体上画一个列表框和一个命令按钮,其名称分别为 List1和 Command1,然后编写 如下事件过程 Private Sub Form_Load() List1.AddItem “Item1“ List1.AddItem “Item2“ List1.AddItem “Item3“ End Sub Private Sub Command1_Click() List1.List(List1.ListCount) = “AAAA“ End Sub 程序运行后,单击命令按钮,其结果为_。 (分数:70.00)A.把字符串“AAAA”添加到列表框中,但位置不能确定B.把字符串“AAAA”添加到列表框
26、的最后(即“Item3”的后面) C.把列表框中原有的最后一项改为“AAAA”D.把字符串“AAAA”插入到列表框的最前面(即“Item1”的前面)解析:List 属性返回或设置控件的列表部分的项目。对于 ListBox 控件,List 属性是可读写的。由于 List1 中项目默认的索引值是 0 到 ListCount-1,现在对 ListCount 这个项目赋值,就是在 List1 的最后加入一条新 记录,所以本题答案是 B。9.下列叙述中正确的是_。 (分数:70.00)A.软件测试应该由程序开发者来完成B.程序经调试后一般不需要再测试C.软件维护只包括对程序代码的维护D.以上三种说法都不
27、对 解析:程序调试的任务是诊断和改正程序中的错误。它与软件测试不同,软件测试是尽可能多地发现软件 中的错误。先要发现软件的错误,然后借助于一定的调试工具去找出软件错误的具体位置。软件测试贯穿 整个软件生命期,调试主要在开发阶段。为了达到更好的测试效果,应该由独立的第三方来构造测试。因 为从心理学角度讲,程序人员或设计方在测试自己的程序时,要采取客观的态度是程度不同地存在障碍的。软件的运行和维护是指将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必 要而且可能的扩充和删改。10.能够获得一个文本框中被选取文本的内容的属性是( )。(分数:70.00)A.n/102B.(n-
28、n10)/100C.n10D.n100/10 解析:/比的优先级要高。注意:n/102 的结果应是 0,n/10 结果为 78,用 78在除以 2求余则得0;(n- n10)/100 的结果应是 7,n10 得 9,780/100 得 7;n10 的结果显而易见是 9。11.有如下程序段,该程序段执行完后,执行循环的次数是( )。 total=0 Counter=1 Do Print Counter total=total + Counter Print total Counter=Counter+1 If total10 Then Exit Do End If Loop While Coun
29、ter =10 (分数:70.00)A.5 B.10C.15D.20解析:本题考查 DoLoop While语句,共执行了 5次,total=1+2+3+4 +510。12.表达式(7/2+1)*(8/2+2)的值为( )。(分数:70.00)A.4.58B.5.69C.24 D.22解析:本题主要考查了运算符“/”的使用,在 Visual Basic中符号“/”为整数除法运算符,运算结果的为整数值;如果操作数带有小数点时,首先被四舍五入为整型数或长整型数,然后再进行整除运算。通过运算本题的结果为 24。13.当在滚动条内拖动滚动块时触发( )。(分数:70.00)A.KeyUp事件B.Key
30、Press事件C.Scroll事件 D.Change事件解析:本题考查的是滚动条事件的应用。在 Visual Basic中,与滚动条有关的事件是 Scroll和 Change事件。当在滚动条内拖动滚动块时触发 Scroll事件;改变滚动框的位置后,将触发 Change事件。Scroll事件用于跟踪滚动条中的动态变化,Change 事件用于得到滚动条的最后的值。14.下列程序段的执行结果为( )。 a=95 If a60 Then I=l If a70 Then l=2 If a80 Then I=3 If a90 Then I=4 Print“I=“:I (分数:70.00)A.3B.4C.9
31、 D.10解析:首先 x1的值在主程序中加 1,变为 3,然后调用后面的子程序 p1,x2 加 1,变为 3,接着调用于程序 P2,x3 加 1变为 3,此时就没有再执行 p1中的 x1+1。执行 x3就直接返回主程序。由参数任递知x1,x2,x3 都为 3。15.下列说法错误的是( )。(分数:70.00)A.x 0B.x -4C.x -4 解析:此题考查 if语句的用法,x0 时打印“first”,x,-3x=3)是否为素数,请补充完整。 Dim n As Integer n=InputBox(“请输入一个整数(=3)“) k=Int(Sqr(n) i=2 swit=0 While i=k
32、 And swit=0 If n Mod i=0 Then 1 Else 2 End If Wend If swit=0 Then Print n;“是一个素数。“ Else Print n;“不是一个素数。“ End If (分数:3.00)填空项 1:_ (正确答案:swit=1)解析: 素数是只能被 1和本身整除的正整数,在本题的程序中,swit 是一个标志变量,如果“swit=0”,则表示 n不能被整除;如果能被一个整数整除,则 swit变为 1; While 循环执行的条件有两个,一个是“I = k”,另一个是“swit=0”,必须两个条件同时成立才执行循环,当 Ik 时,显然不必再
33、检查 n是否能被 I整除;而如果“swit=1 ”,则表示 n已被整除,肯定不是素数,也不必检查了。 只有“I=k”和“swit=0”两者同时成立时才需要检查“n 是否为素数”,循环只有一个判断操作,即判断 n能否被 I整除,如果不能,则 I=I+1。以便为下一次判断作准备。 45.在窗体上有一个命令按钮,然后编写如下程序: Function Trans(ByVal num As Long) As Long Dim k As Long k=l Do While num k=k * (num Mod 10) num=num/10 Loop Trans=k Print Trans End Func
34、tion Private Sub Commandl_Click1 Dim m As Long Dim s As Long m=InputBox(“请输入一个数“) s=Trans(m) End Sub 程序运行时,单击命令按钮,在输入对话框中输入“789”,输出结果为 2,在输入对话框中输入“987”输出 3,在输入对话框中输入“879”,输出结果为 4。 (分数:3.00)填空项 1:_ (正确答案:504)解析:关键字 ByVal用来实现传值,也就是说在定义通用过程时,如果形参前面有关键字 Byval,则该参数用传值方式传递,否则用传址方式传递;在 Sub过程中,先将输入的 “456”赋给
35、变量 m,m 作为参数,调用 Trans过程;在 Trans过程中以 num作为 Do While的循环条件;在循环体中,调用 Mod函数,将num的个位数字与 k相乘,然后赋给 k,第一次循环时,num 的值是 789,所以 k的值为 9,执行 num = num/10后,num 的值为 78,循环三次后,num 变为 0;退出循环,k 值等于 987=504,并将 k的值作为返回值;当输入 “987”或“879”时执行相同的操作,结果都为 504。可以看出,此程序可用于求一个数值各位上数值的乘积。46.在程序设计阶段应该采取 1 和逐步求精的方法,把一个模块的功能逐步分解,细化 为一系列具
36、体的步骤,进而用某种程序设计语言写成程序。 (分数:-1.00)填空项 1:_ (正确答案:自顶而下)解析:本题考查对程序设计的了解。47.Jackson结构化程序设计方法是英国的 M.Jackson提出的,它是一种面向 1 的设 计方法。 (分数:-1.00)填空项 1:_ (正确答案:数据结构)解析:结构化分析方法主要包括:面向数据流的结构化分析方法(SA-Structured analysis),面向数据结构的 Jackson方法(JSD-Jackson system development method)和面向数据结构的结构化数据系统开发方法(DSSD-Data structured
37、system development method)。 48.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件 的 1。 (分数:-1.00)填空项 1:_ (正确答案:可重用性)解析:本题考查了继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。49.关系数据库的关系演算语言是以 1 为基础的 DML语言。(分数:-1.00)填空项 1:_ (正确答案:谓词演算)解析:关系数据库中的关系演算包括元组关系演算和域关系演算。二者都是由原子公式组成的公式。而这些关系演算都是以数理逻辑中的谓词演算为基础的。50.软件危机出现于 60年代末,为了解决软件危机,人们提出了 1 的原理来设计软件这就是软件工程诞生的基础。 (分数:-1.00)填空项 1:_ (正确答案:软件工程学)解析: