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

字號:

(1) 在深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個數(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) 一些重要的程序語言(如C語言和Pascal語言) 允許過程的遞歸調(diào)用。而實(shí)現(xiàn)遞歸調(diào)用中的存儲分配通常用
     A) 棧
     B) 堆
     C) 數(shù)組
     D) 鏈表
     答案:A
    (4) 軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括軟件開發(fā)技術(shù)和
     A) 消除軟件危機(jī)
     B) 軟件工程管理
     C) 程序設(shè)計自動化
     D) 實(shí)現(xiàn)軟件可重用
     答案:B
    (5) 開發(fā)軟件時對提高開發(fā)人員工作效率至關(guān)重要的是
     A) 操作系統(tǒng)的資源管理功能
     B) 先進(jìn)的軟件開發(fā)工具和環(huán)境
     C) 程序人員的數(shù)量
     D) 計算機(jī)的并行處理能力
     答案:B
    (6) 在軟件測試設(shè)計中,軟件測試的主要目的是
     A) 實(shí)驗(yàn)性運(yùn)行軟件
     B) 證明軟件正確
     C) 找出軟件中全部錯誤
     D) 發(fā)現(xiàn)軟件錯誤而執(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ù)庫系統(tǒng)的敘述中正確的是
     A) 數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余
     B) 數(shù)據(jù)庫系統(tǒng)避免了一切冗余
     C) 數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致
     D) 數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)
     答案:A
    (10) 數(shù)據(jù)庫系統(tǒng)的核心是
     A) 數(shù)據(jù)庫
     B) 數(shù)據(jù)庫管理系統(tǒng)
     C) 模擬模型
     D) 軟件工程
     答案:B
    (11) 下列說法錯誤的是
     A) 窗體文件的擴(kuò)展名為.frm
     B) 一個窗體對應(yīng)一個窗體文件
     C) Visual Basic中的一個工程只包含一個窗體
     D) Visual Basic中一個工程最多可以包含255個窗體
     答案: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)從鍵盤輸入一個作為雙精度變量a的值的語句是
     A) a=InputBox()
     B) a=InputBox("請輸入一個值")
     C) a=Val(InputBox("請輸入一個值") )
     D) a=Val(InputBox() )
     答案:C
    (16) 下列符號常量的聲明中,不合法的是
     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)制用戶對所用的變量進(jìn)行顯式聲明,這可以在哪里設(shè)置?
     A) "屬性"對話框
     B) "程序代碼"窗口
     C) "選項(xiàng)"對話框
     D) 對象瀏覽器
     答案:C
    (18) 下列語句中,獲得列表框List1中項(xiàng)目個數(shù)的語句是
     A) x=List1.ListCount
     B) x=ListCount
     C) x=List1.ListIndex
     D) x=ListIndex
     答案:A
    (19) 要獲得當(dāng)前驅(qū)動器應(yīng)使用驅(qū)動器列表框的屬性是
     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)在滾動條內(nèi)拖動滾動塊時觸發(fā)
     A) KeyUp事件
     B) KeyPress事件
     C) Scroll事件
     D) Change事件
     答案:C
    (22) 設(shè)有聲明語句
    Dim b(-1 To 10, 2 To 9, 20) As Integer
    則數(shù)組b中全部元素的個數(shù)
     A) 2310
     B) 2016
     C) 1500
     D) 1658
     答案:B
    (23) 設(shè)在窗體上有個文本框,然后編寫如下的事件過程:
    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ī)出幾個數(shù)
     D) 文本框平均內(nèi)容無變化
     答案:D
    (24) 設(shè)已經(jīng)在"菜單編輯器"中設(shè)計了窗體的快捷菜單,其菜單為Bs,取消其"可見"屬性,運(yùn)行時,在以下事件過程中,可以使快捷菜單響應(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)用字體對話框來設(shè)置文本框字體,單擊按鈕彈出對話框后,按Cancel鍵退出對話框,則
    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) 程序出錯!
     答案: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)行時從鍵盤上輸入字符"-",則輸出結(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) 在窗體上畫一個命令按鈕,然后編寫下列程序
     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) 單擊按鈕時,以下程序運(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)中,每一個結(jié)點(diǎn)只有一個前件,稱為父結(jié)點(diǎn),沒有前件的結(jié)點(diǎn)只有一個,稱為樹的根結(jié)點(diǎn);每一個結(jié)點(diǎn)可以有多個后件,它們都稱為該結(jié)點(diǎn)的子結(jié)點(diǎn)。沒有后件的結(jié)點(diǎn)稱為葉子結(jié)點(diǎn)。
    (2) Jackson結(jié)構(gòu)化程序設(shè)計方法是英國的M.Jackson提出的,它是一種面向 【2】 的設(shè)計方法。
     答案:數(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椭?,最基本的概念是對象?【3】 。
     答案:類
     解析: 面向?qū)ο竽P椭?,最基本的概念是對象和類。對象是現(xiàn)實(shí)世界中實(shí)體的模型化;將屬性集和方法集相同的所有對象組合在一起,可以構(gòu)成一個類。
    (4) 軟件設(shè)計模塊化的目的是 【4】 。
     答案:降低復(fù)雜性
     解析: 模塊化是指解決一個復(fù)雜問題時自頂向下逐層把軟件系統(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)輸入以下語句
    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對應(yīng)的ASCII碼是字符A,所以顯示的結(jié)果應(yīng)該是A。
    (7) 下列程序是判斷一個整數(shù)(>=3) 是否為素數(shù),請補(bǔ)充完整。
    Dim n As Integer
     n=InputBox("請輸入一個整數(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; "是一個素數(shù)。"
     Else
     Print n; "不是一個素數(shù)。"
     End If
     答案:swit=0
     swit=1
     解析:素數(shù)是只能被1和本身整除的正整數(shù),在本題的程序中,swit是一個標(biāo)志變量,如果"swit=0",則表示n不能被整除;如果能被一個整數(shù)整除,則swit變?yōu)?;
     While循環(huán)執(zhí)行的條件有兩個,一個是"I<=k",另一個是"swit=0",必須兩個條件同時成立才執(zhí)行循環(huán),當(dāng)I>k時,顯然不必再檢查n是否能被I整除;而如果"swit=1",則表示n已被整除,肯定不是素數(shù),也不必檢查了。
    只有"I<=k"和"swit=0"兩者同時成立時才需要檢查"n是否為素數(shù)",循環(huán)只有一個判斷操作,即判斷n能否被I整除,如果不能,則I=I+1。以便為下一次判斷作準(zhǔn)備。
    (8) 下面程序是用來打印九九乘法表的,請補(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語句總是出現(xiàn)在If語句或Select Case語句內(nèi)部,而If語句或Select Case語句在循環(huán)內(nèi)嵌套,用Exit語句中斷循環(huán)。函數(shù)首先定義了兩個Integer型變量i、j,并將空格賦給Str1;第一個For循環(huán)的變量I從1到9步長為1,第二個循環(huán)的變量i也是從1到9步長為1,循環(huán)體為選擇結(jié)構(gòu),它是用來輸出i*j的值,所以j的值應(yīng)該小于此時i的值,那么If的判斷語句為j<=i,當(dāng)滿足條件時執(zhí)行Then后面的語句,即輸出i*j的值,如果不滿足執(zhí)行Else后面的語句,并跳出內(nèi)循環(huán)。
    (9) 在窗體上有一個命令按鈕,然后編寫如下程序:
    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("請輸入一個數(shù)")
     s=Trans(m)
    End Sub
    程序運(yùn)行時,單擊命令按鈕,在輸入對話框中輸入"789",輸出結(jié)果為 【11】 ,在輸入
    對話框中輸入"987"輸出 【12】 ,在輸入對話框中輸入"879",輸出結(jié)果為 【13】 。
     答案:504
     504
     解析: 關(guān)鍵字ByVal用來實(shí)現(xiàn)傳值,也就是說在定義通用過程時,如果形參前面有關(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的個位數(shù)字與k相乘,然后賦給k,第一次循環(huán)時,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"時執(zhí)行相同的操作,結(jié)果都為504??梢钥闯觯顺绦蚩捎糜谇笠粋€數(shù)值各位上數(shù)值的乘積。
    (10) 下面程序的功能是產(chǎn)生10個小于100(不含100) 的隨機(jī)正整數(shù),并統(tǒng)計其中5的倍數(shù)所占比例,但程序不完整,請補(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作計數(shù)器,累計計算能被5整除的數(shù)的個數(shù)。