2008年4月全国计算机等级考试vb笔试真题

(28)下面程序在调试时出现了死循环

Private Sub Command1_Click()

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

Do

If n Mod 2=0 Then

n=n+1

Else

n=n+2

Else If

Loop Until n=1000

End Sub

下面关于死循环的叙述中正确的是

A) 只有输入的n是偶数时才会出现死循环,否则不会

B) 只有输入的n是奇数时才会出现死循环,否则不会

C) 只有输入的n是大于1000的整数时才会出现死循环,否则不会

D) 输入任何整数都会出现死循环

(29)在窗体上有1个名称为CommonDialog1的通用对话框和1个名称为Command1的命令按钮,以及其他一些控件。要求在程序运行时,单击Command1按钮,则显示打开文件对话框,并在选择或输入了1个文件名后,就可以打开该文件。以下是Command1_Click事件过程的两种算法

算法1:

Private Sub Command1_Click()

CommonDialog1.ShowOpen

Open CommonDialog1.FileName For Input As#1

End Sub

算法2:

Private Sub Command1_Click()

CommonDialog1.ShowOpen

IfCommonDialog1.FileName<>””Then

Open CommonDialog1.FileName For Input As#1

End If

End Sub

下面关于这两种算法的叙述中正确的是

A) 显示打开文件对话框后若未选择或输入任何文件名,则算法2会出错,算法1不会

B) 显示打开文件对话框后若未选择或输入任何文件名,则算法1会出错,算法2不会

C) 两种算法的执行结果完全一样

D) 算法1允许输入的文件名中含有空格,而算法2不允许

(30)窗体上有1个名称为List的列表框,其中已经输入了若干个项目(如图所示):还有2个文本框,名称分别为Text1、Text2, 1个名称为Command1的命令按钮,并有以下程序

Private Sub Command1_Click()

Dim str As String, s As String, k As Integer

s=Text1

Str=””

For k=List1.ListCount-1 to 0 Step-1

If InStr(List.List(k),s)>0 then

str=str&List.List(k)&” ”

End If

Next k

If str=””Then

Text2=”没有匹配的项目”

Else

Text2=str

End If

End Sub

程序运行时,在Text1中输入“京”,单击命令按钮,则在Text2中显示的内容是

A) 京 B) 北京 南京

C) 南京 D) 没有匹配的项目

(31)在窗体上画1一个名称为Command1的命令按钮,并编写以下程序

Private Sub Command1_Click()

Print fun(“ABCDEFG”)

End Sub

Function fun(st As String) As String

stlen=Len(st)

temp=””

For k=1 To stlen/2

temp=temp+Mid(st,k,1)+Mid(st,stlen-k+1,1)

Next k

fun=temp

End Function

程序运行时,单击命令按钮,则窗体上显示的是

A)ABCDEFG B)AGBFCE C)GFEDCBA D)AGBFCED

(32)在窗体上先后画2个图片框,名称分别为Picture1和banana,banana中添加了香蕉图片(见图1),且将banana.DragMode属性设置为1。要求程序运行时,可以用鼠标把banana拖拽到Picture1中(见图2)。能实现此功能的事件过程是

图1 图2

A) Priate Sub Form_DragDrop(Source As Control,X As Single,Y As Single)

banana.Move Picture1.Left+X,Picture1.Top+Y)

End Sub

B)Private Sub banana _DragDrop(Source As Control,X As Single,Y As Single )

Source.Move Picture1.Left+X.Picture1.Top+Y

End Sub

C) B)Private Sub Picture1_DragDrop(Source As Control,X As Single,Y As Single )

Source.Move Picture1.Left+X.Picture1.Top+Y

End Sub

D) B)Private Sub Picture1_DragDrop(Source As Control,X As Single,Y As Single )

banana.Move banana.Left+X, banana.Top+Y

End Sub

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

Option Base 1

Pribate Sub Command1_Click()

Dim a(5,5) As Integer

For i=1 To 5

For j=1 To 5

a(i,j)=(i+j)*5\10

Next j

Next i

s=0

For i=1 To 5

s=s+a(i,i)

Next i

Print s

End Sub

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

A) 15 B)13 C)11 D)9

(34)在窗体上从左到右有Text1、Text2两个文本框(见图),要求程序运行时,在Text1中输入1个分数后按回车键,则判断分数的合法性,若分数为0~100中的1个数,周围光标移到Text2中;否则光标不动,并弹出对话框显示“分数错”,下面程序中正确的是

A)Private Sub Text1__KeyPress(KeyAscii AS Integer)

If KeyAscii=13 Then ‘回车符的ACSII码是13

a=Val(Text1)

If a>=0 or a<=100 Then

Text2.SetFocus

Else

Text1.SetFocus: MsgBox(“分数错”)

End If

End If

End Sub

B) Private Sub Text1__KeyPress(KeyAscii AS Integer)

