2009年3月全国计算机等级考试二级笔试试卷Visual Basic 语言程序设计及答案

2009年3月全国计算机等级考试二级笔试试卷Visual Basic 语言程序设计及答案
2009年3月全国计算机等级考试二级笔试试卷Visual Basic 语言程序设计及答案

2009年3月全国计算机等级考试二级笔试试卷Visual Basic 语言程序设计

一选择题(每小题2分,共70分)

(1)下列叙述中正确的是

A)栈是“先进先出”的线性表

B)队列是“先进先出”的线性表

C)循环队列是非线性结构

D)有序性表既可以采用顺序存储结构,也可以采用链式存储结构

(2)支持子程序调用的数据结构是

A)栈B)树C)队列D)二叉树

(3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是

A)10 B)8 C)6 D)4

(4)下列排序方法中,最坏情况下比较次数最少的是

A)冒泡排序B)简单选择排序C)直接插入排序D)堆排序

(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是

A)编译软件B)操作系统C)教务管理系统D)汇编程序

(6)下面叙述中错误的是

A)软件测试的目的是发现错误并改正错误

B)对被调试的程序进行“错误定位”是程序调试的必要步骤

C)程序调试通常也称为Debug

D)软件测试应严格执行测试计划,排除测试的随意性

(7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是

A)提高耦合性降低内聚性有利于提高模块的独立性

B)降低耦合性提高内聚性有利于提高模块的独立性

C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度

(8)数据库应用系统中的核心问题是

A)数据库设计B)数据库系统设计

C)数据库维护D)数据库管理员培训

(9)有两个关系R,S如下:

R S

A B C A B

a 3 2 a 3

b 0 1 b 0

c 2 1 c 2

由关系R通过运算得到关系S,则所使用的运算为

A)选择B)投影C)插入D)连接(10)将E-R图转换为关系模式时,实体和联系都可以表示为A)属性B)键C)关系D)域(11)执行语句Dim X, Y as Integer 后,

A)X 和Y 均被定义为整型变量

B)X和Y被定义为变体类型变量

C)X被定义为整型变量,Y被定义为变体类型变量

D)X被定义为变体类型变量,Y被定义为整型变量

(12)以下关系表达式中,其值为True的是

A)”XYZ”>”XYz”

B)”VisualBasic”<>”visualbasic”

C)”the”=”there”

D)”Integer”<”Int”

(13)执行以下程序段

a$=”Visual Basic Programming”

b$=”C++”

c$=Ucase(left$(a$,7))&b$& Right$(a$,12)后,变量c$ 的值为

A)Visual Basic Programming

B)VISUALC++ Programming

C)Visual C++ Programming

D)VISUAL BASIC Programming

(14)下列叙述中正确的是

A)MsgBox语句的返回值是一个整数

B)执行Msgbox语句并出现信息框后,不用关闭信息框即可执行其他操作

C)MsgBox语句的第一个参数不能省略

D)如果省加略MsgBox语句的第三个参数(Title),则信息框的标题为空

(15)在窗体上画一个文本框(名称为text1)和一个标签(名称为label1),程序运行后,在文本框中每输入一个字符,都会立即在标签中显示文本框中字符的个数,以下可以实现实现上述操作的事件过程是

A)Private Sub Text1_Change()

Label1.Caption = Str(Len(Text1.Text))

End Sub

B)Private Sub Text1_Click()

Label1.Caption = Str(Len(Text1.Text))

End Sub

C)Private Sub Text1_Change()

Label1.Caption = text1.text

End Sub

D)Private Sub label1_Change()

Label1.Caption = Str(Len(Text1.Text))

End Sub

(16)在窗体上画两个单选按钮(名称分别为Option1、option2,标题分别为“宋体”和“黑体”)、1个复选框(名称为check1,标题为“粗体”)和1个文本框(名称为text1,text属性为“改变文字字体”),窗体外观如图所示。程序运行后,要求“宋体”单选按钮和“粗体”复选框被选中,则以下能够实现上述操作的语句序列是

A) Option1.value = False

Check1.value = True

B) Option1.value = True

Check1.value = 0

C) Option1.value = True

Check1.value = 2

