全国计算机等级考试二级VB笔试试题及答案.docx
《全国计算机等级考试二级VB笔试试题及答案.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级VB笔试试题及答案.docx(41页珍藏版)》请在冰豆网上搜索。
全国计算机等级考试二级VB笔试试题及答案
2009年3月28日全国计算机等级考试VB考试卷
一、选择题
1.下列叙述中正确的是
A.栈是“先进先出”的线性表
B.队列是“先进后出”的线性表
C.循环队列是非线性结构
D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
考核知识点:
(1)数据结构
答案:
D
分析:
栈是“先进后出”的线性表;队列是“先进先出”的线性表;循环队列是线性结构
2.支持子程序调用的数据结构是
A.栈B.树C.队列D.二叉树
考核知识点:
(1)数据结构具体应用
答案:
A
分析:
栈是“先进后出”的线性表,栈具有记忆作用
3.某二叉树有5个度为2的结点,则该二叉树中叶子结点数是
A.10B.8C.6D.4
考核知识点:
(1)二叉树的性质
答案:
C
分析:
二叉树的性质:
度为0的结点(即叶子结点)总是比度为2的结点多一个
4.下列排序方法中,最坏情况下比较次数最少的是
A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序
考核知识点:
(1)常用算法的时间复杂度
答案:
D
分析:
交换类排序法:
(1)冒泡排序法,需要比较的次数为n(n-1)/2;
(2)快速排序法。
插入类排序法:
(1)简单插入排序法,最坏情况需要n(n-1)/2次比较;
(2)希尔排序法,最坏情况需要O(n1.5)次比较。
选择类排序法:
(1)简单选择排序法,最坏情况需要n(n-1)/2次比较;
(2)堆排序法,最坏情况需要O(nlog2n)次比较
5.软件按功能可以分为:
应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是
A.编译程序B.操作系统C.教务管理系统D.汇编程序
考核知识点:
(1)软件的分类
答案:
C
分析:
编译程序、操作系统和汇编程序都属于系统软件
6.下面叙述中错误的是
A.软件测试的目的是发现错误并改正错误
B.对被调试的程序进行“错误定位”是程序调试的必要步骤
C.程序调试通常也称为Debug
D.软件测试应严格执行测试计划,排除测试的随意性
考核知识点:
(1)软件测试与调试的区别
答案:
A
分析:
软件测试的目的是发现错误,而改正错误不属于软件测试的目的,属于调试的目的
7.耦合性和内聚性是对模块独立性度量的两个标准。
下面叙述中正确的是
A.提高耦合性降低内聚性有利于提高模块的独立性
B.降低耦合性提高内聚性有利于提高模块的独立性
C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度
D.内聚性是指模块间互相连接的紧密程度
考核知识点:
(1)模块独立性度量的标准以及概念
答案:
B
分析:
耦合性是模块间互相连接的紧密程度;内聚性指一个模块内部各个元素间彼此结合的紧密程度
R
S
A
B
C
A
B
a
3
2
a
3
b
0
1
b
0
c
2
1
c
2
8.数据库应用系统中的核心问题是
A.数据库设计B.数据库系统设计
C.数据库维护D.数据库管理员培训
考核知识点:
(1)数据库应用系统中的核心问题
答案:
A
分析:
数据库应用系统中的核心问题是数据库设计
9.有两个关系R,S如下:
由关系R通过运算得到关系S,则所使用的运算为
A.选择B.投影C.插入D.连接
R
S
A
B
C
A
B
a
3
2
a
3
b
0
1
b
0
c
2
1
c
2
考核知识点:
(1)关系运算
答案:
B
分析:
选择运算是对关系的行方向的筛选,即减少元组个数;插入运算是对关系的行方向增加元组个数;投影是对关系的列方向的筛选,即减少属性列个数;连接运算是两个关系之间进行,且关系运算后,属性列增加,元组数也增加;题目中从运算结果S中,对比R关系,可以看到仅仅是属性列个数减少,所以是投影运算。
10.将E-R图转换为关系模式时,实体和联系都可以表示为
A.属性B.键C.关系D.域
考核知识点:
(1)E-R图转换为关系模式的方法
答案:
C
分析:
在关系模式中实体和联系统一采用关系来表示
11.执行语句DimX,YAsInteger后,
A.X和Y均被定义为整型变量
B.X和Y均被定义为变体类型变量
C.X被定义为整型变量,Y被定义为变体类型变量
D.X被定义为变体类型变量,Y被定义为整型变量
考核知识点:
(1)变量的声明
答案:
D
分析:
变量声明时通常必须说明数据类型,若缺省表示该变量声明为变体类型
12.以下关系表达式中,其值为True的是
A."XYZ">"XYz"B."VisualBasic"<>"visualbasic"
C."the"="there"D."Integer"<"Int"
考核知识点:
(1)字符串的比较
答案:
B
分析:
字符串进行关系比较运算时,是按字符的ASCII码值(见附录C)从左至右逐个比较,即从两个字符串的第一个字符开始依次比较对应位置字符的ASCII码值,直到遇到第一对ASCII码不相等的字符为止,ASCII码值大的字符所在的字符串大。
若两字符串相等,则字符串中的每个字符都相等且字符串长度也相等。
汉字字符大于西文字符。
13.执行以下程序段
a$="VisualBasicProgramming"
b$="C++"
c$=UCase(Left$(a$,7))&b$&Right(a$,12)
后,变量c$的值为
A.VisualBASICProgrammingB.VISUALC++Programming
C.VisualC++ProgrammingD.VISUALBASICProgramming
考核知识点:
(1)字符串函数的功能
(2)字符数据的连接运算
答案:
B
分析:
“&”是双目运算符,用来将两个字符串首尾连接的,连接结果仍为字符串类型;Left(x,n)从字符串x左边起连续取n个字符;Right(x,n)从字符串x右边起连续取n个字符;Ucase(x)将字符串中的小写字母转换成大写字母
14.下列叙述中正确的是
A.MsgBox语句的返回值是一个整数
B.MsgBox语句的第一个参数不能省略
C.执行MsgBox语句并出现信息框后,不用关闭信息框即可执行其他操作
D.如果省略MsgBox语句的第三个参数(Title),则信息框的标题为空
考核知识点:
(1)MsgBox
答案:
B
分析:
MsgBox语句表示按子程序过程形式调用MsgBox,所以无返回值;执行MsgBox语句并出现信息框后,必须关闭信息框才可执行其他操作;如果省略MsgBox语句的第三个参数(Title),则信息框的标题为VB工程名
15.在窗体上画一个文本框(名称为Text1)和一个标签(名称为Label1),程序运行后,在文本框中每输入一个字符,都会立即在标签中显示文本框中字符的个数。
以下可以实现上述操作的事件过程是
A.PrivateSubText1_Change()
Label1.Caption=Str(Len(Text1.Text))
EndSub
B.PrivateSubText1_Click()
Label1.Caption=Str(Len(Text1.Text))
EndSub
C.PrivateSubText1_Change()
Label1.Caption=Text1.Text
EndSub
D.PrivateSubLabel1_Change()
Label1.Caption=Str(Len(Text1.Text))
EndSub
考核知识点:
(1)常用事件的触发时机和具体应用
(2)字符串函数的使用
答案:
A
分析:
根据题意文本框中每输入一个字符,都会立即在标签中显示文本框中字符的个数,所以考虑文本框的Change事件,字符个数可以通过Len函数获取
16.在窗体上画两个单选按钮(名称分别为Option1、Option2,标题分别为“宋体”和“黑体”)、1个复选框(名称为Check1,标题为“粗体”)和1个文本框(名称为Text1,Text属性为“改变文字字体”),窗体外观如图所示。
程序运行后,要求“宋体”单选按钮和“粗体”复选框被选中,则以下能够实现上述操作的语句序列是
A.Option1.Value=False
Check1.Value=True
B.Option1.Value=False
Check1.Value=0
C.Option1.Value=True
Check1.Value=2
D.Option1.Value=True
Check1.Value=1
考核知识点:
(1)选择控件选中情况的设置
答案:
D
分析:
Value值决定单选按钮和复选框被选中情况,Value值为True表示单选按钮选中,Value值为1表示复选框被选中
17.在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
PrivateSubCommand1_Click()
c=1234
c1=Trim(Str(c))
Fori=1To4
Print
Next
EndSub
程序运行后,单击命令按钮,要求在窗体上显示如下内容:
则在横线处应填入的内容为
A.Right(c1,i)B.Left(c1,i)C.Mid(c1,i,1)D.Mid(c1,i,i)
考核知识点:
(1)循环语句的应用
(2)字符串函数的使用
答案:
B
分析:
从输出要求看,每行显示的是C1字符串左侧的若干连续字符,规律是字符数与输出行号相同
18.假定有以下程序段
Fori=1To3
Forj=5To1Step–1
Printi*j
Nextj
NextI
则语句Printi*j的执行次数是
A.15B.16C.17D.18
考核知识点:
(1)循环次数的计算
答案:
A
分析:
语句Printi*j的执行次数,就是指循环体的执行次数;当循环体内没有改变循环控制变量值的语句以及Exit语句时,循环体的执行次数完全是由循环语句中初值、终值和步长决定的=(终值-初值+1)\步长,多重循环的循环体执行次数等于内外各层循环次数的乘积。
此题中外层循环体执行次数为3,内层为5,所以答案为A
19.在窗体上画文本框(名称分别为Text1和Text2)和一个命令按钮(名称为Command1),然后编写如下事件过程:
PrivateSubCommand1_Click()
x=0
DoWhilex<50
x=(x+2)*(x+3)
n=n+1
Loop
Text1.Text=Str(n)
Text2.Text=Str(x)
EndSub
程序运行后,单击命令按钮,在两个文本框中显示的值分别为
A.1和0B.2和72C.3和50D.4和168
考核知识点:
(1)循环执行流程
答案:
B
分析:
采用列表法
循环次数
x
n
0
0
1
6
1
2
72
2
20.阅读程序:
PrivateSubForm_Click()
a=0
Forj=1To15
a=a+jMod3
Nextj
Printa
EndSub
程序运行后,单击窗体,输出的结果是
A.105B.1C.120D.15
考核知识点:
(1)循环执行流程
答案:
D
分析:
采用列表法
循环次数
a
j
0
1
1
1
2
2
3
3
3
3
4
4
4
5
5
6
6
6
6
7
7
7
8
8
9
9
9
9
10
10
10
11
11
12
12
12
12
13
13
13
14
14
15
15
15
15
16
21.以下说法中正确的是
A.当焦点在某个控件上时,按下一个字母键,就会执行该控件KeyPress事件过程
B.因为窗体不接受焦点,所以窗体不存在自己的KeyPress事件过程
C.若按下的键相同,KeyPress事件过程中KeyAscii参数与KeyDown事件过程中的KeyCode参数的值也相同
D.在KeyPress事件过程中,KeyAscii参数可以省略
考核知识点:
(1)键盘事件
答案:
A
分析:
窗体存在自己的KeyPress事件过程;若按下的键相同,KeyPress事件过程中KeyAscii参数与KeyDown事件过程中的KeyCode参数的值不一定相同;在KeyPress事件过程中,KeyAscii参数不可以省略
22.语句Dima(-3To4,3To6)AsInteger定义的数组的元素个数是
A.18B.28C.21D.32
考核知识点:
(1)数组大小的确定
答案:
D
分析:
数组的大小即数组中元素的个数=各维大小的乘积
每维大小=(上界-下界+1)
本题=(4-(-3)+1)*(6-3+1)=32
23.在窗体上画一个命令按钮,其名称为Command1,然后编写如下代码:
OptionBase1
PrivateSubCommand1_Click()
Dima
a=Array(1,2,3,4)
j=1
Fori=4To1Step-1
s=s+a(i)*j
j=j*10
Nexti
Prints
EndSub
程序运行后,单击命令按钮,其输出结果是
A.4321B.1234C.34D.12
考核知识点:
(1)循环执行流程
(2)数组的访问(3)Array函数(4)OptionBase的作用
答案:
B
分析:
Array函数对数组进行整体初始化,下界是由OptionBase语句指定的下界决定,数组大小由赋值的Array函数括号中参数的个数决定,所以执行完a=Array(1,2,3,4)语句后,a形成了变体型数组,包含的数组元素分别表示下表所示。
a
数组元素值
a
(1)
1
a
(2)
2
a(3)
3
a(4)
4
最后输出的s的值与For循环有关,采用列表法
循环次数
i
s=s+a(i)*j
j
0
4
0
1
1
=0+a(4)*1=4
2
3
=4+a(3)*10=34
10
3
2
=34+a
(2)*100=234
100
4
1
=234+a
(1)*1000=1234
1000
0
10000
24.假定通过复制、粘贴操作建立了一个命令按钮数组Command1,以下说法中错误的是
A.数组中每个命令按钮的名称(Name属性)均为Command1
B.若未做修改,数组中每个命令按钮的大小都一样
C.数组中各个命令按钮使用同一个Click事件过程
D.数组中每个命令按钮的Index属性值都相同
考核知识点:
(1)控件数组
答案:
D
分析:
控件数组是由一组相同类型的控件组成,使用相同的名称,具有基本相同的属性,执行不同的功能;根据建立时的顺序,系统给每个控件元素赋予相同的名称和一个唯一的索引号(Index),即下标,下标从0开始,最大可达32 767。
这些控件元素将使用相同的事件过程,在事件过程中使用Index参数区分各个元素
25.在窗体上画一个命令按钮,名称为Command1,然后编写如下代码:
OptionBase0
PrivateSubCommand1_Click()
DimA1(4)AsInteger,A2(4)AsInteger
Fork=0To2
A1(k+1)=InputBox("请输入数据")
A2(3-k)=A1(k+1)
Nextk
PrintA2(k)
EndSub
程序运行后,单击命令按钮,在输入对话框中依次输入2、4、6,则输出结果为
A.0B.1C.2D.3
考核知识点:
(1)数组的访问
(2)OptionBase语句的作用(3)For循环语句的执行流程
答案:
C
分析:
采用列表法,注意,For循环结束时k的值为3
循环次数
k
A1(k+1)
A2(3-k)
0
0
1
0
A1
(1)=2
A2(3)=2
2
1
A1
(2)=4
A2
(2)=4
3
2
A1(3)=6
A2
(1)=6
3
26.以下关于函数过程的叙述中,正确的是
A.函数过程形参的类型与函数返回值的类型没有关系
B.在函数过程中,过程的返回值可以有多个
C.当数组作为函数过程的参数时,既能以传值方式传递,也能以传址方式传递
D.如果不指明函数过程参数的类型,则该参数没有数据类型
考核知识点:
(1)函数过程
答案:
A
分析:
函数过程本身的返回值有且只能有一个;当数组作为函数过程的参数时,只能以传址方式传递;如果不指明函数过程参数的类型,则该参数具有数据类型为变体类型
27.在窗体上画两个标签和一个命令按钮,其名称分别为Label1、Label2和Command1,然后编写如下程序:
PrivateSubFunc(LAsLabel)
L.Caption="1234"
EndSub
PrivateSubCommand1_Click()
a=Val(Label2.Caption)
CallFunc(Label1)
Label2.Caption=a
EndSub
PrivateSubForm_Load()
Label1.Caption="ABCD"
Label2.Caption=10
EndSub
程序运行后,单击命令按钮,则在两个标签中显示的内容分别为
A.ABCD和10B.1234和100C.ABCD和100D.1234和10
考核知识点:
(1)常用事件执行时机
(2)过程调用执行流程(3)控件对象作为参数
答案:
D
分析:
Form_Load事件先执行,然后单击命令按钮,执行Command1_Click事件,在这中间调用过程Func,完成对Label1的显示内容的设置
28.在窗体上画一个命令按钮(名称为Command1),并编写如下代码:
FunctionFun1(ByValaAsInteger,bAsInteger)AsInteger
DimtAsInteger
t=a-b
b=t+a
Fun1=t+b
EndFunction
PrivateSubCommand1_Click()
DimxAsInteger
x=10
PrintFun1(Fun1(x,(Fun1(x,x-1))),x-1)
EndSub
程序运行后,单击命令按钮,输出结果是
A.10B.0C.11D.21
考核知识点:
(1)函数过程调用执行流程
(2)参数传递方式对参数的影响
答案:
B
分析:
分析Fun1函数调用中参数的传递方式,当实参为变量形式时,传递方式由形参的前缀决定,Byval代表按值传递,ByRef或缺省表示按地址传递;当实参为表达式或函数形式时,传递方式为按值传递;所以三次Fun1函数调用过程中,每次每个参数的传递方式都是按值传递,因此形参的变化不会影响实参,即实参在函数调用前后值不变。
这样在函数调用过程中我们只需重点关心每次实参传入的值,和函数返回的值。
第?
次调用函数Fun1
实参1
实参2
形参1
形参2
中间变量
返回值
1
x
x-1
a
b
t
10
9
10
9
1
11
12
2
x
Fun1(x,x-1)
a
b
t
10
12
10
12
-2
8
6
3
Fun1(x,(Fun1(x,x-1)))
x-1
a
b
t
6
9
6
9
-3
3
0
29.以下关于过程及过程参数的描述中,错误的是
A.过程的参数可以是控件名称
B.调用过程时使用的实参的个数应与过程形参的个数相同
C.只有函数过程能够将过程中处理的信息返回到调用程序中
D.窗体可以作为过程的参数
考核知识点:
(1)过程处理信息的反馈
(2)过程的参数
答案:
C
分析:
函数过程能够将过程中处理的信息返回到调用程序中,子程序过程虽然本身不具有返回值,但是可以通过按地址传递的参数将过程中处理的信息返回到调用程序中
30.设有如下通用过程:
PublicFunctionFun(xStrAsString)AsString
DimtStrAsString,strLAsInteger
tStr=""
strL=Len(xStr)
i=strL/2
DoWhilei<=strL
tStr=tStr&Mid(xStr,i+1,1)
i=i+1
Loop
Fun=tStr&tStr
EndFunction
在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮。
然后编写如下的事件过程:
PrivateSubCommand1_Click()
DimS1AsString
S1="ABCDEF"
Text1.Text=LCase(Fun(S1))
EndSub
程序运行后,单击命令按钮,文本框中显示的是
A.ABCDB.abcdefC.defdefD.defabc
考核知识点:
(1)常用字符串函数的功能
(2)函数过程调用的执行流程(3)Do循环的执行流程
答案:
C
分析:
首先根据Lcase可以判断,最后显示在Text1中的内容是小写的,所以排除答案A;根据函数返回值的情况Fun=tStr&tStr,可以推断,Text1中的内容是相同字符串的连接,所以可直接确定答案是C。
当然也可以按照函数过程的实际执行情况,将循环过程列表清清楚楚的记录,了解实际相关变量的值的变化