2007年4月全國計算機(jī)等級考試二級VB筆試試卷及參考答案

字號:

一、 選擇題(第小題2分,共70分)
    下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將正確選項填涂在答題卡相應(yīng)位置上,答在試卷上不得分。
    (1) 下列敘述中正確的是
    A) 算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)
    B) 算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量
    C) 數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應(yīng)的
    D) 算法的時間復(fù)雜度與空間復(fù)雜度一定相關(guān)
    (2) 在結(jié)構(gòu)化程序設(shè)計中,模塊劃分的原則是
    A) 各模塊應(yīng)包括盡量多的功能
    B) 各模塊的規(guī)模應(yīng)盡量大
    C) 各模塊之間的聯(lián)系應(yīng)盡量緊密
    D) 模塊內(nèi)具有高內(nèi)聚度、模塊間具有低耦合度
    (3) 下列敘述中正確的是
    A) 軟件測試的主要目的是發(fā)現(xiàn)程序中的錯誤
    B) 軟件測試的主要目的是確定程序中錯誤的位置
    C) 為了提高軟件測試的效率,由程序編制者自己來完成軟件的測試工作
    D) 軟件測試是證明軟件沒有錯誤
    (4) 下面選項中不屬于面向?qū)ο蟪绦蛟O(shè)計特征的是
    A)繼承性 B)多態(tài)性 C)類比性 D)封裝性
    (5) 下列對隊列的敘述正確的是
    A) 隊列屬于非線性表
    B) 隊列按“先進(jìn)后出”原則組織數(shù)據(jù)
    C) 隊列在隊尾刪除數(shù)據(jù)
    D) 隊列按“先進(jìn)先出”原則組織數(shù)據(jù)
    (6) 對下列二叉樹
     A
     B C
    D E F X
     Y Z
    進(jìn)行前序遍歷的結(jié)果為
    A)DYBEAFCZX B)YDEBFZXCA
    C)ABDYECFXZ D)ABCDEFXYZ
    (7)某二叉樹中有n個度為2的結(jié)點,則該二叉樹中的葉子結(jié)點數(shù)為
    A)n+1 B)n-1 C)2n D)n/2
    (8)在下列關(guān)系運算中,不改變關(guān)系表中的屬性個數(shù)但能減少元組個數(shù)的是
    A)并 B)交 C)投影 D)笛卡兒乘積
    (9)在E—R圖中,用來表示實體之間聯(lián)系的圖形是
    A)矩形 B)橢圓形 C)菱形 D)平行四邊形
    (10)下列敘述中錯誤的是
    A)在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致
    B)數(shù)據(jù)庫技術(shù)的根本目標(biāo)是解決數(shù)據(jù)共享問題
    C)數(shù)據(jù)庫技術(shù)是指己有數(shù)據(jù)管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫
    D)數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持
    (11)下面可以正確定義2個整形變量和1個字符串變量的語句的是
    A)Dim n,m AS Interger,s AS String B)Dim a%,b$,c AS String
    C)Dim a AS Integer,b,c AS String D)Dim x%,y AS Integer,z AS String
    (12)下列表述中不能判斷x是否為偶數(shù)的是
    A)x/2=Int(x/2) B)x Mod 2=0 C)Fix(x/2)=x/2 D)x\2=0
    13)設(shè)在名稱為Myform的窗體上只有1個名稱為C1的命令按鈕,下面敘述中正確的是
    A)窗體的Click事件過程的過程名是Myform_Click
    B)命令按鈕的Click事件過程名是C1_Click
    C)命令按鈕的Click事件過程的過程名是Command1_Click
    (14)設(shè)窗體上有1個滾動條,要求單擊滾動條右端的◢按鈕一次,滾動條移動一定的刻度值,決定此刻度的屬性是
    A)Max B)Min C)SmallChange D)LargeChang
    (15)1個二維數(shù)組可以存放1個矩形.在程序開始有語句Option Base 0,則下面定義的數(shù)組中正好可以存放1個4*3矩陣(即只有12個元素)的是
    A)Dim a(-2 To 0,2) AS Integer B)Dim a(3,2) AS Ingeger
    C)Dim a(4,3)AS Ingeger D)Dim a(-1 To -4,-1 To -3)AS Ingeger
    (16)若設(shè)置了文本框的屬性PasswordChar=”$”,則運行程序時向文本框中輸入8個任意字符后,文本框中顯示的是
    A)8個”$” B)1個”$” C)8個”*” D)無任何內(nèi)容
    (17)設(shè)在窗體上有1個名稱為Combo1的組合框,含有5個項目,要刪除最后一項,正確的語句是
    A)Combo1.RemoveItem Combo1.Text B) Combo1.RemoveItem4
    C) Combo1.RemoveItem Combo1.ListCount D) Combo1.RemoveItem5
    (18)工程中有2個窗體,名稱分別為Form1.Form2,Form1為啟動窗體,該窗體上有命令按鈕Command1,要求程序運行后單擊該命令按鈕時顯示Form2,則按鈕的Click事件過程應(yīng)該是
    A)Private Sub Command1_Click( ) B) Private Sub Command1_Click( )
     Form2.Show Form2.Visible
    End Sub End Sub
    C) Private Sub Command1_Click( ) D)Private Sub Command1_Click( )
     Load Form2 Form2.Load
    End Sub End Sub
    (19)若在某窗體模塊中有如下事件過程
    Private Sub Command1_Click(Index AS Integer)
     ……
     End Sub
     則以下敘述中正確的是
    A) 此事件過程與不帶參數(shù)的事件過程沒有區(qū)別
    B) 有1個名稱為Command1的窗體,單擊此窗體則執(zhí)行此事件過程
    C) 有1個名稱為Command1的空件數(shù)組,數(shù)組中有多個不同類型控件
    D) 有1個名稱為Command1的空件數(shù)組,數(shù)組中有多個相同類型控件
    (20)以下循環(huán)語句中在任何情況下都至少執(zhí)行一次循環(huán)體的是
     A)Do While <條件> B)While <條件>
     循環(huán)體 循環(huán)體
     Loop Wend
    C)Do D)Do Until <條件>
     循環(huán)體 循環(huán)體
     Loop Until <條件> Loop
    (21)在窗體上有1個名為Cd1的通用對話框,為了在運行程序時打開保存文件對話框,則在程序總應(yīng)使用的語句是
     A)Cd1.Action=2 B)Cd1.Action=1
     C)Cd1.ShowSave=Ture D)Cd1.ShowSave=0
    (22)下面關(guān)于菜單的敘述中錯誤的是
     A)各級菜單中的所有菜單項的名稱必須
     B)同一子菜單中的菜單項名稱必須,但不同子菜單中的菜單項名稱可以相同
     C)彈出式菜單也用菜單編輯器編輯
    (23)已知有下面的過程
     Private Sub proc1(a As Integer,b As String,Optional x As Boolean)
     ……
     End Sub
     正確調(diào)用此過程的語句是
     A)Call procl(5) B)Call proc1 5,”abc”,False
     C)proc1(12,”abc”,True) D)proc1 5, “abc”
    (24)在窗體上有一個文件名稱為Text1的文本框和1個名稱為Command1的命令按鈕,要求在程序執(zhí)行時,每單擊命令按鈕一次,文本框向右移動一定距離。下面能夠正確實現(xiàn)上述功能的程序是
     A)Private Sub Command1_Click() B) Private Sub Command1_Click()
     Text1.Left=100 Text1.Left= Text1.Left-100
     End Sub End Sub
     C)Private Sub Command1_Click() D) Private Sub Command1_Click()
     Text1.Move.Text.Left+100 Text1.Move.Text.Left
     End Sub End Sub
    (25)某人創(chuàng)建了1個工程,其中的窗體名稱為Form1;之后又添加了1個名為Form2的窗體,并希望程序執(zhí)行時先顯示Form2窗體,那么,他需要做的工作是
     A)在工程屬性對話框中把“啟動對象”設(shè)置為Form2
     B)在Form1的Load事件過程中加入語句 Load Form2
     C)在Form2的Load事件過程中加入語句Form2.Show
     D)在Form2的TabIndex屬性設(shè)置為1,把Form1的TabIndex屬性設(shè)置為2
    (26)窗體上有1個名稱為Text1的文本框和1個名稱為Command1的命令按鈕。要求程序運行時,單擊命令按鈕,就可以把文本框中的內(nèi)容寫到文件out.txt中,每次寫入的內(nèi)容附加到文件原有內(nèi)容之后。下面能夠?qū)崿F(xiàn)上述功能的程序是
    A)Private Sub Command1_Click() B) Private Sub Command1_Click()
     Open “out.txt” For Inpit As#1 Open “out.txt” For Outpit As#1
     Print#1,Text1.Text Print#1,Text1.Text
     Close#1 Close#1
     End Sub End Sub
     C) Private Sub Command1_Click() D) Private Sub Command1_Click()
     Open “out.txt” For Append As#1 Open “out.txt” For Random As#1
     Print#1,Text1.Text Print#1,Text1.Text
     Close#1              Close#1
     End Sub End Sub
    (27)為計算1+3+5+……+99的值,某人編程如下
     k=1
     s=0
     While k<=99
     k=k+2 : s=s+k
     Wend
     Print s
    在調(diào)試時發(fā)現(xiàn)運行結(jié)果有錯誤,需要修改。下列錯誤原因和修改方案中正確的是
    A) While …Wend循環(huán)語句錯誤,應(yīng)改為For k=1 To 99 …Next k
    B) 循環(huán)條件錯誤,應(yīng)改為Whlie k<99
    C) 循環(huán)前的賦值語句k=1錯誤,應(yīng)改為k=0
    D) 循環(huán)中兩條賦值語句的順序錯誤,應(yīng)改為s=s+k : k=k+2
    (28)下面程序在調(diào)試時出現(xiàn)了死循環(huán)
     Private Sub Command1_Click()
     n=InputBox(“請輸入一個整數(shù)”)
     Do
     If n Mod 2=0 Then
     n=n+1
     Else
     n=n+2
     Else If
     Loop Until n=1000
    End Sub
    下面關(guān)于死循環(huán)的敘述中正確的是
    A) 只有輸入的n是偶數(shù)時才會出現(xiàn)死循環(huán),否則不會
    B) 只有輸入的n是奇數(shù)時才會出現(xiàn)死循環(huán),否則不會
    C) 只有輸入的n是大于1000的整數(shù)時才會出現(xiàn)死循環(huán),否則不會
    D) 輸入任何整數(shù)都會出現(xiàn)死循環(huán)
    (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
    下面關(guān)于這兩種算法的敘述中正確的是
    A) 顯示打開文件對話框后若未選擇或輸入任何文件名,則算法2會出錯,算法1不會
    B) 顯示打開文件對話框后若未選擇或輸入任何文件名,則算法1會出錯,算法2不會
    C) 兩種算法的執(zhí)行結(jié)果完全一樣
    D) 算法1允許輸入的文件名中含有空格,而算法2不允許
    (30)窗體上有1個名稱為List的列表框,其中已經(jīng)輸入了若干個項目(如圖所示):還有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中顯示的內(nèi)容是
     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
     fun=temp
    End Function
    程序運行時,單擊命令按鈕,則窗體上顯示的是
    A)ABCDEFG B)AGBFCE C)GFEDCBA D)AGBFCED
    (32)在窗體上先后畫2個圖片框,名稱分別為Picture1和banana,banana中添加了香蕉圖片(見圖1),且將banana.DragMode屬性設(shè)置為1。要求程序運行時,可以用鼠標(biāo)把banana拖拽到Picture1中(見圖2)。能實現(xiàn)此功能的事件過程是
    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
     a(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
     程序運行后,單擊命令按鈕,輸出結(jié)果是
     A) 15 B)13 C)11 D)9
    (34)在窗體上從左到右有Text1、Text2兩個文本框(見圖),要求程序運行時,在Text1中輸入1個分?jǐn)?shù)后按回車鍵,則判斷分?jǐn)?shù)的合法性,若分?jǐn)?shù)為0~100中的1個數(shù),周圍光標(biāo)移到Text2中;否則光標(biāo)不動,并彈出對話框顯示“分?jǐn)?shù)錯”,下面程序中正確的是
    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(“分?jǐn)?shù)錯”)
    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(“分?jǐn)?shù)錯”)
    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(“分?jǐn)?shù)錯”)
    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(“分?jǐn)?shù)錯”)
    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
    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=I Or j=n Then
     Summ=summ+a(i,j)
     End If
     End If
     Next j
    Next i
    Print summ
    End Sub
     過程Command1_Click()的作用是二維數(shù)組a 中存放1個 m行n列的矩陣;過程Command2_Click()的作用是
    A) 計算矩陣外圍一圈元素的累加和
    B) 計算矩陣除外一圈以外的所有元素的累加和
    C) 計算矩陣第1列和最后一列元素的累加和
    D) 計算矩陣第1行和最后一行元素的累加和
    二、填空題(每空2分,共30分)
     請將每一個空的正確答案寫在答題紙上[1]~[15]序號的橫線上,答在試卷上,答在試卷上不得分,
     注意:以命令關(guān)鍵字填空的必須寫完整
    (1)在深度為7的滿二叉樹中,度為2的結(jié)點個數(shù)為__________。
    (2)軟件測試分為白箱(盒)測試和黑箱(盒)測試,等價類劃分法屬于___________ 測試。
    (3)在數(shù)據(jù)庫系統(tǒng)中,實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為 數(shù)據(jù)庫管理系統(tǒng)__________
    (4)軟件生命周期可分為多個階段,一般分為定義階段、開發(fā)階段和維護(hù)階段。編碼和測試屬于 _____階段。
    (5)在結(jié)構(gòu)化分析使用的數(shù)據(jù)流圖(DFD)中,利用 _____ 對其中的圖形元素進(jìn)行確切解釋。
    (6)1+ + + +…….n    的的n。請?zhí)羁?BR>     Private Sub Command1__Click()
     Dim s ,m,n AS Integer
     m=Val(InputBox(“請輸入一個大于100的整數(shù)”))
     n= ______________
     s=0
     Do While s     N=n+1
     S=s+n*n
    Loop
    Print “滿足不等式的n是 ____________
    End Sub
    (7)下面程序的功能是把文件file11.txt中重復(fù)字符去掉后(即若有多個字符相同,則只保留1個)寫入文件file2.txt。請?zhí)羁铡?BR>    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 _________
    n=LOF( __________ )
    inchar=Input$(n,1)
    For k=1 To n
     temp=Mid(inchar,k,1)
     If InStr(outchar,temp)= _________ Then
     outchar=outchar & temp
    End If
    Next k
    print #2, ______________
    close #2
    close #1
    End Sub
    (8)在窗體上先畫1個名為Text1的文本框和平個名為Label1的標(biāo)簽,再畫1個名為OP1的有4個單選按鈕數(shù)組,其Index屬性按季度順序為0∽3(見圖1)。在文件sales.txt中按月份順序存有某企業(yè)某年12個月的銷售額。要求在程序執(zhí)行時,鼠標(biāo)單擊1個單選按鈕,則Text1中顯示相應(yīng)季度的銷售總額,并把相應(yīng)的文字顯示在標(biāo)簽上。圖2是單擊“第3季度”單選按鈕產(chǎn)生的結(jié)果。請?zhí)羁铡?BR>    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 ___________ (Index, AS Integer)
    Dim sum AS Long ,k AS Ingeger,month AS Ingeger
     sum=0
    month=Index* ____________
    For k=1 To 3
    month=month+1
    sum=sum+sales(month)
    Next k
    Label1.Caption=Opl(Index). ________________ & “銷售總額:”
    Text1=sum
    End Sub
    (9)某人編寫如下函數(shù)來判斷a是否為素數(shù),若是,則函數(shù)返回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 If a Mod k=0 Then
     isprime=False
    ELSE
     k=k+1
    End IF
    LOOP
    End If
     prime=isprime
    End Function
    在測試時發(fā)現(xiàn)有1個非素數(shù)也被判斷為素數(shù),這個錯判的數(shù)是 ________
    2007年4月二級全國計算機(jī)等級考試二級VB筆試參考答案
    一、選擇:
    1-10 bdacd cabca
    11-20 ddbcb abadc
    21-30 abdca cddbc
    31-35 bcada
    二.填空題
       (1)【答案】 63
       (2)【答案】黑盒
       (3)【答案】數(shù)據(jù)庫管理系統(tǒng)
       (4)【答案】開發(fā)
       (5)【答案】數(shù)據(jù)字典
       (6)【答案】0
       (7)【答案】 N-1
       (8)【答案】#2
       (9)【答案】1
       (10)【答案】0
       (11)【答案】outchar
       (12)【答案】 op1_click
       (13)【答案】3
       (14)【答案】 caption
       (15)【答案】 4