D) Option1.value = True

Check1.value = 1

(17)在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:

Private Sub Command1_Click()

c = 1234

c1 = Trim(Str(c))

For i = 1 To 4

Print

Next

End Sub

程序运行后,单击命令按钮,要求在窗体上显示如下内容:

1

12

123

1234

则在横线上应填入的内容为

A)Right(c1,i) B)Left(c1,i) C)Mid(c1,I,1) D) Mid(c1,i,i)

(18)假定有以下程序段

For i=1 to 3

For j=5 to 1 step -2

Print i*j

Next j

Next i

则语句Print i*j 的执行次数是

A)15 B)16 C)17 D)18

(19)在窗体上画两个文本框(名称分别为text1和text2)和一个命令按钮(名称为command1),

然后编写如下事件过程:

Private Sub Command1_Click()

x = 0

Do While x < 50

x = (x + 2) * (x + 3)

n = n + 1

Loop

text1.Text = Str(n)

text2.Text = Str(x)

End Sub程序运行后,单击命令按钮,在两个文本框中显示的值分别为A)1和0 B)2和72 C)3和50 D)4和168

(20)阅读程序:

Private Sub Command1_Click()

A=0

For j=1 to 15

a=a+j mod 3

Next j

Print a

End Sub

程序运行后,单击窗体,输出结果是

A)105 B)1 C)120 D)15

(21)以下说法中正确是的

A)当焦点在某个控件上时,按下一个字母键,就会执行该控件的keypress事件过程

B)因为窗体不接受焦点,所以窗体不存在自己的keypress事件过程

C)若按下的键相同,keypress事件过程中的keyascii参数与keydown事件过程中的keycode参数的值也相同

D)在keypress事件过程中,keyascii参数可以省略

(22)语句dim a(-3 to 4,3 to 6)as integer 定义的数组的元素个数是

A)18 B)28 C)21 D)32

(23)在窗体上画一个命令按钮,其名称为command1,然后编写如下代码:

Option Base 1

Private Sub Command1_Click()

Dim a

a = Array(1, 2, 3, 4)

j = 1

For i = 4 To 1 Step -1

s = s + a(i) * j

j = j * 10

Next i

Print s

End Sub

程序运行后,单击命令按钮后,其输出结果是

A)4321 B)1234 C)34 D)12

(24)假定通过复制,粘贴操作建立了一个命令按钮数组Command1,以下说法中错误的是

A)数组中每个命令按钮的名称(name属性)均为Command1

B)若未做修改,数组中每个命令按钮的大小都一样

C)数组中各个按钮使用同一个click事件过程

D)数组中每个命令按钮的index属性值都相同

(25)在窗体上面画一个命令按钮,名称为Command1,然后编写如下代码:

Option Base 0

Private Sub Command1_Click()

Dim A1(4) As Integer,A2(4) As Integer

For k=0 To 2

A1(k+1)=InputBox(“请输入一个整数”)

A2(3-k)=A1(k+1)

Next k

Print A2(k)

End Sub

程序运行后,单击命令按钮,在输入对话框中依次输入2、4、6,则输出结果为

A)0 B)1 C)2 D)3

(26)以下关于函数过程的叙述中,正确的是

A)函数过程形参的类型与函数返回值的类型没有关系

B)在函数过程中,过程的返回值可以有多个

C)当数组作为函数过程的参数时,既能以值方式传递,也能以传址方式传递

D)如果不指明函数过程参数的类型,则该参数没有数据类型

(27)在窗体上画两个标签和一个命令按钮,其名称分别为Label1、Label2和Command1,然后编写如下程序:

Private Sub func(L As Label)

L.Caption=”1234”

End sub

Private Sub Form_Load()

Label2.Caption=10

End sub

Private Sub Command1_Click()

A=Val(Label2.Caption)

Call func(Label1)

Label2.Caption=a

End sub

程序运行后,单击命令按钮,则在两个标签中显示的内容分别为

A)ABCD和10 B)1234和100

C)ABCD和100 D)1234和10

(28)在窗体上画一个命令按钮(名称为Command1),并编写如下代码:Functin Fun1(Byval a As Integer ,b As Integer) As Integer

