
《Delphi程序设计》试题及解答卷8 中央电大工学院王欣 一、填空题(20分,每空2分) 1、现实世界中对象具有自己的状态和行为。对应着,面向对象技术中的对象可以具有 自己的属性和 2、Delphi的一个项目由若干文件组成,其中文件名后缀含有“~”的文件 为 sin'(a+b)ab 3、与数学表达式 3y 对应的Object Pascal表达式 是 4、如果要在窗体上设计一个主菜单,首先要建立 对象。 5、ListBox对象列表框中的内容是通过 属性来进行设置的。 6、时钟组件(Timer)能有规律的以一定时间间隔触发 事件。 7、如果让界面上的一个按钮变为不可用,需要将它的 属性设为 False 8、执行完毕下列程序段: X=5; FORK:=1TO3DO X :=X+K; 结果X= 9、调用主窗体的 方法,可以结束程序。 l0、利用DBGrid的 属性,可以设置DBGrid每一列的标题和对 齐方式等。 二、单项选择题(30分,每题3分) 1、下面哪句话比较准确地定义了Delphi()。 A.面向过程的编程语 B.面向对象的可视化的开发环境 C.数据库的客户端开发工具 D.数据库报表生成工具 2、“x是小于100的非负数”的Object Pascal表达式是() A.0≤X=0,x<100
《Delphi 程序设计》试题及解答 卷 8 中央电大工学院 王欣 一、填空题(20 分,每空 2 分) 1、现实世界中对象具有自己的状态和行为。对应着,面向对象技术中的对象可以具有 自己的属性和 。 2、Delphi 的一 个项 目由 若干 文件 组成 ,其 中文 件名 后缀 含有 “~ ” 的文件 为 。 3 、 与 数 学 表 达 式 ab y a b + + 3 sin ( ) 2 对应的 Object Pascal 表达式 是 。 4、如果要在窗体上设计一个主菜单,首先要建立 对象。 5、ListBox 对象列表框中的内容是通过 属性来进行设置的。 6、时钟组件(Timer)能有规律的以一定时间间隔触发 事件。 7、如果让界面上的一个按钮变为不可用,需要将它的 属性设为 False。 8、执行完毕下列程序段: X := 5 ; FOR K := 1 TO 3 DO X := X + K ; 结果 X = 。 9、调用主窗体的 方法,可以结束程序。 10、利用 DBGrid 的 属性,可以设置 DBGrid 每一列的标题和对 齐方式等。 二、单项选择题(30 分,每题 3 分) 1、下面哪句话比较准确地定义了 Delphi ( )。 A.面向过程的编程语言 B.面向对象的可视化的开发环境 C.数据库的客户端开发工具 D.数据库报表生成工具 2、“x 是小于 100 的非负数”的 Object Pascal 表达式是( ) A.0 ≤ x = 0, x<100

C.(X>=O0)AND(x=0)OR(x<100) 3、下列哪个常量说明语句是正确的() A.const x:=(c<16)月 B.const x:16; C.const x:=16; D const x=16; 4、下面哪个功能键可以调出Delphi的联机帮助信息() A.F1键 B.F2键 C.F3键 D.F4键 5、编辑框(Edit)中的文本发生改变时引发的事件是() A.AutoSize B.OnChange C.SetFocus D.SetText 6、表达式30+19div2的值是() A.37 B.49 C.39 D.40 7、现建立一个简单报表,仅包含报表标题栏、数据栏和汇总栏,则在Bads属性的子 属性中,不需要选择的是() A.HasColumnHeader B.Detail C.Title D.Summary 8、在窗体上画一个名称为Commandl的命令按钮,一个名称为Label1的标签,然后编 写如下事件过程: procedure TForm1.Button1Click(Sender:TObject); var s,i,x:Integer; begin s=0; For i:=1 To 15 Do Begin X:=2*i-1店 IF x Mod 3=0 Then s :=s+1 end; Labell.Caption:=IntToStr(s);
C.(x >=0) AND (x = 0 ) OR (x<100) 3、下列哪个常量说明语句是正确的( ) A. const x := (c < 16); B. const x : 16 ; C. const x := 16 ; D const x = 16 ; 4、下面哪个功能键可以调出 Delphi 的联机帮助信息( ) A.F1 键 B.F2 键 C.F3 键 D.F4 键 5、编辑框(Edit)中的文本发生改变时引发的事件是( ) A.AutoSize B.OnChange C.SetFocus D.SetText 6、表达式 30 + 19 div 2 的值是( ) A. 37 B. 49 C. 39 D. 40 7、现建立一个简单报表,仅包含报表标题栏、数据栏和汇总栏,则在 Bands 属性的子 属性中,不需要选择的是( ) A.HasColumnHeader B.Detail C.Title D.Summary 8、在窗体上画一个名称为 Command1 的命令按钮,一个名称为 Label1 的标签,然后编 写如下事件过程: procedure TForm1.Button1Click(Sender: TObject); var s,i,x: Integer; begin s := 0 ; For i:=1 To 15 Do Begin x := 2*i-1; IF x Mod 3=0 Then s := s+1 end; Label1.Caption := IntToStr(s);

