语言基础习题

语言基础习题
语言基础习题

《Delphi 语言基础》习题

一、填空

1. Delphi 应用程序中项目文件的扩展名是 。

2. Delphi 中与窗体文件对应的文件是单元文件,其最常用的文件扩展名是 *. 。

3. 在Delphi 集成开发环境中,如果想要直接设置或者修改对象的属性,可以通过对象查看器(Object Inspector )中的 窗口直接进行设置。属性 或 Properties

4. 在Delphi 中新建一个工程后,用户需要保存.pas 文件和 文件。

5. 对象查看器由对象列表、属性选项卡和 三部分组成。

6. 与数学表达式

ab y

b a -++2

3)sin(对应的Object Pascal 表达式是

。 7. 与数学表达式

a xy

a b a +++22

)(cos 对应的Object Pascal 表达式是

8. 结构化程序设计的基本原则是取消goto 语句,程序中仅采用顺序、 和循环三

种控制结构。 9. 与数学表达式

)

sin()(sin 2

2

2

y x y x ++对应的Object Pascal 表达式是

10. 结构化程序设计要求程序中仅采用顺序、分支和循环三种控制结构,其中每种结构只能

有 个入口和一个出口。 11. 与数学表达式

a x

a by a ++22

)

(sin 对应的Object Pascal 表达式是

。 12. 与数学表达式

53)

(cos 2

++x

b a 对应的Object Pascal 表达式是

。 13. 对于下面的条件表达式:

((3 <= x )AND (x < 0)) OR (x in [1..10])

当x = 3 时, 该表达式的值为 。True

14. 与数学表达式 ab y

b a ++3)

(sin 2

对应的Object Pascal 表达式是

15. 表达式Trunc (12345.6789*100+0.5)/100的值为 。 12345.68

16. 与数学表达式

)

sin()

(sin 2

22

y x y x ++对应的Object Pascal 表达式

是 。

17. 表达式 60 + 19 div 2 的值是 。

18. 对于下面的条件表达式: 3 <= x AND x < 0 OR x in [1..10]

当x = 3 时, 该表达式输出为 。

19. 要想在程序中定义一个常量p ,代表圆周率 3.14,请写出该常量的定义语

句 。

20. 下面程序运行后,X[1]=______________。

For I:=1 to 5 do

X[I]:= I 21. Delphi 中,____________语句用于从For 语句、While 语句或Repeat 语句中强行退出。 22. 有下面的程序段:

ch1 := 'z'; ch2 := 'x'; if ch1 <> 'x' then case ch2 of

'x' : case ch1 of 'z' : s := 'xz'; 'y' : s := 'xy';

end;

'y' : s := 'yy'; end;

假设所有变量均已说明,程序段被执行后s 的值是____________。

23. 参数一般分为两类,其中,调用一个过程或函数时指定的参数称为实际参数(实参),而在过程和函数定义时说明的参数称为_________。 24. 写出下列表达式的值:

Sqr(9) + StrToInt('9') = 。

25. 立即中断当前循环继续执行下一次循环的语句是 。 26. 使用case 语句时其选择项必须是 数据类型。

27. 如果全局变量和局部变量同名,则在过程和函数中 变量优先。 28. 过程调用是有条件的,其顺序应该是先 ,后 。

二、选择

1. 下面哪句话对Delphi 的描述是正确的 ( )。

A .只能用于数据库客户端开发的工具

B .Delphi 的编程语言全部是面向过程的

C .Delphi 的编程语言是Java

D .面向对象的可视化的开发环境 2. 一个Delphi 应用程序必有一个( )文件和至少一个单元文件。

A) 执行程序 B) 项目 C) 数据 D)图形 3. Delphi 应用程序设计基于( )语言。

A) Basic B) C++ C) Pascal D) Object Pascal 4. 利用对象监视器可以设置窗体或组件的( )。

A) 方法 B) 属性 C) 外观 D )执行代码

5.Delphi程序设计的基本特点是()。

A.可视化程序设计 B.代码程序设计

C.事件驱动编程 D. A和C

6.下列说法错误的是 ( )。

A) 窗体文件的扩展名为.dfm

B) 一个窗体对应一个窗体文件

C) Delphi中的一个工程只包含一个窗体

D) .~dpr和.~pas 是备份文件,便于用户恢复到较早的一个项目版本。

7.下面哪个功能键可以调出Delphi 的联机帮助信息()

A.F1键 B.F2键C.F3键D.F4键