Dim t As Integer

t=a-b

b=t+a

Fun1=t+b

End Function

Private Sub Command1_Click()

Dim x As Integer

X=10

Print Fun1(Fun1(x,(Fun1(x,x-1))),x-1)

End Sub

程序运行后,单击命令按钮,输出结果是

A)10 B)0 C)11 D)21

(29)以下关于过程及过程参数的描述中,错误的是

A)过程的参数可以是控件名称

B)调用过程时使用的实参的个数应与过程形参的个数相同C)只有函数过程能够将过程中处理的信息返回到调用程序中D)窗体可以作为过程的函数

(30)有如下通用过程:

Public Function Fun(xStr As String) As String

Dim tStr As String ,strL As Integer

tStr=””

strL=Len(xStr)

i=strL/2

Do While i<=strL

tStr=tStr & Mid(xStr,i+1,1)

i=i+1

Loop

Fun=tStr & tStr

End Function

在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写如下事件过程:

Private Sub Command1_Click()

Dim S1 As String

S1=”ABCDEF”

Text1.Text=Lcase(Fun(S1))

End Sub

程序运行后,单击命令按钮,文本框中显示的是

A)ABCDEF B)abcdef C)defded D)defabc

(31)在窗体上画一个命令按钮和一个文本框(名称分别为Command1和Text1),并把窗体的Keyprewiew属性设置为True,然后编写如下代码:

Dim SaveAll As String

Private Sub Form_Load ()

Show

Text1.Text=””

Text1.SetFocus

End Sub

Private Sub Command1_Click()

Text1.Text=Lcase(SaveAll)+SaveAll

End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)

SaveAll=SaveAll+Chr(KeyAscii)

End Sub

程序运行后,直接用键盘输入:VB,再单击命令按钮,则文本框中显示的内容为A)vbVB B)不显示任何信息C)VB D)出错

(32)设有以下程序:

Private Sub Form_Click()

X=50

For i=1 To 4

Y=InputBox(“请输入一个整数”)

Y=Val(y)

If y Mod 5=0 Then

a=a+y

x=y

Else

a=a+x

End If

Next i

Print a

End Sub

程序运行后,单击窗体,在输入对话框中依次输入15、24、35、46,输出结果为A)100 B)50 C)120 D)70

(33)以下关于菜单的叙述中,错误的是

A)当前窗体为活动窗体时,用Ctrl+E键可以打开菜单编辑器

B)把菜单项的Enabled属性设置为False,则可删除该菜单项

C)弹出式菜单在菜单编辑器中设计

D)程序运行时,利用控件数组可以实现菜单项的增加或减少

(34)以下叙述中错误的是(c )

A)在程序运行时,通用对话框控件是不可见的

B)调用同一个通用对话框控件的不同方法(如ShowOpen 或ShowSave)可以打开不同的对话框窗口

C)调用通用对话框控件的ShowOpen方法,能够直接打开在该通用对话框中指定的文件D)调用通用对话框控件的ShowColor方法,可以打开颜色对话框窗口

(35)设在工程文件中有一个标准模块,其中定义了如下记录类型:

Type Books

Name As String * 10

TelNum As String * 20

End Type

在窗体上画一个名为Command1的命令按钮,要求当执行事件过程Command1_Click时,在顺序文件Person.txt中写入一条Books类型的记录。下列能够完成该操作的事件过程是

A)Private Sub Command1_Click()

Dim B As Books

Open “Person.txt” For Output As #`1

https://www.360docs.net/doc/415573442.html,=InputBox(“输入姓名”)

B.TelNum=InputBox(“输入电话号码”)

Write #1,https://www.360docs.net/doc/415573442.html,,B.TelNum

Close #1

End Sub

B)Private Sub Command1_Click()

Dim B As Books

Open “Person.txt” For input As #`1

https://www.360docs.net/doc/415573442.html,=InputBox(“输入姓名”)

B.TelNum=InputBox(“输入电话号码”) Print #1,https://www.360docs.net/doc/415573442.html,,B.TelNum

Close #1

End Sub

C)Private Sub Command1_Click()

Dim B As Books

