選擇題(每小題2分,共70分)
下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將正確選項填涂在答題卡相應位置上,答在試卷上不得分。
(1)下列選項中不符合良好程序設計風格的是
A) 源程序要文檔化 B) 數(shù)據(jù)說明的次序要規(guī)范化
C) 避免濫用goto語句 D) 模塊設計要保證高耦合、高內(nèi)聚
(2)從工程管理角度,軟件設計一般分為兩步完成,它們是
A) 概要設計與詳細設計 B) 數(shù)據(jù)設計與接口設計
C) 軟件結構設計與數(shù)據(jù)設計 D) 過程設計與數(shù)據(jù)設計
(3)下列選項中不屬于軟件生命周期開發(fā)階段任務的是
A)軟件測試 B)概要設計 C)軟件維護 D)詳細設計
(4)在數(shù)據(jù)庫系統(tǒng)中,用戶所見的數(shù)據(jù)模式為
A) 概念模式 B)外模式 C)內(nèi)模式 D)物理模式
(5)數(shù)據(jù)庫設計的四個階段是:需求分析、概念設計、邏輯設計和
A) 編碼設計 B) 測試階段 C)運行階段 D)物理設計
(6)設有如下三個關系表
R |
S |
T |
|||||||
A |
B |
C |
A |
B |
C |
||||
m |
1 |
3 |
m |
1 |
3 |
||||
n |
n |
1 |
3 |
||||||
下列操作中正確的是
A)T=R∩S B)T=R∪S
C)T=R×S D)T=R/S
(7)下列敘述中正確的是
A)一個算法的空間復雜度大,則其時間復雜度也必定大
B)一個算法的空間復雜度大,則其時間復雜度必定小
C)一個算法的時間復雜度大,則其空間復雜度必定小
D)上述三種說法都不對
(8)在長度為64的有序線性表中進行順序查找,最壞情況下需要比較的次數(shù)為
A)63 B)64 C)6 D)7
(9)數(shù)據(jù)庫技術的根本目標是要解決數(shù)據(jù)的
A)存儲問題 B)共享問題 C)安全問題 D)保護問題
(10)對下列二叉樹
F |
C |
D |
E |
A |
G |
B |
進行中序遍歷的結果是
A)ACBDFEG B)ACBDFGE C)ABDCGEF D)FCADBEG
(11)以下敘述中正確的是
A)窗體的Name 屬性指定窗體的名稱,用來標識一個窗體
B)窗體的Name 屬性值是顯示在窗體標題欄中的文本
C)可以在運行期間改變窗體的Name 屬性的值
D)窗體的Name 屬性值可以為空
(12)以下敘述中錯誤的是
A)打開一個工程文件時,系統(tǒng)自動裝入與該工程有關的窗體文件
B)保存Visual Basic程序時,應分別保存窗體文件及工程文件
C)Visual Basic應用程序只能以解釋方式執(zhí)行
D)窗體文件包含該窗體及其控件的屬性
(13)設a = 2, b = 3, c = 4, 下列表達式的值是
Not a <= c Or 4*c = b^2 And b <> a + c
A)-1 B)1 C)True D)False
(14)設有如下的用戶定義類型:
Type Student
number As String
name As String
age As Integer
End Type
則以下正確引用該類型成員的代碼是
A)Student.name = "李明" B)Dim s As Student
s.name = "李明"
C)Dim s As Type Student D)Dim s As Type
s.name = "李明" s.name = "李明"
(15)設a = 5,b = 6,c = 7,d = 8,執(zhí)行下列語句后,x的值為
x = IIf((a > b) And (c > d), 10, 20)
A)10 B)20 C)True D)False
(16)執(zhí)行以下程序段后,變量c$的值為
a$ = "Visual Basic Programming"
b$ = "Quick"
c$ = b$ & UCase(Mid$(a$, 7, 6)) & Right$(a$, 12)
A)Visual BASIC Programming B)Quick Basic Programming
C)QUICK Basic Programming D)Quick BASIC Programming
(17)在窗體上畫一個文本框(其名稱為Text1)和一個標簽(其名稱為Label1),程序運行后,如果在文本框中輸入指定的信息,則立即在標簽中顯示相同的內(nèi)容。以下可以實現(xiàn)上述操作的事件過程是
A)Private Sub Text1_Click() B)Private Sub Text1_Change()
Label1.Caption = Text1.Text Label1.Caption = Text1.Text
End Sub End Sub
C)Private Sub Label1_Change() D)Private Sub Label1_Click()
Label1.Caption = Text1.Text Label1.Caption = Text1.Text
End Sub End Sub
(18)在窗體上畫一個命令按鈕和一個標簽,其名稱分別為Command1和Label1,然后編寫如下事件過程:
Private Sub Command1_Click()
Counter = 0
For i = 1 To 4
For j = 6 To 1 Step -2
Counter = Counter + 1
Next j
Next i
Label1.Caption = Str(Counter)
End Sub
程序運行后,單擊命令按鈕,標簽中顯示的內(nèi)容是
A) 11 B)12 C) 16 D)20
(19)在窗體上畫一個名稱為Text1的文本框和一個名稱為Command1的命令按鈕,然后編寫如下事件過程:
Private Sub Command1_Click()
Dim i As Integer, n As Integer
For i = 0 To 50
i = i + 3
n = n + 1
If i > 10 Then Exit For
Next
Text1.Text = Str(n)
End Sub
程序運行后,單擊命令按鈕,在文本框中顯示的值是
A)5 B)4 C)3 D)2
(20)在窗體上畫一個命令按鈕和兩個標簽,其名稱分別為Command1、Label1和Label2,然后編寫如下事件過程:
Private Sub Command1_Click()
a = 0
For i = 1 To 10
a = a + 1
b = 0
For j = 1 To 10
a = a + 1
b = b + 2
Next j
Next i
Label1.Caption = Str(a)
Label2.Caption = Str(b)
End Sub
程序運行后,單擊命令按鈕,在標簽Label1和Label2中顯示的內(nèi)容分別是
A)10和20 B)20和110 C)200和110 D)110和20
(21)在窗體上畫一個名稱為List1的列表框,一個名稱為Label1的標簽,列表框中顯示若干城市的名稱。當單擊列表框中的某個城市名時,該城市名從列表框中消失,并在標簽中顯示出來。下列能正確實現(xiàn)上述操作的程序是
A)Private Sub List1_Click() B)Private Sub List1_Click()
Label1.Caption = List1.ListIndex Label1. Name = List1. ListIndex
List1.RemoveItem List1.Text List1.RemoveItem List1.Text
End Sub End Sub
C)Private Sub List1_Click() D)Private Sub List1_Click()
Label1.Caption = List1.Text Label1.Name = List1.Text
List1.RemoveItem List1.ListIndex List1.RemoveItem List1.ListIndex
End Sub End Sub
(22)在窗體上畫一個名稱為Command1的命令按鈕,然后編寫如下程序:
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim a(10, 10) As Integer
For i = 1 To 3
For j = 1 To 3
a(i, j) = (i - 1) * 3 + j
Print a(i, j);
Next j
Next i
End Sub
程序運行后,單擊命令按鈕,窗體上顯示的是
A) |
1 2 3 |
B) |
2 3 4 |
C) |
1 4 7 |
D) |
1 2 3 |
||
2 4 6 |
3 4 5 |
2 5 8 |
4 5 6 |
||||||
3 6 9 |
4 5 6 |
3 6 9 |
7 8 9 |
(23)在窗體上畫一個命令按鈕,名稱為Command1,然后編寫如下代碼:
Option Base 0
Private Sub Command1_Click()
Dim A(4) As Integer,B(4) As Integer
For k = 0 To 2
A(k + 1) = InputBox("請輸入一個整數(shù)")
B(3 - k) = A(k + 1)
Next k
Print B(k)
End Sub
程序運行后,單擊命令按鈕,在輸入對話框中分別輸入2、4、6,輸出結果為
A)0 B)2 C)3 D)4
(24)有以下程序:
Option Base 1
Dim arr() As Integer
Private Sub Form_Click()
Dim i As Integer, j As Integer
ReDim arr(3, 2)
For i = 1 To 3
For j = 1 To 2
arr(i, j) = i * 2 + j
Next j
Next i
ReDim Preserve arr(3, 4)
For j = 3 To 4
arr(3, j) = j + 9
Next j
Print arr(3, 2); arr(3, 4)
End Sub
程序運行后,單擊窗體,輸出結果為
A)8 13 B)0 13 C)7 12 D)0 0
(25)以下敘述中正確的是
A)一個Sub過程至少要有一個Exit Sub語句
B)一個Sub過程必須有一個End Sub語句
C)可以在Sub過程中定義一個Function過程,但不能定義Sub過程
D)調(diào)用一個Function過程可以獲得多個返回值
(26)有以下程序:
Sub subP(b() As Integer)
For i = 1 To 4
b(i) = 2 * i
Next i
End Sub
Private Sub Command1_Click()
Dim a(1 To 4) As Integer
a(1) = 5
a(2) = 6
a(3) = 7
a(4) = 8
subP a()
For i = 1 To 4
Print a(i)
Next i
End Sub
運行上面的程序,單擊命令按鈕,輸出結果為
A) |
2 |
B) |
5 |
C) |
10 |
D) |
出錯 |
4 |
6 |
12 |
|||||
6 |
7 |
14 |
|||||
8 |
8 |
16 |
(27)設有如下通用過程:
Public Function Fun(xStr As String) As String
Dim tStr As String, strL As Integer
tStr = ""
strL = Len(xStr)
i = 1
Do While i <= strL / 2
tStr = tStr & Mid(xStr, i, 1) & Mid(xStr, strL - i + 1, 1)
i = i + 1
Loop
Fun = tStr
End Function
在窗體上畫一個名稱為Text1的文本框和一個名稱為Command1的命令按鈕。然后編寫如下的事件過程:
Private Sub Command1_Click()
Dim S1 As String
S1 = "abcdef"
Text1.Text = UCase(Fun(S1))
End Sub
程序運行后,單擊命令按鈕,則Text1中顯示的是
A)ABCDEF B)abcdef C)AFBECD D)DEFABC
(28)在窗體上畫一個名稱為TxtA的文本框,然后編寫如下的事件過程:
Private Sub TxtA_KeyPress(KeyAscii As Integer)
......
End Sub
假定焦點已經(jīng)位于文本框中,則能夠觸發(fā)KeyPress事件的操作是
A)單擊鼠標 B)雙擊文本框
C)鼠標滑過文本框 D)按下鍵盤上的某個鍵
(29)在窗體上畫一個命令按鈕和兩個文本框,其名稱分別為Command1、Text1和Text2,然后編寫如下程序:
Dim S1 As String, S2 As String
Private Sub Form_Load()
Text1.Text = ""
Text2.Text = ""
End Sub
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
S2 = S2 & Chr(KeyCode)
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
S1 = S1 & Chr(KeyAscii)
End Sub
Private Sub Command1_Click()
Text1.Text = S2
Text2.Text = S1
S1 = ""
S2 = ""
End Sub
程序運行后,在Text1中輸入“abc”,然后單擊命令按鈕,在文本框Text1和Text2中顯示的內(nèi)容分別為
A)abc和ABC B)abc和abc C)ABC和abc D)ABC和ABC
(30)以下說法中正確的是
A)任何時候都可以通過執(zhí)行“工具”菜單中的“菜單編輯器”命令打開菜單編輯器
B)只有當某個窗體為當前活動窗體時,才能打開菜單編輯器
C)任何時候都可以通過單擊標準工具欄上的“菜單編輯器”按鈕打開菜單編輯器
D)只有當代碼窗口為當前活動窗口時,才能打開菜單編輯器
(31)在窗體上畫一個通用對話框,其名稱為CommonDialog1,然后畫一個命令按鈕,并編寫如下事件過程:
Private Sub Command1_Click()
CommonDialog1.Filter = "All Files (*.*)|*.*|Text Files" & _
"(*.txt)|*.txt| Executable Files(*.exe)|*.exe"
CommonDialog1.FilterIndex = 3
CommonDialog1.ShowOpen
MsgBox CommonDialog1.FileName
End Sub
程序運行后,單擊命令按鈕,將顯示一個“打開”對話框,此時在“文件類型”框中顯示的是
A)All Files(*.*) B)Text Files(*.txt)
C)Executable Files(*.exe) D)不確定
(32)以下敘述中錯誤的是
A)一個工程中可以包含多個窗體文件
B)在一個窗體文件中用Public定義的通用過程不能被其他窗體調(diào)用
C)窗體和標準模塊需要分別保存為不同類型的磁盤文件
D)用Dim定義的窗體層變量只能在該窗體中使用
(33)以下敘述中錯誤的是
A)語句“Dim a, b As Integer”聲明了兩個整型變量
B)不能在標準模塊中定義Static型變量
C)窗體層變量必須先聲明,后使用
D)在事件過程或通用過程內(nèi)定義的變量是局部變量
(34)設有語句:Open "d:\Test.txt" For Output As #1 ,以下敘述中錯誤的是
A)若d盤根目錄下無Test.txt文件,則該語句創(chuàng)建此文件
B)用該語句建立的文件的文件號為1
C)該語句打開d盤根目錄下一個已存在的文件Test.txt,之后就可以從文件中讀取信息
D)執(zhí)行該語句后,就可以通過Print #語句向文件Test.txt中寫入信息
(35)以下敘述中錯誤的是
A)順序文件中的數(shù)據(jù)只能按順序讀寫
B)對同一個文件,可以用不同的方式和不同的文件號打開
C)執(zhí)行Close語句,可將文件緩沖區(qū)中的數(shù)據(jù)寫到文件中
D)隨機文件中各記錄的長度是隨機的
二、填空題(每空2分,共30分)
請將每空的正確答案寫在答題卡【1】~【15】序號的橫線上,答在試卷上不得分。
(1)下列軟件系統(tǒng)結構圖
的寬度為 【1】 。
(2) 【2】 的任務是診斷和改正程序中的錯誤。
(3)一個關系表的行稱為 【3】 。
(4)按“先進后出”原則組織數(shù)據(jù)的數(shù)據(jù)結構是 【4】 。
(5)數(shù)據(jù)結構分為線性結構和非線性結構,帶鏈的隊列屬于 【5】 。
(6)描述“X是小于100的非負整數(shù)”的Visual Basic表達式是 【6】 。
(7)在窗體上有一個名稱為Command1的命令按鈕和一個名稱為Text1的文本框。程序運行后,Command1為禁用(灰色),此時如果在文本框中輸入字符,則命令按鈕Command1變?yōu)榭捎谩U執(zhí)羁铡?BR> Private Sub Form_Load()
Command1.Enabled = False
End Sub
Private Sub Text1_ 【7】 ()
Command1.Enabled = True
End Sub
(8)在窗體上畫一個名稱為“Command1”的命令按鈕,然后編寫如下事件過程:
Private Sub Command1_Click()
Dim a As String
a = "123456789"
For i = 1 To 5
Print Space(6 - i); Mid$(a, 【8】 , 2 * i - 1)
Next i
End Sub
程序運行后,單擊命令按鈕,窗體上的輸出結果是
5
456
34567
2345678
123456789
請?zhí)羁铡?BR>
(9)以下程序的功能是:將一維數(shù)組A中的100個元素分別賦給二維數(shù)組B的每個元素并打印出來,要求把A(1)到A(10)依次賦給B(1,1)到B(1,10),把A(11)到A(20)依次賦給B(2,1)到B(2,10),……,把A(91)到A(100)依次賦給B(10,1)到B(10,10)。請?zhí)羁铡?BR> Option Base 1
Private Sub Form_Click()
Dim i As Integer, j As Integer
Dim A(1 To 100) As Integer
Dim B(1 To 10, 1 To 10) As Integer
For i = 1 To 100
A(i) = Int(Rnd * 100)
Next i
For i = 1 To 【9】
For j = 1 To 【10】
B(i, j) = 【11】
Print B(i, j);
Next j
Next i
End Sub
(10)在窗體上畫一個名稱為Combo1的組合框,然后畫兩個名稱分別為Label1、Label2,標題分別為“城市名稱”和空白的標簽。程序運行后,在組合框中輸入一個新項目并按回車鍵,如果輸入的項目在組合框的列表中不存在,則自動將其添加到組合框的列表中,并在Label2中給出提示“已成功添加新輸入項?!保鐖D所示。如果輸入的項目已存在,則在Label2中給出提示“輸入項已在組合框中?!薄U?zhí)羁铡?BR> Private Sub Combo1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
For i = 0 To Combo1.ListCount - 1
If Combo1.Text = 【12】 Then
Label2.Caption = "輸入項已在組合框中。"
Exit Sub
End If
Next i
Label2.Caption = "已成功添加新輸入項。"
Combo1. 【13】 Combo1.Text
End If
End Sub
(11)在窗體上畫一個命令按鈕和一個文本框,其名稱分別為Command1和Text1,然后編寫如下事件過程:
Private Sub Command1_Click()
Dim inData As String
Text1.Text = ""
Open "d:\myfile.txt" For 【14】 As #1
Do While 【15】
Input #1, inData
Text1.Text = Text1.Text + inData
Loop
Close #1
End Sub
程序的功能是,打開D盤根目錄下的文本文件myfile.txt,讀取它的全部內(nèi)容并顯示在文本框中。請?zhí)羁铡?BR>