8.以下叙述中错误的是()

A.一个项目包含不止一种类型的文件。

B.窗体的Show方法的作用是显示该窗体。

C.窗体的Hide方法和Release方法的作用完全相同。

D.若项目文件中有多个窗体,可以根据需要指定一个窗体为主窗体。

9.下列关于dfm文件的一些说明哪个是正确的?()

A.dfm文件中包含了对应Pascal单元文件的编译后中间代码

B.dfm文件是文本文件,用于保存编译器需要用到的Pascal文件的符号表

C.dfm文件保存着一个窗体和窗体拥有的对象的Published属性

D.dfm文件是编译时产生的符号表,是为了使优化提高编译速度而产生的。

10.Delphi工程中没有用到的文件类型是()

A)dfm B)res C)dpr D)frm

11.Delphi中,对象编辑器的()标签可用来观察、设置窗体上组件或窗体本身设计

时的属性。

A、 Properties

B、 Events

C、 Unit

D、 Project

12.下列常量说明语句中哪个是合法的?()

A、 const c := (a > 3.4);

B、 const c : 3.4;

C、 const c = 3.4;

D、 const c := 10 and 20;

13.设a = True ,b = True ,c = False,以下表达式值为False的是()。

A、a or b or c

B、 ( not a or b ) and ( b or c )

C、not ( a and b and c)

D、 a and b and (12 in [1..10] )

14.下列变量命名正确的是()。

A.7ABC B. My7 C. page@2 D.cmd..1

15.“x 是小于200的非负数”的Object Pascal表达式是()。

A.0 ≤ x < 200 B. x >= 0, x<200

C.(x >=0) AND (x < 200) D. (x >= 0 ) OR (x<200)

16.当x在2 < x≤20和100≤x < 110范围内时为True,否则为False的表达式是()

A、 (x > 2) and (x <=20) or (x >= 100) and (x < 110)

B、 (x > 2) or (x <=20) or (x >= 100) or (x < 110)

C、 (x > 2) and (x <=20) and (x >= 100) and (x < 110)

D、 x > 2 and x <=20 or x >= 100 and x < 110

17.表达式 60 + 19 div 2 的值是()。

A. 67 B. 79 C. 69 D. 80

18.下列表达式中()不是布尔表达式。

A) A=3 B) A div B C) A and B D) A>B

19.“x 是小于100的非负数”的Object Pascal表达式是()。

A.0 ≤ x < 100 B. x >= 0, x<100

C.(x >=0) AND (x < 100) D. (x >= 0 ) OR (x<100)

20.表达式 30 + 19 div 2 的值是()。

A.37 B.49 C.39 D.40

21.下列合法的变量名是()。

A、na + e

B、e- 3r

C、r_3

D、5we

22.下列Delphi的变量名,正确的是()。

A.a! B. file C.abc123 D.123abc

23.假设程序段中的变量已经说明,程序段被执行后x的值是()。

a:=false; b:=false; c:=false;

x:=15;

if a then x:=x-10

else if b then x:=x-5

else if c then x:=20

else x:=25;

A.5 B. 15 C.20 D.25 24.假设程序段中的变量已经说明,执行该程序段后s的值是()。

Ch1:=’z’; ch2:=’x’;

If ch1 <>’x’ then

Case ch2 of

‘x’:case ch1 of

‘z’: s:=’xz’;

‘y’: s:=’xy’;

End;

‘y’: s:=’yy’;

End;

A.xz B.yy C.yx D.xy 25.假设程序段中的变量已经说明,问循环体的执行次数是()。

i:=1;

repeat

n:=i*i;

i:=i+2;

until n>2*I;

A.1 B.2 C.3 D.4

26.假设程序段中的变量已经说明,问循环体的执行次数是()。

i:=2.5;

while i<=4 do i:=i+0.5;

A.1 B.2 C.3 D.4

27.假设程序段中的变量已经说明,执行该程序段后s的值是()。

S:=100;

N:=3;

For ch:=’a’ to ‘e’ do

Begin

If not odd(n) then s:=s-n; //odd判断是否是奇数,是奇数则返回true N:=n+5

End;

A.97 B.89 C.74 D.58

28.假设程序段中的变量已经说明,执行该程序段后n的值是()。

N:=19876;

k:=3;

for i:=1 to k do

n:=n mod 10;

n:=n div 10;

A.0 B.6 C.10 D.1

29.关于While与repeat下列说法正确的是( )。

