2010年3月全國計算機等級考試二級筆試試卷
Visual Basic數(shù)據(jù)庫程序設(shè)計
(考試時間90分鐘,滿分100分)
一、選擇題(每小題2分,共70分)
下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將正確選項填涂在答題卡相應位置上,答在試卷上不得分。
(1)下列敘述中正確的是 A)對長度為n的有序鏈表進行查找,最壞情況下需要的比較次數(shù)為n B)對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為(n/2) C)對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為(log2n) D)對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為(nlog2n)
(2)算法的時間復雜度是指 A)算法的執(zhí)行時間 B)算法所處理的數(shù)據(jù)量 C)算法程序中的語司或指令條數(shù) D)算法在執(zhí)行過程中所需要的基本運算次數(shù)
(3)軟件按功能可以分為:應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)軟件的是 A)編輯軟件 B)操作系統(tǒng) C)教務管理系統(tǒng) D)瀏覽器
(4)軟件(程序)調(diào)試的任務是 A)診斷和改正程序中的錯誤 B)盡可能多地發(fā)現(xiàn)程序中的錯誤 C)發(fā)現(xiàn)并改正程序中的所有錯誤 D)確定程序中錯誤的性質(zhì)
(5)數(shù)據(jù)流程圖(DFD圖)是 A)軟件概要設(shè)計的工具 B)軟件詳細設(shè)計的工具 C)結(jié)構(gòu)化方法的需求分析工具 D)面向?qū)ο蠓椒ǖ男枨蠓治龉ぞ?SPAN lang=EN-US>
(6)軟件生命周期可分為定義階段,開發(fā)階段和維護階段。詳細設(shè)計屬于 A)定義階段 B)開發(fā)階段
C)維護階段 D)上述三個階段
(7)數(shù)據(jù)庫管理系統(tǒng)中負責數(shù)據(jù)模式定義的語言是 A)數(shù)據(jù)定義語言 B)數(shù)據(jù)管理語言
C)數(shù)據(jù)操縱語言 D)數(shù)據(jù)控制語言
(8)在學生管理的關(guān)系數(shù)據(jù)庫中,存取一個學生信息的數(shù)據(jù)單位是 A)文件 B)數(shù)據(jù)庫 C)字段 D)記錄
(9)數(shù)據(jù)庫設(shè)計中,用E-R圖來描述信息結(jié)構(gòu)但不涉及信息在計算機中的表示,它屬于數(shù)據(jù)庫設(shè)計的 A)需求分析階段 B)邏輯設(shè)計一階段
C)概念設(shè)計階段 D)物理設(shè)計階段
(10)有兩個關(guān)系R和T如下:
|
R |
|
|
|
T |
|
A |
B |
C |
|
A |
B |
C |
a |
1 |
2 |
|
c |
3 |
2 |
b |
2 |
2 |
|
d |
3 |
2 |
c |
3 |
2 |
|
|
|
|
d |
3 |
2 |
|
|
|
|
則由關(guān)系R得到關(guān)系T的操作是 A)選擇 B)投影 C)交 D)并
(11)在VB集成環(huán)境中要結(jié)束一個正在運行的工程,可單擊工具欄上的一個按鈕,這個按鈕是
(12)設(shè)x是整型變量,與函數(shù)Ⅱf(x>0,-x,x)有相同結(jié)果的代數(shù)式是 A)|x| B)-|x| C)x D)-x
(13)設(shè)窗體文件中有下面的事件過程: Private Sub Command1_Click() Dim s a%=100 Print a End Sub 其中變量a和s的數(shù)據(jù)類型分別是 A)整型,整型 B)變體型,變體型 C)整型,變體型 D)變體型,整型
(14)下面哪個屬性肯定不是框架控件的屬性 A)Text B)Caption C)Left D)Enabled
15)下面不能在信息框中輸出“VB”的是 A)MsgBox "VB" B)x=MsgBox("VB") C)MsgBox("VB") D)Call MsgBox "VB"
(16)窗體上有一個名稱為Option1的單選按鈕數(shù)組,程序運行時,當單擊某個單選按鈕時,會調(diào)用下面的事件過程 Private Sub Option1_C1ick(Index As Integer) … End Sub 下面關(guān)于此過程的參數(shù)Index的敘述中正確的是 A)Index為1表示單選按鈕被選中,為O表示未選中 B)Index的值可正可負 C)Index的值用來區(qū)分哪個單選按鈕被選中 D)Index表示數(shù)組中單選按鈕的數(shù)量
(17)設(shè)窗體中有一個文本框Text1,若在程序中執(zhí)行了Text1.SetFocus,則觸發(fā) A)Text1的SetFocus事件 B)Text1的GotFocus事件 C)Text1的LostFocus事件 D)窗體的GotFocus事件
(18)VB中有3個鍵盤事件:KeyPress、KeyDown、KeyUp,若光標在Text1文本框中,則每輸入一個字母 A)這3個事件都會觸發(fā) B)只觸發(fā)KeyPress事件 C)只觸發(fā)KeyDown、KeyUp事件 D)不觸發(fā)其中任何一個事件
(19)下面關(guān)于標準模塊的敘述中錯誤的是 A)標準模塊中可以聲明全局變量 B)標準模塊中可以包含一個Sub Main過程,但此過程不能被設(shè)置為啟動過程 C)標準模塊中可以包含一些Public過程 D)一個工程中可以含有多個標準模塊
(20)設(shè)窗體的名稱為Form1,標題為Win,則窗體的MouseDown事件過程的過程名是 A)Form1_MouseDown B)Win_MouseDown C)Form_MouseDown D)MouseDown_Form1
(21)下面正確使用動態(tài)數(shù)組的是 A)Dim arr() As Integer … ReDim arr(3,5) B)Dim arr() As Integer … ReDim arr(50)As String C)Dim arr() … ReDim arr(50) As Integer D)Dim arr(50) As Integer … ReDim arr(20)
(22)下面是求最大公約數(shù)的函數(shù)的首部 Function gcd(ByVal x As Integer, ByVal y As Integer) As Integer 若要輸出8、12、16這3個數(shù)的最大公約數(shù),下面正確的語句是 A)Print gcd(8,12),gcd(12,16),gcd(16,8) B)Print gcd(8,12,16) C)Print gcd(8),gcd(12),gcd(16) D)Print gcd(8,gcd(12,16))
(23)有下面的程序段,其功能是按圖1所示的規(guī)律輸出數(shù)據(jù) Dim a(3,5) As Integer For i=1 To 3 For j=1 To 5 A(i,j)=i+j Print a(i,j); Next Print
Next
若要按圖2所示的規(guī)律繼續(xù)輸出數(shù)據(jù),則接在上述程序段后面的程序段應該是 A)For i=1 To 5 For j=1 To 3 Print a(j,i); Next Print Next B)For i=1 To 3 For j=1 To 5 Print a(j,i); Next Print Next C)For j=1 To 5 For i=1 To 3 Print a(j,i); Next Print Next D)For i=1 To 5 For j=1 To 3 Print a(i,j); Next Print Next
(24)窗體上有一個Text1文本框,一個Command1命令按鈕,并有以下程序 Private Sub Commandl_Click() Dim n If Text1.Text<>"23456" Then n=n+1 Print "口令輸入錯誤" & n & "次" End If End Sub
希望程序運行時得到左圖所示的效果,即:輸入口令,單擊“確認口令”命令按鈕,若輸入的口令不是“123456”,則在窗體上顯示輸入錯誤口令的次數(shù)。但上面的程序?qū)嶋H顯示的是右圖所示的效果,程序需要修改。下面修改方案中正確的是 A)在Dim n語句的下面添加一句:n=O B)把Print "口令輸入錯誤" & n & "次"改為Print "口令輸入錯誤" +n+"次" C)把Print "口令輸入錯誤" & n & "次"改為Print "口令輸入錯誤"&Str(n)&"次" D)把Dim n改為Static n
(25)要求當鼠標在圖片框P1中移動時,立即在圖片框中顯示鼠標的位置坐標。下面能正確實現(xiàn)上述功能的事件過程是 A)Private Sub P1_MouseMove(Button AS Integer,Shift As Integer,X As Single, Y As Single) Print X,Y End Sub B)Private Sub P1_MouseDown(Button AS Integer,Shift As Integer,X As Single, Y As Single) Picture.Print X,Y End Sub C) Private Sub P1_MouseMove(Button AS Integer,Shift As Integer,X As Single, Y As Single) P1.Print X,Y End Sub D)Private Sub Form_MouseMove(Button AS Integer,Shift As Integer,X As Single, Y As Single) P1.Print X,Y End Sub
(26)計算二的近似值的一個公式是 。 某人編寫下面的程序用此公式計算并輸出π的近似值: Private Sub Comand1_Click() PI=1 Sign=1 n=20000 For k=3 To n Sign=-Sign/k PI=PI+Sign/k Next k Print PI*4 End Sub 運行后發(fā)現(xiàn)結(jié)果為3.22751,顯然,程序需要修改。下面修改方案中正確的是 A)把For k=3 To n 改為 For k=1 To n B)把n=20000改為n=20000000 C)把For k=3 To n改為For k=3 To n Step 2 D)把PI=1改為PI=0
(27)下面程序計算并輸出的是 Private Sub Comand1_Click() a=10 s=0 Do s=s+a*a*a a=a-1 Loop Until a<=0 Print s End Sub A)13+23+33+…+103的值 B)10!+…+3!+2!+1!的值 C)(1+2+3+…+10)3的值 D)10個103的和
(28)若在窗體模塊的聲明部分聲明了如下自定義類型和數(shù)組 Private Type rec Code As Integer Caption As String End Type Dim arr(5) As rec 則下面的輸出語句中正確的是 A)Print arr.Code(2),arr.Caption(2) B)Print arr.Code,arr.Caption C)Print arr(2).Code,arr(2).Caption D)Print Code(2),Caption(2)
(29)設(shè)窗體上有一個通用對話框控件CD1,希望在執(zhí)行下面程序時,打開如圖所示的文件對話框 Private Sub Comand1_Click() CD1.DialogTitle="打開文件" CD1.InitDir="C:\" CD1.Filter="所有文件|*.*|Word文檔|*.doc|文本文件|*.Txt" CD1.FileName="" CD1.Action=1 If CD1.FileName=""Then Print"未打開文件" Else Print"要打開文件"& CD1.FileName End If End Sub
但實際顯示的對話框中列出了C:\下的所有文件和文件夾,“文件類型”一欄中顯示的是“所有文件”。下面的修改方案中正確的是 A)把CD1.Action=1改為CD1.Action=2 B)把“CD1.Filter=”后面字符串中的“所有文件”改為“文本文件” C)在語句CD1.Action=1的前面添加:CD1.FilterIndex=3 D)把CD1.FileName=""改為CD1.FileName="文本文件"
(30)下面程序運行時,若輸入395,則輸出結(jié)果是 Private Sub Comand1_Click() Dim x% x=InputBox("請輸入一個3位整數(shù)") Print x Mod 10,x\100,(x Mod 100)\10 End Sub A)3 9 5 B)5 3 9 C)5 9 3 D)3 5 9
(31)窗體上有List1、List2兩個列表框,List1中有若干列表項(見圖),并有下面的程序: Private Sub Comand1_Click() For k=List1.ListCount-1 To 0 Step -1 If List1.Selected(k) Then List2.AddItem List1.List(k) List1.RemoveItem k End If Next k End Sub
程序運行時,按照圖示在List1中選中2個列表項,然后單擊Commandl命令按鈕,則產(chǎn)生的結(jié)果是 A)在List2中插入了“外語”、“物理”兩項 B)在List1中刪除了“外語”、“物理”兩項 C)同時產(chǎn)生A)和B)的結(jié)果 D)把List1中最后1個列表項刪除并插入到List2中
(32)設(shè)工程中有2個窗體: Form1、Form2,Form1為啟動窗體。Form2中有菜單。其結(jié)構(gòu)如表。要求在程序運行時,在Form1的文本框Text1中輸入口令并按回車鍵(回車鍵的ASCII碼為13)后,隱藏Form1,顯示Form2。若口令為“Teacher”,所有菜單項都可見;否則看不到“成績錄入”菜單項。為此,某人在Form1窗體文件中編寫如下程序: Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii=13 Then If Text1.Text="Teacher" Then Form2.input.visible=True Else Form2.input.visible=False End If End If Form1.Hide Form2.Show End Sub
程序運行時發(fā)現(xiàn)剛輸入口令時就隱藏了Form1,顯示了Form2,程序需要修改。下面修改方案中正確的是 A)把Form1中Text1文本框及相關(guān)程序放到Form2窗體中 B)把Form1.Hide、Form2.Show兩行移到2個End If之間 C)把If KeyAscii=13 Then改為 If KeyAscii="Teaeher" Then D)把2個Form2.input.Visible中的“Form2”刪去
(33)某人編寫了下面的程序,希望能把Text1文本框中的內(nèi)容寫到out.txt文件中 Private Sub Comand1_Click() Open "out.txt" For Output As #2 Print "Text1" Close #2 End Sub 調(diào)試時發(fā)現(xiàn)沒有達到目的,為實現(xiàn)上述目的,應做的修改是 A)把Print "Text1"改為Print #2,Text1 B)把Print "Text1"改為Print Text1 C)把Print "Text1"改為Write "Text1" D)把所有#2改為#1
(34)窗體上有一個名為Command1的命令按鈕,并有下面的程序: Private Sub Comand1_Click() Dim arr(5) As Integer For k=1 To 5 arr(k)=k Next k prog arr() For k=1 To 5 Print arr(k) Next k End Sub Sub prog(a() As Integer) n=Ubound(a) For i=n To 2 step -1 For j=1 To n-1 if a(j) t=a(j):a(j)=a(j+1):a(j+1)=t End If Next j Next i End Sub 程序運行時,單擊命令按鈕后顯示的是 A)12345 B)54321 C)01234 D)43210
(35)下面程序運行時,若輸入“Visual Basic Programming”,則在窗體上輸出的是 Private Sub Comand1_Click() Dim count(25) As Integer, ch As String ch=Ucase(InputBox("請輸入字母字符串")) For k=1 To Len(ch) n=Asc(Mid(ch,k,1))-Asc("A") If n>=0 Then Count(n)=Count(n)+ 1 End If Next k m=count(0) For k=1 To 25 If m m=count(k) End If Next k Print m End Sub A)0 B)1 C)2 D)3
二、填空題(每空2分,共30分)
請將每一個空的正確答案寫在答題卡【1】~【15】序號的橫線上,答在試卷上不得分。
(1)一個隊列的初始狀態(tài)為空。現(xiàn)將元素A,B,C,D,E,F,5,4,3,2,1依次入隊,然后再依次退隊,則元素退隊的順序為 【1】 。
(2)設(shè)某循環(huán)隊列的容量為50,如果頭指針front=45(指向隊頭元素的前一位置),尾指針rear=10(指向隊尾元素),則該循環(huán)隊列中共有 【2】 個元素。
(3)設(shè)二叉樹如下:
對該二叉樹進行后序遍歷的結(jié)果為 【3】 。
(4)軟件是 【4】 、數(shù)據(jù)和文檔的集合。
(5)有一個學生選課的關(guān)系,其中學生的關(guān)系模式為:學生(學號,姓名,班級,年齡),課程的關(guān)系模式為:課程(課號,課程名,學時),其中兩個關(guān)系模式的鍵分別是學號和課號,則關(guān)系模式選課可定義為:選課(學號, 【5】 ,成績)。
(6)為了使復選框禁用(即呈現(xiàn)灰色),應把它的Value屬性設(shè)置為 【6】 。
(7)在窗體上畫一個標簽、一個計時器和一個命令按鈕,其名稱分別為Labl1、Timer1和Command1,如圖1所示。程序運行后,如果單擊命令按鈕,則標簽開始閃爍,每秒鐘“歡迎”二字顯示、消失各一次,如圖2所示。以下是實現(xiàn)上述功能的程序,請?zhí)羁铡?/FONT> Private Sub Form_Load() Label1.Caption="歡迎" Timer1.Enabled=False Timer1.Interval= 【7】 End Sub Private Sub Timer1_Timer() Label1.Visible= 【8】 End Sub Private Sub command1_Click() 【9】 End Sub
(8)有如下程序: Private Sub Form_Click() n=10 i=0 Do i=i+n n=n-2 Loop While n>2 Print i End Sub 程序運行后,單擊窗體,輸出結(jié)果為 【10】 。
(9)在窗體上畫一個名稱為Command1的命令按鈕。然后編寫如下程序: Option Base 1 Private Sub Command1_Click() Dim a(10) As Integer For i=1 To 10 a(i)=i Next Call swap ( 【11】 ) For i=1 To 10 Print a(i); Next End Sub Sub swap(b() As Integer) n=Ubound(b) For i=1 To n / 2 t=b(i) b(i)=b(n) b(n)=t 【12】 Next End Sub 上述程序的功能是,通過調(diào)用過程swap,調(diào)換數(shù)組中數(shù)值的存放位置,即a(1)與a(10)的值互換,a(2)與a(9)的值互換,……。請?zhí)羁铡?SPAN lang=EN-US>
(10)在窗體上畫一個文本框,其名稱為Text1,在屬性窗口中把該文本框的MultiLine屬性設(shè)置為True,然后編寫如下的事件過程: Private Sub Form_Click() Open "d:\test\smtext1.Txt" For Input As #1 Do While Not 【13】 Line Input #1, aspect$ Whole$=whole$+aspect$+Chr$(13)+Chr$(10) Loop Text1.Text=whole$ 【14】 Open "d:\test\smtext2.Txt" For Output As #1 Print #1, 【15】 Close #1 End Sub 運行程序,單擊窗體,將把磁盤文件smtext1.txt的內(nèi)容讀到內(nèi)存并在文本框中顯示出來,然后把該文本框中的內(nèi)容存入磁盤文件smtext2.txt。請?zhí)羁铡?SPAN lang=EN-US>
2010年3月全國計算機等級考試二級Visual Basic程序設(shè)計筆試答案(西賽)
一、選擇題
1.ADBAC 6.BADCA 11.DBCAD 16.CBABA 21.ADADC 26.CACCB 31.CBABD
二、填空
1.ABCDEF4321 2.15 3.EDBGHFCA 4.程序 5.課號
6.2 7.700 8.Not Label1.Visible 9.Timer1.Enabled=True 10.28
11.a() 或 a 12.n=n-1 13.EOF(1) 14.Close # 1 15.Text1.Text 或Text1
|