Open “Person.txt” For Outp ut As #`1 https://www.360docs.net/doc/415573442.html,=InputBox(“输入姓名”)

B.TelNum=InputBox(“输入电话号码”) Write #1,B

Close #1

End Sub

D)Private Sub Command1_Click() Open “Person.txt” For input As #`1 Name=InputBox(“输入姓名”) TelNum=InputBox(“输入电话号码”) Print #1, Name, TelNum

Close #1

End Sub

二、填空题(每空2分,共30分)

请将每一个空的正确答案写在答题纸上【1】-【15】序号的横线上,答在试卷上,在试卷上不得分,

注意:以命令关键字填空的必须写完整。

(1)假设一个长度为50的数组(数组元素的下标从0到49)作为栈的存储空间,栈底指针bottom指向栈底元素,栈顶指针top指向栈顶元素,如果bottom=49,top=30(数组下标),则栈中具有【1】个元素。

(2)软件测试可分为白盒测试和黑盒测试。基本路径测试属于【2】测试。

(3)符合结构化原则的三种基本控制结构是:选择结构、循环结构和【3】。

(4)数据库系统的核心是【4】

(5)在E-R图中,图形包括矩形框、菱形框、椭圆框。其中表示实体联系的是【5 】框。

(6)窗体如图所示,其中汽车是名称为Image1的图像框,命令按钮的名称为Command1,计时器的名称为Timer1,直线的名称为Line1。程序运行时,单击命令按钮,则汽车每0.1秒向左移动100,车头到达左边的直线时停止移动。请填空完成下面的属性设置和程序,以便实现上述功能。

1 Timer1的Interval属性的值应事先设置为【6】

2 Private Sub Command1_Click()

Timer1.Enabled=True

End Sub

Private Sub Timer1_Timer()

If Image1.Left>=【7】Then

Image1.Left=【8】-100

End If

End Sub

(7)设窗体上有一个名称为Combol 的组合框,并有以下程序:

Private Sub Combol_KeyPress(KeyAscii As Integer)

If【9】=13 Then ‘回车符的ASCII码是13

For k=0 To Combol.ListCount-1

If Combol.Text= Combol.List(k) Then

Combol.Text=””

Exit For

End If

Next k

If Combol.Text <> “” Then

Combol.AddItem【10】

End If

End If

End Sub

程序的功能是:在组合框的编辑区中输入文本后按回车键,则检查列表中有无与此文本相同的项目,若有,则把编辑区中的文本删除,否则把编辑区中文本添加到列表的尾部。

请填空。

(8)在当前目录下有一个名为“myfile.txt”的文本文件,其中有若干行文本。下面程序的功能是读入此文件中的所有文本行,按行计算每行字符的ASCII码之和,并显示在窗体上。请填空。

Private Sub Commandl_Click()

Dim ch$,ascii As Integer

Open “myfile.txt”For【11】As #1

While Not EOF(1)

Line Input #1,ch

ascii=toasill (【12】)

Print ascii

Wend

Close #1

End Sub

Private Function toascii(mystr$) As Integer

n=0

For k=1 To 【13】

n=n+Asc(Mid(mystr,k,l))

Next k

Toascii=n

End Function

(9)本程序实现文本加密。先给定序列:a1,a2,……an,它们的取值范围是1~n,且互不相同。加密算法是:把原文本中第k个字符放到加密后的文本的第ak个位置处。若原文本长度大于n,则只对前n个字符加密,后面的字符不变;若原文本长度小于n,则在后面补字符“*”使文本长度为n后再加密。

例如:若给定序列a1,a2,…a7分别为2,5,3,7,6,1,4

当文本为“PROGRAM”时,加密后的文本为“APOMRRG”

当文本为“PROGRAMMING”,加密后的文本为“APOMRRGMING”

当文本为“THANK”时,加密后的文本为“TA*HKN”

下面的过程code实现这一算法。其中参数数组a()中存放给定序列(个数与数组a的元素个数相等)a1,a2,a3…的值,要加密的文本放在参数变量mystr中。过程执行完毕,加密后的文本仍放在变量mystr中。请填空。

Option Base 1

Private Sub code(a () As Integer,mystr As String)

Dim ch As string,cl As String