A、它们的表达式在循环的开始进行判断

B、它们的表达式在循环体执行完后进行判断

C、While的表达式在循环的开始进行判断

D、Repeat的表达式在循环的开始进行判断

30.下列关于过程和函数的描述中,正确的是()。

A、过程可以有返回值

B、函数可以有返回值

C、过程和函数功能完全相同

D、函数必须有返回值

31.下列哪种变量类型不能作为For循环中的循环变量?()。

A、字符

B、枚举

C、子界

D、实数

32.关于记录与类的说法错误的是:()

A.记录没有继承关系,而类有

B.不能自动对记录的域初始化

C.类可以使用with语句而记录不能

D.记录没有任何保密性,所有细节从外部都是可见的,或者说是公用的。

33.以下不合法的数组是:()

A.arr:Array of Class

B.arr:Array of TButton

C.arr:Array of byte

D.arr:Array of string

34.以下关于Redcord(记录)的描述,不正确的是:()

A.Object Pascal支持可变Record,它允许在记录种不同的数据共同覆盖相同的内存(这

个概念与C/C++中的union概念一样)

B.Record类型定义中列出了若干个域,每个域对应一个域名,通过域名访问

C.Record类型用于定义不同类型数据项的固定集合

D.record类型是类的一种补充

35.在每一个枚举类型中,默认编译的情况下,我们最多只能定义()个值。

A.64

B.512

C.128

D.255

36.下列关于Variant类型的说法哪个是不正确的?()

A.variant类型的变量被动态赋值为一个特定的数据类型后,不能再赋值为一个其它的

数据类型

B.variant类型变量是无类型变量

C.variant类型是以前Borland C++ 中固有的Variant类型的模仿

D.variant类型无需进行释放,回收内存

37.下列哪种变量类型不能作为For循环中的循环变量?()

A.字符

B.枚举

C.子界

D.实数

38.下列正确的枚举类型定义是()

A.type vowel=(‘a’,’e’,’I’,’o’,’u’);

B.type num=(1..3,8..10);

C.type color=(red,blue,green);

D.type realtype=(1.5,2.5,3.5,4.5);

39.若要用枚举类型标识符来表示加、减、乘、除运算,则以下正确的定义形式是()。

A.type op=(+,-,*,/);

B.type op=(’+’,’-’,’*’,’/’);

C.type op=(A+,B-,C*,D/);

D.type op=(add,sub,mult,divi);

40.下列子界类型定义语句中正确的是()。

A.type num=1.0..100.20;

B.type num=1..100;

C.type num=a..f;

D.type num=’z’..’a’;

41.已知如下子界类型定义及变量声明:

Type ntype=-10..10;

Var

M:ntype;

N:integer;

问下列语句那一句可能产生错误?()

A.n:=m;

B.m:=n;

C.n:=abs(m);

D.n:=n+m;

42.集合表达式[1,2,3]+[4,5,6,1,2]的值为()

A. [1,2,3,4,5,6,1,2]

B. [1,2,3]

C. [4,5,6,1,2]

D. [1,2,3,4,5,6]

43.集合表达式[‘m’,’n’,’b’]* [‘a’,’b’,’c’]+ [‘m’,’n’,’b’]的值

为()

A. [‘m’,’n’,’b’]

B. [’b’]

C. [‘a’,’b’,’c’]

D. [‘a’,’c’]

44.下面是一个用户自定义的消息,哪一种消息定义是正确的?()

A.WM_MyMessage=User_Base+100

B.WM_MyMessage=CM_Base+100

C.WM_MyMessage=WM_Base+100

D.WM_MyMessage=WM_USER+100

45.请看代码,回答下面的问题。

Type

TMammal=Class

Procedure Walk;

…..

end;{end of TManmml}

procedure TMammal.Walk;

begin

ShowMessage(‘Result is Mammal Walk’);

end;

TDog=Class(TMammal)

Procedure Walk;

end;

procedure TDog.Walk;

begin

ShowMessage(‘Result is Dog Walk’);

end;

var

Mammal:TMammal;

dog:TDog;

begin

Mammal:=TDog.Create;

Mammal.Walk;

Mammal.Free;

end;

上面代码中,最后的输出结果是:()

A.‘Result is Dog Walk’

B.‘Result ia Mannal Walk’

46.集合类型的数据大小是:()

A.0..255

B.0..65535

C.0..63

D.0..31

47.下列字符串中,不是Delphi程序保留字的是( )