If KeyAscii=13 Then ‘回车符的ACSII码是13

a=Val(Text1)

If a>=0 And a<=100 Then

Text1.SetFocus

Else

Text2.SetFocus: MsgBox(“分数错”)

End If

End If

End Sub

C) Private Sub Text1__KeyPress(KeyAscii AS Integer)

If KeyAscii=13 Then ‘回车符的ACSII码是13

a=Val(Text1)

If a<0 And a>100 Then

Text2.SetFocus

Else

Text1.SetFocus: MsgBox(“分数错”)

End If

End If

End Sub

D) Private Sub Text1__KeyPress(KeyAscii AS Integer)

If KeyAscii=13 Then ‘回车符的ACSII码是13

a=Val(Text1)

If a>=0 And a<=100 Then

Text2.SetFocus

Else

Text1.SetFocus: MsgBox(“分数错”)

End If

End If

End Sub

(35)在窗体上画2个命令按钮,名称分别为Command1、command2,并编写如下程序

Const n=5,m=4

Dim a(m,n)

Private Sub Command1_Click()

K=1

For i=1 To m

For j=1 To n

a(i,j)=k

k=k+1

Next j

Next i

End Sub

Private Sub Command2_Click()

Summ=0

For i=1 To m

For j=1 To n

If i=1 Or i=m Then

Summ=summ+a(i,j)

Else

If j=1 Or j=n Then

Summ=summ+a(i,j)

End If

End If

Next j

Next i

Print summ

End Sub

过程Command1_Click()的作用是二维数组a 中存放1个 m行n列的矩阵;过程Command2_Click()的作用是

A) 计算矩阵外围一圈元素的累加和

B) 计算矩阵除外一圈以外的所有元素的累加和

C) 计算矩阵第1列和最后一列元素的累加和

D) 计算矩阵第1行和最后一行元素的累加和

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

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

(1)在深度为7的满二叉树中,度为2的结点个数为___1___。

(2)软件测试分为白箱(盒)测试和黑箱(盒)测试,等价类划分法属于____2___ 测试。

(3)在数据库系统中,实现各种数据管理功能的核心软件称为 数据库管理系统___3______

(4)软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。编码和测试属于 __4__阶段。

(5)在结构化分析使用的数据流图(DFD)中,利用 __5___ 对其中的图形元素进行确切解释。

(6)下面程序的功能是从键盘输入1个大于100的整数m,计算并输出满足不等式的最大的n。请填空

Private Sub Command1__Click()

Dim s ,m,n AS Integer

m=Val(InputBox(“请输入一个大于100的整数”))

n= _____6______

s=0

Do While s<m

N=n+1

S=s+n*n

Loop

Print “满足不等式的最大n是”: ____7______

End Sub

(7)下面程序的功能是把文件file1.txt中重复字符去掉后(即若有多个字符相同,则只保留1个)写入文件file2.txt。请填空。

Private Sub Command1__Click()

Dim inchar AS String,temp AS String,outchar AS String

Outchar=” ”

Open=”file1.txt” For Input AS #1

Open=”file2.txt” For Output AS ___8____

n=LOF( __9____ )

inchar=Input$(n,1)

For k=1 To n

temp=Mid(inchar,k,1)

If InStr(outchar,temp)= ___10____ Then

outchar=outchar & temp

End If

Next k

print #2, ____11_____

close #2

close #1

End Sub

(8)在窗体上先画1个名为Text1的文本框和平个名为Label1的标签,再画1个名为OP1的有4个单选按钮数组,其Index属性按季度顺序为0∽3(见图1)。在文件sales.txt中按月份顺序存有某企业某年12个月的销售额。要求在程序执行时,鼠标单击1个单选按钮,则Text1中显示相应季度的销售总额,并把相应的文字显示在标签上。图2是单击“第3季度”单选按钮产生的结果。请填空。

Dim sales(12) As Long

Private Sub Form__Load()

Open “sales.txt” For Input AS #1

For k=1 To 12

Input #1,sales(k)

Next k

Close #1

End Sub

Private Sub ___12______ (Index, AS Integer)

Dim sum AS Long ,k AS Ingeger,month AS Ingeger

sum=0

month=Index* ____13_____

For k=1 To 3

month=month+1

sum=sum+sales(month)

Next k

Label1.Caption=Opl(Index). ______14______ & “销售总额:”

Text1=sum

End Sub

(9)某人编写如下函数来判断a是否为素数,若是,则函数返回True;否则返回False

Function Prime(a As Integer)AS Boolean

Dim k As Interger,isprime AS Boolean

If a<2 Then

isprime=False

Else

isprime=True

k=2

Do While k<a/2 And isprime

If a Mod k=0 Then

isprime=False

Else

k=k+1

End IF

LOOP

End If

prime=isprime

End Function

在测试时发现有1个非素数也被判断为素数,这个错判的数是 ___15____。