end: 程序运行后,单击命令按钮,则标签中显示的内容是() A.5 B.15 C.20 D.25 9、数据库组件中,提供了对数据库读写操作功能的核心组件是() A.数据源组件 B.用户界面组件 C.数据集组件 D.数据感知控件 l0、以下控件中没有Items属性的是( ) A.ComboBox B.ListBox C.RadioGroup D.Memo 三、判断题,请给下列论述中正确的打上“√”,错误的打上“×”(10分,每题2分) l、()在Object Pascal中,一个类的声明一般要遵循如下格式。 Type 类名=class(父类名) 类成员 End; 2、()若己在窗体中加入了一个通用对话框OpenDialog组件:要求在运行时,打开 对话框时只显示扩展名为TXT的文件,则对通用对话框的Filter的属性进行设置,设置可 以是:TXT Files*.TXT。 3、()要想在数据集中增加计算字段,必须先将数据集的字段全部置为动态字段。 4、()编辑框Edit的ReadOnly属性如果设置为true,在代码中还是可以对text属 性赋值。 5、()MediaPlayer组件只能播放Avi文件,不能播放midi音乐。 四、程序填空题(30分,每题10分) 1、(10分,每空2分) 本程序根据用户选择的运算符对输入的二个操作数进行运算,并显示运算结果。设计界 面和运行界面如图所示。其中,运算符是一个含有4个单选按纽的RadioGroupl对象
end; 程序运行后,单击命令按钮,则标签中显示的内容是( ) A.5 B.15 C.20 D.25 9、数据库组件中,提供了对数据库读写操作功能的核心组件是( ) A.数据源组件 B.用户界面组件 C.数据集组件 D.数据感知控件 10、以下控件中没有 Items 属性的是( ) A.ComboBox B. ListBox C.RadioGroup D.Memo 三、判断题,请给下列论述中正确的打上“√”,错误的打上“”(10 分,每题 2 分) 1、( ) 在 Object Pascal 中,一个类的声明一般要遵循如下格式。 Type 类名 = class ( 父类名 ) 类成员 End; 2、( )若已在窗体中加入了一个通用对话框 OpenDialog 组件:要求在运行时,打开 对话框时只显示扩展名为 TXT 的文件,则对通用对话框的 Filter 的属性进行设置,设置可 以是: 'TXT Files|*.TXT'。 3、( ) 要想在数据集中增加计算字段,必须先将数据集的字段全部置为动态字段。 4、( ) 编辑框 Edit 的 ReadOnly 属性如果设置为 true,在代码中还是可以对 text 属 性赋值。 5、( ) MediaPlayer 组件只能播放 Avi 文件,不能播放 midi 音乐。 四、程序填空题(30 分,每题 10 分) 1、(10 分,每空 2 分) 本程序根据用户选择的运算符对输入的二个操作数进行运算,并显示运算结果。设计界 面和运行界面如图所示。其中,运算符是一个含有 4 个单选按纽的 RadioGroup1 对象

