古詩詞大全網 - 成語故事 - 2008年4月全國計算機等級考試vb筆試真題

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____。