Delphi水平測試試卷(初中級)樣題
一. 選擇題(共40道)
1. 使用者開發程式時需要經常在表單和編輯器視窗之間來回切換,可使用快速鍵()。
A、 F12和F11
B、 F12和F13
C、 F12和Ctrl+F12
D、 F12和Alt+F12
E、F12和Shift+F12
2. 某函數如下:
Function check(n,k:Integer):Integer;
Var m:Integer;
Begin
Repeat
m:=n mod 10;
n:=n div 10;
K:=k-1
Until k=0;
Check:=m
End;
若調用語句y:=check(3725,3),運行後y值為:()
A、 7
B、 5
C、 2
D、 0
3. 以下那個組件不可以由使用者輸入編輯文本()
A、 TEdit
B、 TcomboBox
C、 TMaskEdit
D、 Tlabel
E、 TStringGrid
4. 一個對象類可以繼承和直接使用它的父類的所有成員,除了:()
A、 public域
B、 private域
C、 protected域和private域
D、 protected域和方法
E、 private域和方法
5. Delph沒有用到的檔案類型有()。
A、.frm
B、.pas
C、.dfm
D、.dpr
E、.res
6. Shape組件位於()組件板上。
A、 standard
B、 additional
C、 data controls
D、 system
E、samples
7. Query組件沒有Table組件那樣的( )屬性。
A、 DataSource
B、 TableName
C、 Filtered
D、 Database
E、 UpdateObject
8. 下面關於屬性的論述正確的是()。
A、 屬效能實現write方法
B、 屬效能實現read方法
C、 屬性可以唯讀或唯寫
D、 屬性可以公開或非公開
E、屬性不能直接存取
9. 偵錯工具時,需要執行執行點所在的原始碼行,並停留在下一個原始碼行。可通過()功能表項目進行。
A、 Run
B、 Step Over
C、 Trace Into
D、 Trace To Next Source Line
E、Run to Cursor
10. 設a是布爾變數,其它是整型變數,下面正確的指派陳述式是( )
A、 x=y div 7
B、 x:=y:=z+1
C、 a:=x=y mod z
D、 x+y:=z
E、x+y=a
11. 運算式round(4.2) mod trunc(2.8)的值是( )
A、 0
B、 1
C、 2
D、 3
E、 4
12. 下列常量定義合法的是( )
A、 CONST width=7;
B、 CONST case='7';
C、 CONST 1A=7.9;
D、 CONST century=year div 100;
E、 CONST 5<>7;
13. 以下運算子中運算優先順序最高的是( )
A、 +
B、 OR
C、 >=
D、 DIV
E、 -
14. 已知a、b、c、d是同類型的簡單變數,而且已有互不相同的值,執行下列語句:
b:=a; a:=c; d:=a; d:=b; 後,其值相等的變數是()
A、 a,c
B、 a,d
C、 c,b
D、 b,a
E、 無法確定
15. 已知有說明Var x:real;下列程式段中的錯誤為:( )
case x<=2.0 of
0:x:=0;
1:x:=1
End
A、 case運算式中有常數
B、 case常量和case運算式類型不一樣
C、 指派陳述式兩邊類型不一致
D、 case運算式為關聯運算式
E、 case文法不規範
16. 以下語句的迴圈執行次數是( )
x:=37; y:=3
while y<=x do y:=y+y
A、 3
B、 4
C、 5
D、 6
E、 0
17. 程式 For I:=1 to 5 do
for j:=2 to I do
writeln('*');
輸出的'*'個數為( )
A、 5
B、 10
C、 15
D、 25
E、 30
18. 下列函數頭合法的是( )
A、 function total(x:real);
B、 procedure ab(a,b:real):real;
C、 procedure sum;
D、 function f(var f:real):integer;
E、 procedure FontListBoxKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState;);
19. 已知函數如下:
function f(n:integer):integer;
begin
if n=0 then f:=0
else if n>0 then f:=f(n-2)
else f:=f(n+3)
end;
則調用f(5)的值是( )
A、 0
B、 1
C、 -1
D、 -2
E、 2
20. 下列類型中合法的是( )
A、 TYPE a=10..10;
B、 TYPE b=10..5;
C、 TYPE c=0..SQRT(10);
D、 TYPE d=10.0..20.0;
E、 TYPE e=random(9)..1
21. 下列類型的變數中,不能用write語言直接輸出的變數是( )
A、 布爾型變數
B、 枚舉型變數
C、 整型變數
D、 字元型變數
E、 長整型變數
22. 假定y是集合變數,變數x的類型與y的基底類型相同,則下列運算式錯誤的是( )
A、 [x] in y
B、 y-[x]
C、 [x]+[ ]*y
D、 y<=[x]
E、y mod [x]
23. 一個記錄的域標識符不能和下列內容相同的是()
A、 常量的標識符
B、 記錄名
C、 類名
D、 同層的域標識符
E、 不同層的域標識符
24. 已知 Var a:array['a'..'e',1..4,boolean] of real;
則數組a中包含的元素的個數為()
A、 5
B、 20
C、 40
D、 11
E、 22
25. 已知 Var a:array[1..10] of integer;
k,I:integer;
程式段:
k:=1;
for I:=1 to 10 do
if a[I]>a[k] then
k:=I;
writeln(a[k]);
執行後輸出的是( )
A、 數組中的平均值
B、 數組中的最大值
C、 數組中的最小值
D、 數組中的總和
E、 無法確定
26. 已知Var f:file of integer;則f所代表的檔案是( )
A、 ASCII碼檔案
B、 二進位檔案
C、 文字檔
D、 存放整數的文字檔
E、 HTML檔案
27. 在VCL中( )是TDBListBox的父類
A、 TCustomListBox
B、 TListBox
C、 TDBDataset
D、 TDatabase
E、TDBEdit
28. 為讓控制項顯示彈出式提示框文字,需用到控制項的()屬性
A、 Handle
B、 Hint
C、 ShowHint
D、 Showing
E、Visible
29. 發生在滑鼠左鍵單擊控制項時的事件是()
A、 OnMouseDown
B、 OnMouseUp
C、 OnClick
D、 OnDbClick
E、OnEnter
30. 下列值中不是FormStyle屬性的可能值的是( )
A、 fsNormal
B、 fsMIDChild
C、 fsMIDForm
D、 fsStayOnTop
E、fsDeskTop
31. ( )是Delphi包含的檔案管理子常式
A、 Append和insert
B、 Append和MkDir
C、 FileClose和insert
D、 MkDir和insert
E、GetDir和insert
32. ( )是與DDE有關的組件
A、DdeServerConv/DdeClientConv/DdeServerItem/DdeClientItem
B、DdeServer/DdeClient
C、DdeConv/DdeItem
D、DdeConv/DdeServerItem
E、DdeServer/DdeClient/DdeServerItem/DdeClientItem
33. 使用Delphi多線程的優點是( )
A、程式運行速度加快
B、不需要考慮同步訪問共用資源與記憶體
C、程式編寫更簡單
D、可以在後台運行線程
E、不會是Windows出錯
34. 有多種方法可以在OLE文檔接收器中放置對象,但不包括( )
A、使用特定的功能表命令內嵌物件
B、從剪貼簿粘貼對象,來建立新內嵌物件
C、從剪貼簿粘貼-連結化物件,來建立新內嵌物件
D、由伺服器產生的檔案中建立新對象。
E、通過ODBC介面,傳遞對象
35. 用於異常處理的關鍵字不包括( )
A、try
B、except
C、finally
D、raise
E、error
36. 以下說法不正確的是( )
A、VCL組件是Delphi最有效和最有用的組件
B、COM是OLE和ActiveX的基礎
C、COM對象可用於任何Windows編程環境
D、VCL組件是COM對象
E、典型的COM對象包含在副檔名為.DLL或.OCX的檔案中
37. TcomboBox組件Style屬性預設值為( )
A、csDropDown
B、csSimple
C、csDropDownList
D、csOwnerDrawVariable
E、csOwnerDrawFixed
38. 物件程式庫“New Item”的“New”標籤頁能建立的對象有( )
A、Package、DLLs、Component、Web Server Application
B、Package、COM Object、Component、Web Server Application
C、Package、DLLs、Component、About Box
D、Package、DLLs、Component、DB Web Application Wizard
E、Package、DLLs、Component、MID Application
39. Delphi中取值範圍0到255的資料類型是()
A、ShortInt
B、Byte
C、SmallInt
D、Real
E、Word
40. 以下關於事件的說法不正確的是( )
A、不一定要響應某個組件所定義的所有事件
B、多個組件可以共用同一個事件處理常式
C、根據需要可以響應任何組件的事件
D、單擊Object Inspector中的事件處理常式名,Code Editor將自動進入該事件的程式碼片段。
E、事件的Sender參數是用來決定哪個組件產生了此事件
二. 是非題(共20道)
1. 從主菜單上選擇Project|Syntax Check菜單選項,Delphi將編譯從上次編譯後有改動的任何單元,並報出遇到的錯誤。( )
2. Delphi的VCL對象有些是指標,從堆棧中分配空間,有些則不是。( )
3. 粘貼時,如果作為容器的組件已被選擇,剪貼簿中的組件會當作容器組件的子組件來粘貼( )
4. 在由Delphi 管理的表單類聲明段中加進任何代碼都會引起程式出錯。( )
5. Delphi 可以在一個報表中使用一個以上的明細區( )
6. Delphi 可以象其它開發工具一樣使用傳統的資源,比如菜單可以作為資源載入,以利於實現多國語言環境。( )
7. 建立組件時可以定義屬性的預設值,但字串屬性不能有預設值。( )
8. 聲明一個常量後,在程式中則不可以改變這個常量的值。( )
9. 構造子必須通過類的一個有效執行個體來啟用。( )
10. 在設計階段Object Inspector顯示被選組件的所有屬性。( )
11. 在Delphi IDE中,按住Shift鍵,同時單擊Components Palette上的元件圖表標,可以在表單內放置多個同類組件。( )
12. 為減少編程中的錯誤,使用者可以使用Delphi提供的系統函數IsValidIdent檢驗字串是否合法。( )
13. 使用者如果不在一個完整的事件響應過程添加任何代碼,當儲存或編譯該項目時,該過程將被自動清除。()
14. 使用Runtime Packages技術可以將原先獨立的可執行檔分解為動態連結程式庫加上小的可執行檔,這樣作的好處是所佔磁碟空間比一個獨立的可執行檔小。( )
15. Delphi和VB一樣不能產生真正的可執行代碼(機器碼),但是Delphi開發的程式比VB的運行速度快。( )
16. 大多數組件的屬性可以在運行時改變,而且,有些只能在運行時刻改變。()
17. 對於使用者的Delphi工程中建立的表單及其組件的屬性都儲存在一個獨立的描述檔案,即副檔名為DSK的檔案中。( )
18. Search菜單的Find Error命令是用來尋找運行時的錯誤,而不是尋找編譯錯誤。()
19. Enabled屬性不適用於非可視組件。( )
20. Delphi採用基於對象的參考模式,即類的每一個變數不儲存對象的值,而儲存一個引用或一個指標來說明Object Storage Service的記憶體位置。( )
三. 改錯題(共4道)
1. 指出下列代碼錯誤並說明原因:
Var
I:Integer;
L:Long;
Begin
L:=32768;
I:=L;
End.
2. 指出下列代碼錯誤並說明原因:
if n>37.5 then
AmountEarned:=(n-37.5)*HourlyRate*1.5+37.5*HourlyRate;
else
AmountEarned:= n*HourlyRate;
3. 指出下列代碼錯誤並說明原因:
while (total<max) and (sum<=max) and (sum<total)
do statement1;
4. 指出下列代碼錯誤並說明原因:
procedure Tform1.TestBtnClick(Sender:Tobject);
var z,y,x:integer;
begin
x:=100;
y:=0;
try
z:=x div y;
except
on EdivByZero
do z:=-1;
MessageDlg('Z'+IntToStr(z),mtInformation,[mbOK],0);
End;
四. 問答題(共3道)
1. 在Delphi中,對話方塊與子視窗有什麼不同?
2. 使用私人域和方法的目的是什嗎?
3. 讓ActiveX在網頁上工作時,總是從Inernet Explorer得到一個錯誤。錯誤為:“Your current settings prohibit ActiveX controls”。這是什麼錯誤?
五. 編程題(共2道)
1. 計算並輸出300至500以內所有素數(即質數)中最大的前10個數之和k與300至500以內所有素數的個數j,並將結果輸出到檔案mydata.dat中.
2. 在Tform1.FormActive事件中編寫代碼,要求包括一個迴圈,在螢幕上隨機的位置上用不同的顏色連續畫線。
六. 設計題(共1道)
設計一個實用的Windows字型選擇列表視窗。要求:
1) 使用者可以在列表框中(TListBox)選擇字型
2) 使用者可以在微調框中(TSpinEdit)調整字型大小
3) 字型與大小以所見即所得 (WYSIWYG)的方式顯示出來