二回x 7Form1 ✉回x 请选择 操作数1:Edit1 请选择 操作数134 心加 c加 C减 操作数2Edit2 C减 操作数2回 ·乘 C乘 c除 结果:Edit3 o除 结果3 运算 退出 运算 退出 下面是单击“运算”按钮的事件处理程序,请根据功能要求完成程序填空。 procedure TForml.ButtonlClick(Sender:TObject);// var x1,x2,y Integer; begin x1 :=StrToInt(Edit1.1 x2 :StrToInt(Edit2.2 Case③ ItemIndex of 0:y:=x1+x2; 1:y:=x1-x2: 2:y:=x1*x2: 3:y :x1 Div x2; End; Edit3.④ :=IntToStr(⑤ end: 2、(10分,每空2分) 本程序由主窗体forml和子窗体form2组成,设计界面如下图所示: Form1 -口× 播放 回 Form2 -▣x 停止 是否退出: VYes ⊙No 加载AVI文件 退出
下面是单击“运算”按钮的事件处理程序,请根据功能要求完成程序填空。 ---------------------------------------------------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject);//运算 var x1,x2,y :Integer; begin x1 := StrToInt( Edit1. ① ); x2 := StrToInt( Edit2. ② ); Case ③ .ItemIndex of 0: y := x1 + x2 ; 1: y := x1 - x2; 2: y := x1 * x2; 3: y := x1 Div x2; End; Edit3. ④ := IntToStr( ⑤ ); end; ---------------------------------------------------------------------------------------------------------------- 2、(10 分,每空 2 分) 本程序由主窗体 form1 和子窗体 form2 组成,设计界面如下图所示:

主窗体上建立的对象有Panel1、Animatel、Buttonl(加载AM文件)、Button2(退出)、 Button3(播放)、Button4(停止)和OpenDialog1。 子窗体上建立的对象有Labell、BitBtml(Yes)、BitBtm2(No)。 单击“加载AVI文件”按钮,会弹出打开文件对话框。用户指定一个.vi的文件后,动 画文件加载到Animatel显示区中。单击“播放”按钮可播放动画,单击“停止”按钮可停 止播放。 单击“退出”按钮,会弹出确认对话框(Form2)。如果用户按“Yes”键,程序结束: 如果按“No”键,返回主窗体。 下面是Unitl的代码部分,请在下划线处完成程序填空。 implementation (SR *.dfm) uses ① procedure TForml.Button1Click(Sender::TObject),/∥加载AVI文件 begin if② then animate1.FileName :=3 end; procedure TForm1.Button2Click(Sender:TObject);// begin if④ =mrYes then close: end: procedure TForm1.Button3Click(Sender:TObject):// begin animatel.Play(1,animatel.FrameCount,0); end; procedure TForml.Button4 Click(Sender:TObject);∥停止 begin
主窗体上建立的对象有 Panel1、Animate1、Button1(加载 AVI 文件)、Button2(退出)、 Button3(播放)、Button4(停止)和 OpenDialog1。 子窗体上建立的对象有 Label1、BitBtm1(Yes)、BitBtm2(No)。 单击“加载 AVI 文件”按钮,会弹出打开文件对话框。用户指定一个.avi 的文件后,动 画文件加载到 Animate1 显示区中。单击“播放”按钮可播放动画,单击“停止”按钮可停 止播放。 单击“退出”按钮,会弹出确认对话框(Form2)。如果用户按“Yes”键,程序结束; 如果按“No”键,返回主窗体。 下面是 Unit1 的代码部分,请在下划线处完成程序填空。 ---------------------------------------------------------------------------------------------------------------- implementation {$R *.dfm} uses ① ; procedure TForm1.Button1Click(Sender: TObject); //加载 AVI 文件 begin if ② then animate1.FileName := ③ ; end; procedure TForm1.Button2Click(Sender: TObject); //退出 begin if ④ = mrYes then close ; end; procedure TForm1.Button3Click(Sender: TObject); //播放 begin animate1.Play(1,animate1.FrameCount,0) ; end; procedure TForm1.Button4Click(Sender: TObject); //停止 begin