A)and B)label C)copy D)do

48.标识变量说明部分开始的保留字是( )

A)var B)const C)begin D)function

49.下列字符串中,不能用作标识符的是()

A)abc B)aandb C)st80 D)div

50.用来标注Delphi程序语句块注释的符号是( )

A)|和| B){ 和 } C)* 和* D)"和"

51.下列赋值语句中错误的是( )

A)y:=0.5; B)x:=y; C)x,y:=100; D)x:=y+2.5;

52.下列符号中表示Delphi程序单行注释开始的是( )

A)// B)?? C)# D)/*

53.下列语句中,立即中断当前循环继续执行下一次循环的语句是( )

A)break; B)continue; C)exit; D)goto;

54.假设所有变量均已说明,问其中循环体的执行次数是:()

A、 1

B、 2

C、 3

D、 4

55.下列子界类型定义语句中正确的是:()

A、 type num = 1.0 .. 100.20;

B、 type num = 1 .. 100;

C、 type num = a .. f;

D、 type num = 'z' .. 'a' ;

三、判断

1.( ) Delphi是面向对象的可视化的开发环境,编程语言采用Object C。

2.( ) 函数int(2.718) = 2.0 计算是正确的。

3.( ) 4ABC 可作为Delphi的变量名。

4.( ) ( (x>=5) OR (x<=-5) ) AND ( x in [1..9] ) 当x=10时,表达式的值为假

(或false )。

5. ( )在Delphi 程序运行时动态设置属性的一般格式是: <对象名>.<属性名> := <属性值> ;

6. ( ) const c := 100 的说明语句是合法的。

四、程序填空题

1.本程序设计界面和运行界面如下图所示:

程序的功能是:用户在edit1中输入一个正整数n ,然后按“计算”按钮,程序计算1~n 中奇数之和,并在edit2中显示计算结果。

请完成程序填空:

procedure TForm1.Button1Click(Sender: TObject); //“计算”按钮 var

i , n, sum : integer ; begin sum := 0 ; i := 1 ;

n := StrToInt(edit1. ① ); //读入正整数n while i <= n ② //循环语句 begin

if odd( i ) then sum := ③ ; i := i +1 ; end;

edit2.Text :=IntToStr( ④ ); //将结果在编辑框中显示 end;

在程序中,odd 为系统函数,其功能为: ⑤ 。

五、编程题

1.输入两个实型数,计算并输出它们的和、差、积及商(除数为零时显示不能计算)。

要求:(1)输入数据时,按键只许数字、小数点和退格通过,其它按键一律屏蔽。

(2)输出部分精度要求小数点后5位。

2.用牛顿迭代法求f(x)=3x 3-4x 2+5x-13=0的一个根

迭代公式:)

(')(1x x x

x n n n

n f f -

=

+

当 d n =| f(x n )/f ’(x n ) |< ε=106- x 1+n 便是根( n=0,1,2,3,…)

3.一百匹马将二百块砖驮上山,其中大马、中马和小马分别每匹驮3块、2块和0.5块,计算并输出各类马匹数量的非负整数解。

4.按下列形式在Memo组件中输出九九表

1*1=1

1*2=2 2*2=4

1*3=3 2*3=6 3*3=9

………………

1*9=9 2*9=18 3*9=27 …… 9*9=81

5.程序功能是:用户输入一个3位正整数后,按“确定”键,该数字的个位、十位、百位数字分别显示在输出框中。如果输入的数据不在规定范围之内,程序要给出错误提示。程序界面如下:

编写“确定”按钮的事件处理程序。

6.一个计算圆周长和面积的程序,界面如下图所示。在“半径”框中输入圆的半径,单击“计算”按钮,在“周长”、“面积”框中显示圆的周长和面积。根据题意,编写单击“计算”按钮和“退出”按钮事件处理程序(提示:π可直接使用系统函数PI返回)。

六、简答题

1.在Delphi中,什么是对象的属性、方法和事件?

2.简述利用Delphi开发一个项目的基本步骤。

3.在一个单元中,全局变量和局部变量的含义是什么?说明在单元文件中如何定义这两种

变量(可举例说明)。

4.如果想查看showmessage过程的帮助信息,请你说出两种获取帮助信息的方式。

5.一个项目由一组文件组成。其中一些主要文件的后缀有:

.dpr .pas .dfm .dcu .~dpr .~pas .~dfm 等

请说出这些文件的中文名称及用途。

相关主题
相关文档
最新文档