2010年3月全國計(jì)算機(jī)等級考試二級筆試試卷
Visual Basic數(shù)據(jù)庫程序設(shè)計(jì)
(考試時(shí)間90分鐘,滿分100分)
一、選擇題(每小題2分,共70分)
下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的。請將正確選項(xiàng)填涂在答題卡相應(yīng)位置上,答在試卷上不得分。
(1)下列敘述中正確的是 A)對長度為n的有序鏈表進(jìn)行查找,最壞情況下需要的比較次數(shù)為n B)對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為(n/2) C)對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為(log2n) D)對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為(nlog2n)
(2)算法的時(shí)間復(fù)雜度是指 A)算法的執(zhí)行時(shí)間 B)算法所處理的數(shù)據(jù)量 C)算法程序中的語司或指令條數(shù) D)算法在執(zhí)行過程中所需要的基本運(yùn)算次數(shù)
(3)軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)軟件的是 A)編輯軟件 B)操作系統(tǒng) C)教務(wù)管理系統(tǒng) D)瀏覽器
(4)軟件(程序)調(diào)試的任務(wù)是 A)診斷和改正程序中的錯(cuò)誤 B)盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤 C)發(fā)現(xiàn)并改正程序中的所有錯(cuò)誤 D)確定程序中錯(cuò)誤的性質(zhì)
(5)數(shù)據(jù)流程圖(DFD圖)是 A)軟件概要設(shè)計(jì)的工具 B)軟件詳細(xì)設(shè)計(jì)的工具 C)結(jié)構(gòu)化方法的需求分析工具 D)面向?qū)ο蠓椒ǖ男枨蠓治龉ぞ?SPAN lang=EN-US>
(6)軟件生命周期可分為定義階段,開發(fā)階段和維護(hù)階段。詳細(xì)設(shè)計(jì)屬于 A)定義階段 B)開發(fā)階段
C)維護(hù)階段 D)上述三個(gè)階段
(7)數(shù)據(jù)庫管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)模式定義的語言是 A)數(shù)據(jù)定義語言 B)數(shù)據(jù)管理語言
C)數(shù)據(jù)操縱語言 D)數(shù)據(jù)控制語言
(8)在學(xué)生管理的關(guān)系數(shù)據(jù)庫中,存取一個(gè)學(xué)生信息的數(shù)據(jù)單位是 A)文件 B)數(shù)據(jù)庫 C)字段 D)記錄
(9)數(shù)據(jù)庫設(shè)計(jì)中,用E-R圖來描述信息結(jié)構(gòu)但不涉及信息在計(jì)算機(jī)中的表示,它屬于數(shù)據(jù)庫設(shè)計(jì)的 A)需求分析階段 B)邏輯設(shè)計(jì)一階段
C)概念設(shè)計(jì)階段 D)物理設(shè)計(jì)階段
(10)有兩個(gè)關(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é)束一個(gè)正在運(yùn)行的工程,可單擊工具欄上的一個(gè)按鈕,這個(gè)按鈕是
(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)下面哪個(gè)屬性肯定不是框架控件的屬性 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)窗體上有一個(gè)名稱為Option1的單選按鈕數(shù)組,程序運(yùn)行時(shí),當(dāng)單擊某個(gè)單選按鈕時(shí),會(huì)調(diào)用下面的事件過程 Private Sub Option1_C1ick(Index As Integer) … End Sub 下面關(guān)于此過程的參數(shù)Index的敘述中正確的是 A)Index為1表示單選按鈕被選中,為O表示未選中 B)Index的值可正可負(fù) C)Index的值用來區(qū)分哪個(gè)單選按鈕被選中 D)Index表示數(shù)組中單選按鈕的數(shù)量
(17)設(shè)窗體中有一個(gè)文本框Text1,若在程序中執(zhí)行了Text1.SetFocus,則觸發(fā) A)Text1的SetFocus事件 B)Text1的GotFocus事件 C)Text1的LostFocus事件 D)窗體的GotFocus事件
(18)VB中有3個(gè)鍵盤事件:KeyPress、KeyDown、KeyUp,若光標(biāo)在Text1文本框中,則每輸入一個(gè)字母 A)這3個(gè)事件都會(huì)觸發(fā) B)只觸發(fā)KeyPress事件 C)只觸發(fā)KeyDown、KeyUp事件 D)不觸發(fā)其中任何一個(gè)事件
(19)下面關(guān)于標(biāo)準(zhǔn)模塊的敘述中錯(cuò)誤的是 A)標(biāo)準(zhǔn)模塊中可以聲明全局變量 B)標(biāo)準(zhǔn)模塊中可以包含一個(gè)Sub Main過程,但此過程不能被設(shè)置為啟動(dòng)過程 C)標(biāo)準(zhǔn)模塊中可以包含一些Public過程 D)一個(gè)工程中可以含有多個(gè)標(biāo)準(zhǔn)模塊
(20)設(shè)窗體的名稱為Form1,標(biāo)題為Win,則窗體的MouseDown事件過程的過程名是 A)Form1_MouseDown B)Win_MouseDown C)Form_MouseDown D)MouseDown_Form1
(21)下面正確使用動(dòng)態(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個(gè)數(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ù),則接在上述程序段后面的程序段應(yīng)該是 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)窗體上有一個(gè)Text1文本框,一個(gè)Command1命令按鈕,并有以下程序 Private Sub Commandl_Click() Dim n If Text1.Text<>"23456" Then n=n+1 Print "口令輸入錯(cuò)誤" & n & "次" End If End Sub
希望程序運(yùn)行時(shí)得到左圖所示的效果,即:輸入口令,單擊“確認(rèn)口令”命令按鈕,若輸入的口令不是“123456”,則在窗體上顯示輸入錯(cuò)誤口令的次數(shù)。但上面的程序?qū)嶋H顯示的是右圖所示的效果,程序需要修改。下面修改方案中正確的是 A)在Dim n語句的下面添加一句:n=O B)把Print "口令輸入錯(cuò)誤" & n & "次"改為Print "口令輸入錯(cuò)誤" +n+"次" C)把Print "口令輸入錯(cuò)誤" & n & "次"改為Print "口令輸入錯(cuò)誤"&Str(n)&"次" D)把Dim n改為Static n
(25)要求當(dāng)鼠標(biāo)在圖片框P1中移動(dòng)時(shí),立即在圖片框中顯示鼠標(biāo)的位置坐標(biāo)。下面能正確實(shí)現(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)計(jì)算二的近似值的一個(gè)公式是 。 某人編寫下面的程序用此公式計(jì)算并輸出π的近似值: 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 運(yùn)行后發(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)下面程序計(jì)算并輸出的是 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個(gè)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è)窗體上有一個(gè)通用對話框控件CD1,希望在執(zhí)行下面程序時(shí),打開如圖所示的文件對話框 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
但實(shí)際顯示的對話框中列出了C:\下的所有文件和文件夾,“文件類型”一欄中顯示的是“所有文件”。下面的修改方案中正確的是 A)把CD1.Action=1改為CD1.Action=2 B)把“CD1.Filter=”后面字符串中的“所有文件”改為“文本文件” C)在語句CD1.Action=1的前面添加:CD1.FilterIndex=3 D)把CD1.FileName=""改為CD1.FileName="文本文件"
(30)下面程序運(yùn)行時(shí),若輸入395,則輸出結(jié)果是 Private Sub Comand1_Click() Dim x% x=InputBox("請輸入一個(gè)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兩個(gè)列表框,List1中有若干列表項(xiàng)(見圖),并有下面的程序: 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
程序運(yùn)行時(shí),按照圖示在List1中選中2個(gè)列表項(xiàng),然后單擊Commandl命令按鈕,則產(chǎn)生的結(jié)果是 A)在List2中插入了“外語”、“物理”兩項(xiàng) B)在List1中刪除了“外語”、“物理”兩項(xiàng) C)同時(shí)產(chǎn)生A)和B)的結(jié)果 D)把List1中最后1個(gè)列表項(xiàng)刪除并插入到List2中
(32)設(shè)工程中有2個(gè)窗體: Form1、Form2,Form1為啟動(dòng)窗體。Form2中有菜單。其結(jié)構(gòu)如表。要求在程序運(yùn)行時(shí),在Form1的文本框Text1中輸入口令并按回車鍵(回車鍵的ASCII碼為13)后,隱藏Form1,顯示Form2。若口令為“Teacher”,所有菜單項(xiàng)都可見;否則看不到“成績錄入”菜單項(xiàng)。為此,某人在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
程序運(yùn)行時(shí)發(fā)現(xiàn)剛輸入口令時(shí)就隱藏了Form1,顯示了Form2,程序需要修改。下面修改方案中正確的是 A)把Form1中Text1文本框及相關(guān)程序放到Form2窗體中 B)把Form1.Hide、Form2.Show兩行移到2個(gè)End If之間 C)把If KeyAscii=13 Then改為 If KeyAscii="Teaeher" Then D)把2個(gè)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)試時(shí)發(fā)現(xiàn)沒有達(dá)到目的,為實(shí)現(xiàn)上述目的,應(yīng)做的修改是 A)把Print "Text1"改為Print #2,Text1 B)把Print "Text1"改為Print Text1 C)把Print "Text1"改為Write "Text1" D)把所有#2改為#1
(34)窗體上有一個(gè)名為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 程序運(yùn)行時(shí),單擊命令按鈕后顯示的是 A)12345 B)54321 C)01234 D)43210
(35)下面程序運(yùn)行時(shí),若輸入“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分)
請將每一個(gè)空的正確答案寫在答題卡【1】~【15】序號(hào)的橫線上,答在試卷上不得分。
(1)一個(gè)隊(duì)列的初始狀態(tài)為空,F(xiàn)將元素A,B,C,D,E,F,5,4,3,2,1依次入隊(duì),然后再依次退隊(duì),則元素退隊(duì)的順序?yàn)?U> 【1】 。
(2)設(shè)某循環(huán)隊(duì)列的容量為50,如果頭指針front=45(指向隊(duì)頭元素的前一位置),尾指針rear=10(指向隊(duì)尾元素),則該循環(huán)隊(duì)列中共有 【2】 個(gè)元素。
(3)設(shè)二叉樹如下:
對該二叉樹進(jìn)行后序遍歷的結(jié)果為 【3】 。
(4)軟件是 【4】 、數(shù)據(jù)和文檔的集合。
(5)有一個(gè)學(xué)生選課的關(guān)系,其中學(xué)生的關(guān)系模式為:學(xué)生(學(xué)號(hào),姓名,班級,年齡),課程的關(guān)系模式為:課程(課號(hào),課程名,學(xué)時(shí)),其中兩個(gè)關(guān)系模式的鍵分別是學(xué)號(hào)和課號(hào),則關(guān)系模式選課可定義為:選課(學(xué)號(hào), 【5】 ,成績)。
(6)為了使復(fù)選框禁用(即呈現(xiàn)灰色),應(yīng)把它的Value屬性設(shè)置為 【6】 。
(7)在窗體上畫一個(gè)標(biāo)簽、一個(gè)計(jì)時(shí)器和一個(gè)命令按鈕,其名稱分別為Labl1、Timer1和Command1,如圖1所示。程序運(yùn)行后,如果單擊命令按鈕,則標(biāo)簽開始閃爍,每秒鐘“歡迎”二字顯示、消失各一次,如圖2所示。以下是實(shí)現(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 程序運(yùn)行后,單擊窗體,輸出結(jié)果為 【10】 。
(9)在窗體上畫一個(gè)名稱為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)在窗體上畫一個(gè)文本框,其名稱為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 運(yùn)行程序,單擊窗體,將把磁盤文件smtext1.txt的內(nèi)容讀到內(nèi)存并在文本框中顯示出來,然后把該文本框中的內(nèi)容存入磁盤文件smtext2.txt。請?zhí)羁铡?SPAN lang=EN-US>
2010年3月全國計(jì)算機(jī)等級考試二級Visual Basic程序設(shè)計(jì)筆試答案(西賽)
一、選擇題
1.ADBAC 6.BADCA 11.DBCAD 16.CBABA 21.ADADC 26.CACCB 31.CBABD
二、填空
1.ABCDEF4321 2.15 3.EDBGHFCA 4.程序 5.課號(hào)
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
|