animatel.⑤ end; end 3、(10分,每空2分) 本程序实现一个简单的借书界面。程序的设计界面和运行界面如下图所示: 7Forml _▣× 7Form1 -口× 图书信总: 国:国 图书信总: 书号书名 现有册数一 书号书名 现有册数4 001救据挖掘原理 001 数据挖掘原理 2 002知识工程和知识管理 002 知识工程和知识管理 003面向对象软件开发原理 3 )003面向对象软件开发原理 004特征驱动开发方法原理与实 004 特征驱动开发方法原理与实 3 借书证号Edit1 借书 風国 借书证号r01 借书 该程序涉及到数据库中的两张表:books(图书信息)和borrow(借书记录)。表的结构 为: books(bno书号,bname书名,num现有册数) borrow(rno读者号,bno书号,rdate还书日期) 其中,rno和bno都是字符型(3位)。 在用户界面,操作员选中一本书、输入借书证号后,按“借书”键完成借书功能,即在 borrow表中插入一条借书记录,并将books表中该书现有册数减1。 该界面要实现以下合法性检查: ●当该读者己经借了此书,不能再借。 ●当所借的书现有册数为0,不能再借。 在Forml上建立的数据库组件对象及连接关系如下: Databasel一Tablel(与books表相连)一DataSource1-一DBGrid1(显示图书信息) Databasel一Table2(与borrow表相连,用于插入借书记录) Database1-Query1 其中为Tablel建立了3个永久字段:Tablelbno(书号)、Tablelbname(书名)、Tablelnum (现有册数)。 Query1的SQL语句如下: select bno from borrow
animate1. ⑤ ; end; end. 3、(10 分,每空 2 分) 本程序实现一个简单的借书界面。程序的设计界面和运行界面如下图所示: 该程序涉及到数据库中的两张表:books(图书信息)和 borrow(借书记录)。表的结构 为: books(bno 书号,bname 书名,num 现有册数) borrow(rno 读者号,bno 书号,rdate 还书日期) 其中,rno 和 bno 都是字符型(3 位)。 在用户界面,操作员选中一本书、输入借书证号后,按“借书”键完成借书功能,即在 borrow 表中插入一条借书记录,并将 books 表中该书现有册数减 1。 该界面要实现以下合法性检查: ●当该读者已经借了此书,不能再借。 ●当所借的书现有册数为 0,不能再借。 在 Form1 上建立的数据库组件对象及连接关系如下: Database1-Table1(与 books 表相连)-DataSource1-DBGrid1(显示图书信息) Database1-Table2(与 borrow 表相连,用于插入借书记录) Database1-Query1 其中为 Table1 建立了 3 个永久字段:Table1bno(书号)、Table1bname(书名)、Table1num (现有册数)。 Query1 的 SQL 语句如下: select bno from borrow

where rno=:rno and bno =bno 下面是Unitl的代码实现部分,请完成程序填空: implementation ($R *.dfm) procedure TForm1.ButtonIClick(Sender:TObject),∥“借书”键 begin query1.Close; query1.ParamByName('rno').Value:=1 query1.ParamByName('bno').Value:=2 query1.Open; if queryI['bno]null then begin showmessage(该读者正在借阅此书); exit ; end; if③ then begin showmessaget('该书已全部借出); exit end; table2.④ ([editl.Text,tablelbno.alue,date+l5]);/插入借书记 录 tablel._⑤ tablelnum.alue=tablelnum.alue-1;∥现有册数减l tablel.Post; end; end. 五、编程题(10分)
where rno = :rno and bno = :bno 下面是 Unit1 的代码实现部分,请完成程序填空: ---------------------------------------------------------------------------------------------------------------- implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); //“借书”键 begin query1.Close ; query1.ParamByName('rno').Value := ① ; query1.ParamByName('bno').Value := ② ; query1.Open ; if query1['bno'] <> null then begin showmessage('该读者正在借阅此书'); exit ; end ; if ③ then begin showmessage('该书已全部借出'); exit ; end; table2. ④ ( [edit1.Text , table1bno.Value , date+15] ); //插入借书记 录 table1. ⑤ ; table1num.Value := table1num.Value - 1 ; // 现有册数减 1 table1.Post ; end; end. ---------------------------------------------------------------------------------------------------------------- 五、编程题(10 分)