n=Ubound(a)-Len(mystr)

If n>0 Then

mystr= mystr& Strings(n,”*”)

End If

Ch=mystr

For k=【14】To Ubound(a)

Cl=Mid(mystr,k,l)

n=【15】

Mid$(ch,n)=cl

Next k

Mystr=ch

End Sub

2009年3月全国计算机等级考试(二级)Visual Basic笔试参考答案

一、选择题(每小题2分,共70分)

(1)下列叙述中正确的是D)有序线性表既可采用顺序存储结构,也可以采用链式存储结构

(2)支持子程序调用的数据结构是A)栈

(3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是C)6

(4)下列排序方法中,最坏情况下比较次数最少的是D)堆排序

(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是C)教务管理系统

(6)下面叙述中错误的是A)软件测试的目的是发现并改正错误

(7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是B)降低耦合性提高内聚性有利于提高模块的独立性

(8)数据库应用系统中的核心问题是A)数据库设计

(9)有两个关系R,S如下:

R S

A B C A B

a 3 2 a 3

b 0 1 b 0

c 2 1 c 2

由关系R通过运算得到关系S,则所使用的运算为B)投影

(10)将E-R图转换为关系模式时,实体和联系都可以表示为C)关系

(11)执行语句Dim X,Y As Integer后,D)X被定义为变体类型变量,Y被定义为整型变量

(12)以下关系表达式中,其值为True的是B)"VisualBasic"<>"visualbasic"

(13)执行以下程序段

a$ = "Visual Basic Programming"

b$ = "C++"

c$ = UCase(Left$(a$, 7)) & b$ & Right$(a$, 12)后,变量c$的值为

B )VISUAL C++ Programming

(14)下列叙述中正确的是

C)MsgBox语句的第一个参数不能省略

(15)在窗体上画一个文本框(名称为Text1)和一个标签(名称为Label1),程序运行后,在文本框中每输入一个字符,都会立即在标签中显示文本框中字符的个数,以下可以实现上述操作的事件过程是:

A)Private Sub Text1_Change()

Label1.Caption = Str(Len(Text1.Text))

End Sub

(16)在窗体上画两个单选按钮(名称分别为Option1、Option2,标题分别为“宋体”和“黑体”)、1个复选框(名称为Check1,标题为“粗体”)和1个文本框(名称为Text1,Text 属性为“改变文字字体”),窗体外观如图所示。程序运行后,要求“宋体”单选按钮和“粗体”复选框被选中,则以下能够实现上述操作的语句序列是

D)Option1.Value=True

Check1.Value=1

(17)在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:

Private Sub Command1_Click()

c = 1234

c1 = Trim(Str(c))

For i = 1 To 4

Print

Next

End Sub

程序运行后,单击命令按钮,要求在窗体上显示如下内容:

1

12

123

1234

则在横线处应填入的内容为

B)Left(c1,i)

(18)假定有以下程序段

For i = 1 To 3

For j = 5 To 1 Step -1

Print i * j

Next j

Next i

则语句Print i*j 的执行次数是

A)15

(19)在窗体上画两个文本框(名称分别为Text1和Text2)和一个命令按钮(名称为Command1),然后编写如下事件过程:

Private Sub Command1_Click()

x = 0

Do While x < 50

x = (x + 2) * (x + 3)

n = n + 1

Loop

Text1.Text = Str(n)

Text2.Text = Str(x)

End Sub

程序运行后,单击命令按钮,在两个文本框中显示的值分别为B)2和72

(20)阅读程序:

Private Sub Form_Click()

a = 0

For j = 1 To 15

a = a + j Mod 3

Next j

Print a

End Sub

程序运行后,单击窗体,输出结果是

D)15

(21)以下说法正确的是

A)当焦点在某个控件上时,按下一个字母键,就会执行该控件的KeyPress事件过程(22)语句Dim a(-3 To 4,3 To 6) As Integer定义的数组的元素个数是D)32

(23)在窗体上画一个命令按钮,其名称为Command1,然后编写如下过程:

Option Base 1

Private Sub Command1_Click()

Dim a

a = Array(1, 2, 3, 4)

相关文档
最新文档