Delphi程序员水平测试试卷
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. 从主菜单上选择ProjectSyntax 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采用基于对象的引用模式,即类的每一个变量不保存对象的值,而保存一个引用或一个指针来说明对象存储的内存位置。( )
三. 改错题(共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) 字体与大小以所见即所得的方式显示出来