某公司卖软盘,50片以上(含50片),每片2元。50片以下,每片3元。编程在“软 盘数量”框中输入购买的软盘数,单击“计算”按钮后在“应收金额”框中显示应收钱数。 单击“结束”按钮结束程序。 本程序设计界面及运行界面如下: 7买软盘程序 a▣☒ 软盘数量: 应收金额: Edit1 Edit2 片 元 Button1 Button2 买软会程序 口▣☒ 软盘数量: 应收金额: 25 75 公 计算 结束 请编写单击“计算”(Buttonl)按钮的事件处理程序。 procedure TForm1.Button1Click(Sender:TObject); begin end; procedure TForm1.Button2Click(Sender:TObject); begin Close; end;
某公司卖软盘,50 片以上(含 50 片),每片 2 元。50 片以下,每片 3 元。编程在“软 盘数量”框中输入购买的软盘数,单击“计算”按钮后在“应收金额”框中显示应收钱数。 单击“结束”按钮结束程序。 本程序设计界面及运行界面如下: 请编写单击“计算”(Button1)按钮的事件处理程序。 procedure TForm1.Button1Click(Sender: TObject); begin end; procedure TForm1.Button2Click(Sender: TObject); begin Close; end;

试题参考答案 一、填空题(20分,每空2分) 1、方法 2、备份文件 3.sgr(sin(a+b))/(3*y)+a*b sin(a+b)sin(a+b)/(3*y)+a*b 4、MainMenu 5、Items 6、OnTimer 7、Enabled 8、11 9、Close l0、Columns 二、单项选择题(30分,每题3分) 1、B 2、C 3、D 4、A5、B 6、C 7、A 8、A9、C 10、D 三、判断题(10分,每题2分) 1、√ 2、√ 3、× 4、J 5、× 四、程序填空题(30分,每题10分) 1、(10分,每空2分) ①text ②text ③RadioGroupl ④text ⑤y 2、(10分,每空2分) ①unit2 ② opendialogl.Execute 3 opendialogl.FileName ④ )form2 ShowModal ⑤stop 3、(10分,每空2分) ①editl.Text ②tablelbno.alue ③tablelnum.alue=0 ④InsertRecord ⑤Edit
试题参考答案 一、填空题(20 分,每空 2 分) 1、方法 2、备份文件 3、sqr(sin(a+b)) /(3*y)+a*b 或 sin(a+b) * sin(a+b) /(3*y)+a*b 4、MainMenu 5、Items 6、OnTimer 7、Enabled 8、 11 9、Close 10、 Columns 二、单项选择题(30 分,每题 3 分) 1、 B 2、C 3、D 4、A 5、 B 6、 C 7、 A 8、A 9、C 10、 D 三、判断题(10 分,每题 2 分) 1、√ 2、√ 3、 4、√ 5、 四、程序填空题(30 分,每题 10 分) 1、(10 分,每空 2 分) ① text ② text ③ RadioGroup1 ④ text ⑤ y 2、(10 分,每空 2 分) ① unit2 ② opendialog1.Execute ③ opendialog1.FileName ④ form2.ShowModal ⑤ stop 3、(10 分,每空 2 分) ① edit1.Text ② table1bno.Value ③ table1num.Value = 0 ④ InsertRecord ⑤ Edit

五、编程题(10分) procedure TForm1.Button1Click(Sender:TObject); Var Disk,Money:Integer; begin Disk:=StrTolnt(edit1.Text); IF Disk>=50 Then Money:=2 Disk Else Money:=3 Disk; edit2.text:=IntToStr(Money); end:
五、编程题(10 分) procedure TForm1.Button1Click(Sender: TObject); Var Disk, Money: Integer; begin Disk := StrToInt(edit1.Text); IF Disk >= 50 Then Money := 2 * Disk Else Money := 3 * Disk; edit2.text := IntToStr(Money); end;