07年4月計(jì)算機(jī)等級(jí)二級(jí)VB考前密卷(1)

字號(hào):

(1) 在深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為
     A) 32
     B) 31
     C) 16
     D) 15
     答案:B
    (2) 若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點(diǎn)訪問順序是
     A) bdgcefha
     B) gdbecfha
     C) bdgaechf
     D) gdbehfca
     答案:D
    (3) 一些重要的程序語(yǔ)言(如C語(yǔ)言和Pascal語(yǔ)言) 允許過程的遞歸調(diào)用。而實(shí)現(xiàn)遞歸調(diào)用中的存儲(chǔ)分配通常用
     A) 棧
     B) 堆
     C) 數(shù)組
     D) 鏈表
     答案:A
    (4) 軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括軟件開發(fā)技術(shù)和
     A) 消除軟件危機(jī)
     B) 軟件工程管理
     C) 程序設(shè)計(jì)自動(dòng)化
     D) 實(shí)現(xiàn)軟件可重用
     答案:B
    (5) 開發(fā)軟件時(shí)對(duì)提高開發(fā)人員工作效率至關(guān)重要的是
     A) 操作系統(tǒng)的資源管理功能
     B) 先進(jìn)的軟件開發(fā)工具和環(huán)境
     C) 程序人員的數(shù)量
     D) 計(jì)算機(jī)的并行處理能力
     答案:B
    (6) 在軟件測(cè)試設(shè)計(jì)中,軟件測(cè)試的主要目的是
     A) 實(shí)驗(yàn)性運(yùn)行軟件
     B) 證明軟件正確
     C) 找出軟件中全部錯(cuò)誤
     D) 發(fā)現(xiàn)軟件錯(cuò)誤而執(zhí)行程序
     答案:D
    (7) 數(shù)據(jù)處理的最小單位是
     A) 數(shù)據(jù)
     B) 數(shù)據(jù)元素
     C) 數(shù)據(jù)項(xiàng)
     D) 數(shù)據(jù)結(jié)構(gòu)
     答案:C
    (8) 索引屬于
     A) 模式
     B) 內(nèi)模式
     C) 外模式
     D) 概念模式
     答案:B
    (9) 下述關(guān)于數(shù)據(jù)庫(kù)系統(tǒng)的敘述中正確的是
     A) 數(shù)據(jù)庫(kù)系統(tǒng)減少了數(shù)據(jù)冗余
     B) 數(shù)據(jù)庫(kù)系統(tǒng)避免了一切冗余
     C) 數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致
     D) 數(shù)據(jù)庫(kù)系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)
     答案:A
    (10) 數(shù)據(jù)庫(kù)系統(tǒng)的核心是
     A) 數(shù)據(jù)庫(kù)
     B) 數(shù)據(jù)庫(kù)管理系統(tǒng)
     C) 模擬模型
     D) 軟件工程
     答案:B
    (11) 下列說法錯(cuò)誤的是
     A) 窗體文件的擴(kuò)展名為.frm
     B) 一個(gè)窗體對(duì)應(yīng)一個(gè)窗體文件
     C) Visual Basic中的一個(gè)工程只包含一個(gè)窗體
     D) Visual Basic中一個(gè)工程最多可以包含255個(gè)窗體
     答案:C
    (12) 下列四組控件屬性中,屬性值的類型不相同的一組是
     A) Label控件的Enabled屬性與TextBox控件的Enabled屬性
     B) OptionButton控件的Value屬性與CheckBox控件的Value屬性
     C) Command控件的Default屬性與Command控件的Cancel屬性
     D) Command控件的Visible屬性與Form控件的Visible屬性
     答案:B
    (13) 下列方法中不能退出Visual Basic的是
     A) 按Alt+Q組合鍵
     B) 按下Alt+F組合鍵,然后按Esc鍵
     C) 打開"文件"菜單,執(zhí)行"退出"命令
     D) 按F10鍵,然后按F鍵,再按X鍵
     答案:D
    (14) 任何控件都有的屬性是
     A) BackColor
     B) Caption
     C) Name
     D) BorderStyle
     答案:C
    (15) 可以實(shí)現(xiàn)從鍵盤輸入一個(gè)作為雙精度變量a的值的語(yǔ)句是
     A) a=InputBox()
     B) a=InputBox("請(qǐng)輸入一個(gè)值")
     C) a=Val(InputBox("請(qǐng)輸入一個(gè)值") )
     D) a=Val(InputBox() )
     答案:C
    (16) 下列符號(hào)常量的聲明中,不合法的是
     A) Const a As Single=1.1
     B) Const a="OK"
     C) Const a As Double=Sin(1)
     D) Const a As Integer="12"
     答案:C
    (17) 在Visual Basic中,要強(qiáng)制用戶對(duì)所用的變量進(jìn)行顯式聲明,這可以在哪里設(shè)置?
     A) "屬性"對(duì)話框
     B) "程序代碼"窗口
     C) "選項(xiàng)"對(duì)話框
     D) 對(duì)象瀏覽器
     答案:C
    (18) 下列語(yǔ)句中,獲得列表框List1中項(xiàng)目個(gè)數(shù)的語(yǔ)句是
     A) x=List1.ListCount
     B) x=ListCount
     C) x=List1.ListIndex
     D) x=ListIndex
     答案:A
    (19) 要獲得當(dāng)前驅(qū)動(dòng)器應(yīng)使用驅(qū)動(dòng)器列表框的屬性是
     A) Path
     B) Drive
     C) Dir
     D) Pattern
     答案:B
    (20) 如果將文本框的MaxLength屬性設(shè)置為0,則文本框中的字符不能超過
     A) 8K
     B) 16K
     C) 32K
     D) 64K
     答案:C
    (21) 當(dāng)在滾動(dòng)條內(nèi)拖動(dòng)滾動(dòng)塊時(shí)觸發(fā)
     A) KeyUp事件
     B) KeyPress事件
     C) Scroll事件
     D) Change事件
     答案:C
    (22) 設(shè)有聲明語(yǔ)句
    Dim b(-1 To 10, 2 To 9, 20) As Integer
    則數(shù)組b中全部元素的個(gè)數(shù)
     A) 2310
     B) 2016
     C) 1500
     D) 1658
     答案:B
    (23) 設(shè)在窗體上有個(gè)文本框,然后編寫如下的事件過程:
    Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
     Const Alt=4
     Const Key_F2=&H71
     altdown%=(Shift And Alt) > 0
     f2down%=(KeyCode=Key_F2)
     If altdown% And f2down% Then
     Text1.Text="BBBBB"
     End If
    End Sub
    上述程序運(yùn)行后,如果按 【Shift+F2】 ,則在文本框中顯示得是
     A) Alt+F2
     B) BBBBB
     C) 隨機(jī)出幾個(gè)數(shù)
     D) 文本框平均內(nèi)容無變化
     答案:D
    (24) 設(shè)已經(jīng)在"菜單編輯器"中設(shè)計(jì)了窗體的快捷菜單,其菜單為Bs,取消其"可見"屬性,運(yùn)行時(shí),在以下事件過程中,可以使快捷菜單響應(yīng)鼠標(biāo)右鍵菜單的是
     A) Private Sub Form_MouseDown(Button As Integer, Shift As Integer, _
     X As Single, Y As Single)
     If Button=2 Then PopupMenu Bs, 2
     End Sub
     B) Private Sub Form_MouseDown(Button As Integer, Shift As Integer, _
     X As Single, Y As Single)
     PopupMenu Bs
     End Sub
     C) Private Sub Form_MouseDown(Button As Integer, Shift As Integer, _
     X As Single, Y As Single)
     PopupMenu Bs,0
     End Sub
     D) Private Sub Form_MouseDown(Button As Integer, Shift As Integer, _
     X As Single, Y As Single)
     If (Button=vbLeftButton) Or (Button=vbRightButton) Then PopupMenu Bs
     End Sub
     答案:A
    (25) 下列程序的功能是調(diào)用字體對(duì)話框來設(shè)置文本框字體,單擊按鈕彈出對(duì)話框后,按Cancel鍵退出對(duì)話框,則
    Private Sub Command1_Click()
     CommonDialog1.CancelError=True
     CommonDialog1.Flags=cdlCFEffects Or cdlDFBoth
     CommonDialog1.Action=4
     CommonDialog1.ShowFont
     Text1.Font.Name=CommonDialog1.FontName
     Text1.Font.Size=CommonDialog1.FontSize
     Text1.Font.Bold=CommonDialog1.FontBold
     Text1.Font.Italic=CommonDialog1.FontItalic
     Text1.Font.Underline=CommonDialog1.FontUnderline
     Text1.FontStrikethru=CommonDialog1.FontStrikethru
     Text1.ForeColor=CommonDialog1.Color
    End Sub
     A) Text1的字體不發(fā)生變化
     B) Text1的字體發(fā)生變化
     C) Text1的字體和顏色發(fā)生變化
     D) 程序出錯(cuò)!
     答案:D
    (26) 要將名為MyForm的窗體顯示出來,正確的使用方法是
     A) MyForm.Show
     B) Show.MyForm
     C) MyForm Load
     D) MyForm Show
     答案:A
    (27) 下列程序段的執(zhí)行結(jié)果為
     a=5
     For k=1 To 0
     a=a + k
     Next k
     Print k; a
     A) -1 6
     B) -1 16
     C) 1 5
     D) 11 21
     答案:C
    (28) 下列程序段的執(zhí)行結(jié)果為
     a=3
     b=1
     For I=1 To 3
     f=a + b
     a=b
     b=f
     Print f
     Next I
     A) 4 3 6
     B) 4 5 9
     C) 6 3 4
     D) 7 2 8
     答案:B
    (29) 下列程序段的執(zhí)行結(jié)果為
     I=9
     x=5
     Do
     I=I + 1
     x=x + 2
     Loop Until I >=7
     Print "I="; I
     Print "x="; x
     A) I=4x=5
     B) I=7x=15
     C) I=6x=8
     D) I=10x=7
     答案:D
    (30) 以下程序段運(yùn)行時(shí)從鍵盤上輸入字符"-",則輸出結(jié)果為
     op$=InputBox("op=")
     If op$="+" Then a=a + 2
     If op$="-" Then a=a - 2
     Print a
     A) 2
     B) -2
     C) 0
     D) +2
     答案:B
    (31) 以下程序段的輸出結(jié)果為
     Dim l, a(10) , p(3)
     k=5
     For i=0 To 10
     a(i) =i
     Next i
     For i=0 To 2
     p(i) =a(i  (i + 1) )
     Next i
     For i=0 To 2
     k=k + p(i)  2
     Next i
     Print k
     A) 20
     B) 21
     C) 56
     D) 32
     答案:B
    (32) 下列程序的執(zhí)行結(jié)果為
     Private Sub Command1_Click()
     Dim x As Integer, y As Integer
     x=12: y=20
     Call Value(x, y)
     Print x; y
     End Sub
     Private Sub Value(ByVal m As Integer, ByVal n As Integer)
     m=m * 2: n=n - 5
     Print m; n
     End Sub
     A) 20 12
     20 15
     B) 12 20
     12 25
     C) 24 15
     12 20
     D) 24 12
     12 15
     答案:C
    (33) 在窗體上畫一個(gè)命令按鈕,然后編寫下列程序
     Private Sub Command3_Click()
     Tcl 2
     Tcl 3
     Tcl 4
     End Sub
     Sub Tcl(a As Integer)
     Static x As Integer
     x=x + a
     Print x;
     End Sub
    程序運(yùn)行后,單擊命令按鈕,輸出結(jié)果為
     A) 2 3 4
     B) 2 5 9
     C) 3 5 4
     D) 2 4 3
     答案:B
    (34) 下面程序段,運(yùn)行后的結(jié)果是Private Sub Command1_Click()
     Dim b%(1 To 4) , i%, t#
     For i=1 To 4
     b(i) =i
     Next i
     t=Tof(b() )
     Print "t="; t,
     End Sub
     Function Tof(a() As Integer)
     Dim t#, i%
     t=1
     For i=2 To UBound(A)
     t=t * a(i)
     Next i
     Tof=t
     End Function
     A) t=18
     B) t=24
     C) t=30
     D) t=32
     答案:B
    (35) 單擊按鈕時(shí),以下程序運(yùn)行后的輸出結(jié)果是
     Private Sub Command1_Click()
     Dim x As Integer, y As Integer, z As Integer
     x=1: y=2: z=3
     Call God(x, x, z)
     Print x; x; z
     Call God(x, y, y)
     Print x; y; y
     End Sub
     Private Sub God(x As Integer, y As Integer, z As Integer)
     x=3 * z + 1
     y=2 * z
     z=x + y
     End Sub
     A) 6 6 12
     7 11 11
     B) 8 5 10
     5 11 11
     C) 9 6 12
     9 10 15
     D) 8 10 10
     5 9 10
     答案:A
    填空題:
    (1) 在樹結(jié)構(gòu)中,樹根結(jié)點(diǎn)沒有 【1】 。
     答案:前件
     解析: 在樹結(jié)構(gòu)中,每一個(gè)結(jié)點(diǎn)只有一個(gè)前件,稱為父結(jié)點(diǎn),沒有前件的結(jié)點(diǎn)只有一個(gè),稱為樹的根結(jié)點(diǎn);每一個(gè)結(jié)點(diǎn)可以有多個(gè)后件,它們都稱為該結(jié)點(diǎn)的子結(jié)點(diǎn)。沒有后件的結(jié)點(diǎn)稱為葉子結(jié)點(diǎn)。
    (2) Jackson結(jié)構(gòu)化程序設(shè)計(jì)方法是英國(guó)的M.Jackson提出的,它是一種面向 【2】 的設(shè)計(jì)方法。
     答案:數(shù)據(jù)結(jié)構(gòu)
     解析: 結(jié)構(gòu)化分析方法主要包括:面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法(SA-Structured analysis),面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法(JSD-Jackson system development method) 和面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法(DSSD-Data structured system development method)。
    (3) 面向?qū)ο蟮哪P椭?,最基本的概念是?duì)象和 【3】 。
     答案:類
     解析: 面向?qū)ο竽P椭?,最基本的概念是?duì)象和類。對(duì)象是現(xiàn)實(shí)世界中實(shí)體的模型化;將屬性集和方法集相同的所有對(duì)象組合在一起,可以構(gòu)成一個(gè)類。
    (4) 軟件設(shè)計(jì)模塊化的目的是 【4】 。
     答案:降低復(fù)雜性
     解析: 模塊化是指解決一個(gè)復(fù)雜問題時(shí)自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過程,由此分解來降低復(fù)雜性。
    (5) 數(shù)據(jù)模型按不同應(yīng)用層次分成3種類型,它們是概念數(shù)據(jù)模型、 【5】 和物理數(shù)據(jù)模型。
     答案:邏輯數(shù)據(jù)模型
     解析:數(shù)據(jù)模型按不同層次分成概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型三類。
    (6) 在Visual Basic的立即窗口內(nèi)輸入以下語(yǔ)句
    X=65
    ?Chr$(X)
    在窗口中顯示的結(jié)果是 【6】 。
     答案:A
     解析: Chr$()是求ASCII字符的函數(shù),格式是Chr$(表達(dá)式),其中"表達(dá)式"應(yīng)該是合法的ASCII碼值,Chr$()函數(shù)把"表達(dá)式"的值轉(zhuǎn)換為相應(yīng)的ASCII字符。本題中X=65對(duì)應(yīng)的ASCII碼是字符A,所以顯示的結(jié)果應(yīng)該是A。
    (7) 下列程序是判斷一個(gè)整數(shù)(>=3) 是否為素?cái)?shù),請(qǐng)補(bǔ)充完整。
    Dim n As Integer
     n=InputBox("請(qǐng)輸入一個(gè)整數(shù)(>=3) ")
     k=Int(Sqr(n) )
     i=2
     swit=0
     While i <=k And swit=0
     If n Mod i=0 Then
     【7】
     Else
     【8】
     End If
     Wend
     If swit=0 Then
     Print n; "是一個(gè)素?cái)?shù)。"
     Else
     Print n; "不是一個(gè)素?cái)?shù)。"
     End If
     答案:swit=0
     swit=1
     解析:素?cái)?shù)是只能被1和本身整除的正整數(shù),在本題的程序中,swit是一個(gè)標(biāo)志變量,如果"swit=0",則表示n不能被整除;如果能被一個(gè)整數(shù)整除,則swit變?yōu)?;
     While循環(huán)執(zhí)行的條件有兩個(gè),一個(gè)是"I<=k",另一個(gè)是"swit=0",必須兩個(gè)條件同時(shí)成立才執(zhí)行循環(huán),當(dāng)I>k時(shí),顯然不必再檢查n是否能被I整除;而如果"swit=1",則表示n已被整除,肯定不是素?cái)?shù),也不必檢查了。
    只有"I<=k"和"swit=0"兩者同時(shí)成立時(shí)才需要檢查"n是否為素?cái)?shù)",循環(huán)只有一個(gè)判斷操作,即判斷n能否被I整除,如果不能,則I=I+1。以便為下一次判斷作準(zhǔn)備。
    (8) 下面程序是用來打印九九乘法表的,請(qǐng)補(bǔ)充完整。
    Dim i As Integer, j As Integer, Str1$
     Str1=""
     For i=1 To 9
     For j=1 To 9
     If 【9】 Then
     Str1=Str1 + Str$(j) + "×" + Str$(i) + "=" + Str$(Val(i  j) )
     Else
     Str1=Str1 & Chr(13)
     【10】
     End If
     Next j
     Next i
     Print Str1
     答案:j<=i
     j>i
     解析: (1) Exit語(yǔ)句總是出現(xiàn)在If語(yǔ)句或Select Case語(yǔ)句內(nèi)部,而If語(yǔ)句或Select Case語(yǔ)句在循環(huán)內(nèi)嵌套,用Exit語(yǔ)句中斷循環(huán)。函數(shù)首先定義了兩個(gè)Integer型變量i、j,并將空格賦給Str1;第一個(gè)For循環(huán)的變量I從1到9步長(zhǎng)為1,第二個(gè)循環(huán)的變量i也是從1到9步長(zhǎng)為1,循環(huán)體為選擇結(jié)構(gòu),它是用來輸出i*j的值,所以j的值應(yīng)該小于此時(shí)i的值,那么If的判斷語(yǔ)句為j<=i,當(dāng)滿足條件時(shí)執(zhí)行Then后面的語(yǔ)句,即輸出i*j的值,如果不滿足執(zhí)行Else后面的語(yǔ)句,并跳出內(nèi)循環(huán)。
    (9) 在窗體上有一個(gè)命令按鈕,然后編寫如下程序:
    Function Trans(ByVal num As Long) As Long
     Dim k As Long
     k=1
     Do While num
     k=k * (num Mod 10)
     num=num \ 10
     Loop
     Trans=k
     Print Trans
    End Function
    Private Sub Command1_Click()
     Dim m As Long
     Dim s As Long
     m=InputBox("請(qǐng)輸入一個(gè)數(shù)")
     s=Trans(m)
    End Sub
    程序運(yùn)行時(shí),單擊命令按鈕,在輸入對(duì)話框中輸入"789",輸出結(jié)果為 【11】 ,在輸入
    對(duì)話框中輸入"987"輸出 【12】 ,在輸入對(duì)話框中輸入"879",輸出結(jié)果為 【13】 。
     答案:504
     504
     解析: 關(guān)鍵字ByVal用來實(shí)現(xiàn)傳值,也就是說在定義通用過程時(shí),如果形參前面有關(guān)鍵字Byval,則該參數(shù)用傳值方式傳遞,否則用傳址方式傳遞;在Sub過程中,先將輸入的"456"賦給變量m,m作為參數(shù),調(diào)用Trans過程;在Trans過程中以num作為Do While的循環(huán)條件;在循環(huán)體中,調(diào)用Mod函數(shù),將num的個(gè)位數(shù)字與k相乘,然后賦給k,第一次循環(huán)時(shí),num的值是789,所以k的值為9,執(zhí)行num = num \ 10后,num的值為78,循環(huán)三次后,num變?yōu)?,退出循環(huán),k值等于9×8×7=504,并將k的值作為返回值;當(dāng)輸入"987"或"879"時(shí)執(zhí)行相同的操作,結(jié)果都為504??梢钥闯?,此程序可用于求一個(gè)數(shù)值各位上數(shù)值的乘積。
    (10) 下面程序的功能是產(chǎn)生10個(gè)小于100(不含100) 的隨機(jī)正整數(shù),并統(tǒng)計(jì)其中5的倍數(shù)所占比例,但程序不完整,請(qǐng)補(bǔ)充完整。
    Sub PR()
     Randomize
     Dim a(10)
     For j=1 To 10
     a(i) =Int( 【14】 )
     If 【15】 Then k=k + 1
     Print a(j)
     Next j
     Print
     Print k / 10
    End Sub
     答案:(99 * Rnd)+ 1
     a(j) Mod 5 = 0
     解析: 小于100的隨機(jī)正整數(shù)用(99 * Rnd)+ 1來表示;求倍數(shù)用取模來表示,即a(j) Mod 5 = 0,用k作計(jì)數(shù)器,累計(jì)計(jì)算能被5整除的數(shù)的個(gè)數(shù)。