
《Delphi程序设计》模拟试题 中央电大工学院王欣 一、填空题(20分,每空2分) 1、结构化程序设计的基本原则是取消go语句,程序中仅采用顺序、 和循环三 种控制结构。 2、一个对象是由属性、方法和事件所组成。属性表示对象中的数据, 是对象 能够执行的动作, 是能够引起对象反应的条件。 3、与数学表达式 sin2(x+y对应的Object Pascal表达式是, sin(x+y2) 4、ListBox对象列表框中的内容是通过 属性来进行设置的。 5、调用主窗体的 方法,可以结束程序关闭窗体。 6、如果让界面上的一个按钮在运行的时候变为不可见,需要将它的 属性设 为False。. 7、利用DBGrid的 属性,可以设置DBGrid每一列的标题和对齐方式等。 8、通过Animate对象的 属性设置,可以指定系统标准的AVI动画演示。 9、在Delphi集成开发环境中,如果想要直接设置或者修改对象的属性,可以通过对象 查看器(Object Inspector)中的 窗口直接进行设置。 二、单项选择题(30分,每题3分) l、下面哪句话对Delphi的描述是正确的()。 A.只能用于数据库客户端开发的工具 B.Delphi的编程语言全部是面向过程的 C.Delphi的编程语言是Java D.面向对象的可视化的开发环境 2、在Delphi中,建立一个文本编辑区域,可采用下列( )。 A、命令按钮B、文本标签控件 C、Edit控件 D、Timer控件 3、表达式60+19div2的值是() A. 67 B.79 C.69 D.80 4、一个Delphi应用程序必有一个()文件和至少一个单元文件。 A)执行程序 B)项目C)数据 D)图形
《Delphi 程序设计》模拟试题 中央电大工学院 王欣 一、填空题(20 分,每空 2 分) 1、结构化程序设计的基本原则是取消 goto 语句,程序中仅采用顺序、 和循环三 种控制结构。 2、一个对象是由属性、方法和事件所组成。属性表示对象中的数据, 是对象 能够执行的动作, 是能够引起对象反应的条件。 3、与数学表达式 sin( ) sin ( ) 2 2 2 x y x y + + 对应的 Object Pascal 表达式是 。 4、ListBox 对象列表框中的内容是通过 属性来进行设置的。 5、调用主窗体的 方法,可以结束程序关闭窗体。 6、如果让界面上的一个按钮在运行的时候变为不可见,需要将它的 属性设 为 False。 7、利用 DBGrid 的 属性,可以设置 DBGrid 每一列的标题和对齐方式等。 8、通过 Animate 对象的 属性设置,可以指定系统标准的 AVI 动画演示。 9、在 Delphi 集成开发环境中,如果想要直接设置或者修改对象的属性,可以通过对象 查看器(Object Inspector)中的 窗口直接进行设置。 二、单项选择题(30 分,每题 3 分) 1、下面哪句话对 Delphi 的描述是正确的 ( )。 A.只能用于数据库客户端开发的工具 B.Delphi 的编程语言全部是面向过程的 C.Delphi 的编程语言是 Java D.面向对象的可视化的开发环境 2、在 Delphi 中,建立一个文本编辑区域,可采用下列( )。 A、命令按钮 B、文本标签控件 C、Edit 控件 D、Timer 控件 3、表达式 60 + 19 div 2 的值是( ) A. 67 B. 79 C. 69 D. 80 4、一个 Delphi 应用程序必有一个( )文件和至少一个单元文件。 A) 执行程序 B) 项目 C) 数据 D)图形

5、最适合于在工具栏上放置的工具按钮是() A.Button B.RadioButton C.SpeedButton D.BitBtm 6、编辑框(Edit)中的文本发生改变时引发的事件是() A.AutoSize B.OnChange C.SetFocus D.SetText 7、现建立一个简单报表,要求其中要包含报表的汇总栏,则在Bands属性的子属性中, 需要选择的是() A.ColumnHeader B.Detail C.Title D.Summary 8、任何控件都有的属性是() A)BackColor B)Caption C)Name D)BorderStyle 9、数据库组件中,提供了对数据库读写操作功能的核心组件是() A.数据源组件 B.用户界面组件 C.数据集组件 D.数据感知控件 10、下列说明不正确的是() A、OpenDialog是打开文件对话框。 B、Edit组件的Clear方法是清除编辑框中的内容。 C、CheckBox控件是通过Checked属性确定选择状态。 D、按钮组件的属性Name设置为“确定”,则按钮上文本显示为“确定”。 三、判断题,请给下列论述中正确的打上“√”,错误的打上“×”(10分,每题2分)》 1、()函数int(2.718)=2.0计算是正确的。 2、()Delphi是面向对象的可视化的开发环境,编程语言采用Object C。 3、()要想在数据集中增加计算字段,必须先将数据集的字段全部置为动态字段。 4、( )(x=5)OR(x<=-5))AND(xin[1.9])当x=10时,表达式的值为假(或false) 5、()在一个项目中,第一个建立的窗体固定就是主窗体,并且再也不设置其他窗 体为主窗体
5、最适合于在工具栏上放置的工具按钮是( ) A.Button B.RadioButton C.SpeedButton D.BitBtm 6、编辑框(Edit)中的文本发生改变时引发的事件是( ) A.AutoSize B.OnChange C.SetFocus D.SetText 7、现建立一个简单报表,要求其中要包含报表的汇总栏,则在 Bands 属性的子属性中, 需要选择的是( ) A.ColumnHeader B.Detail C.Title D.Summary 8、任何控件都有的属性是( ) A) BackColor B) Caption C) Name D) BorderStyle 9、数据库组件中,提供了对数据库读写操作功能的核心组件是( ) A.数据源组件 B.用户界面组件 C.数据集组件 D.数据感知控件 10、下列说明不正确的是( ) A、 OpenDialog 是打开文件对话框。 B、 Edit 组件的 Clear 方法是清除编辑框中的内容。 C、 CheckBox 控件是通过 Checked 属性确定选择状态。 D、 按钮组件的属性 Name 设置为“确定”,则按钮上文本显示为“确定”。 三、判断题,请给下列论述中正确的打上“√”,错误的打上“”(10 分,每题 2 分) 1、( ) 函数 int(2.718) = 2.0 计算是正确的。 2、( )Delphi 是面向对象的可视化的开发环境,编程语言采用 Object C。 3、( ) 要想在数据集中增加计算字段,必须先将数据集的字段全部置为动态字段。 4、( ) ( (x>=5) OR (x<=-5) ) AND ( x in [1..9] ) 当x=10时,表达式的值为假(或false) 5、( )在一个项目中,第一个建立的窗体固定就是主窗体,并且再也不设置其他窗 体为主窗体

四、程序填空题(30分,每题10分) 1、(10分,每空2分) 应用程序的用户界面如下图所示: ☑oml 回x 姓名张晓林 性别 张晓林 女 ·男 女 中文 所在系: 割教授 中文 职称: 教投 4 副教授 讲师 确灾 功能说明: 该界面是一个教师信息录入界面。 用户在编辑框(Edit1)中输入姓名,利用单选按钮(RadioGroup1)指定性别,利用组 合框(ComboBox1)选择或直接输入所在系,利用列表框(ListBox1)指定职称。当输入完 上述信息后,单击“确定”按钮,教师信息将显示在右边的Mmol编辑窗口中。 下面是开发过程,请完成填空部分: 通过RadioGroup1的Items属性设置两个单选按钮(“男”和“女”),并将属性①设 置为2(按钮摆两列)。 通过ComboBoxl的 ② 属性设置下拉选单中的系名。 通过ListBox1的Items属性设置列表框中的职称列表。 “确定”按钮的单击事件处理程序如下: procedure TForm1.Button1Click(Sender:TObject); begin memol.Lines.Add(edit1.3 )方加入编辑框的内容 if radiogroupl.④ =0then∥判断选择了哪个按钮 memol.Lines..Add('男) else memol.Lines.Add('女'); memol.Lines.Add(combobox1.Text); 加入系的文本
四、程序填空题(30 分,每题 10 分) 1、(10 分,每空 2 分) 应用程序的用户界面如下图所示: 功能说明: 该界面是一个教师信息录入界面。 用户在编辑框(Edit1)中输入姓名,利用单选按钮(RadioGroup1)指定性别,利用组 合框(ComboBox1)选择或直接输入所在系,利用列表框(ListBox1)指定职称。当输入完 上述信息后,单击“确定”按钮,教师信息将显示在右边的 Memo1 编辑窗口中。 下面是开发过程,请完成填空部分: 通过 RadioGroup1 的 Items 属性设置两个单选按钮(“男”和“女”),并将属性 ① 设 置为 2(按钮摆两列)。 通过 ComboBox1 的 ② 属性设置下拉选单中的系名。 通过 ListBox1 的 Items 属性设置列表框中的职称列表。 “确定”按钮的单击事件处理程序如下: procedure TForm1.Button1Click(Sender: TObject); begin memo1.Lines.Add(edit1. ③ ); //加入编辑框的内容 if radiogroup1. ④ = 0 then //判断选择了哪个按钮 memo1.Lines.Add('男') else memo1.Lines.Add('女') ; memo1.Lines.Add(combobox1.Text); //加入系的文本

memol.Lines.Add(listbox1._⑤_[listbox1.itemindex]);方/加入职称 end: 2、(10分,每空2分) 本程序由主窗体forml和子窗体form2组成,设计界面如下图所示: 7Forml ▣x 播放 Form2 ✉▣x 停止 是否退出: √Yes ⊙o 加载AVI文件 退出 主窗体上建立的对象有Panell、Animatel、Buttonl(加载AM文件)、Button2(退出)、 Button3(播放)、Button4(停止)和OpenDialog1。 子窗体上建立的对象有Labell、BitBtml(Yes)、BitBtm2(No)。 单击“加载AVI文件”按钮,会弹出打开文件对话框。用户指定一个.vi的文件后,动 画文件加载到Animatel显示区中。单击“播放”按钮可播放动画,单击“停止”按钮可停 止播放。 单击“退出”按钮,会弹出确认对话框(Form2)。如果用户按“Yes”键,程序结束: 如果按“No”键,返回主窗体。 下面是Unit1的代码部分,请在下划线处完成程序填空。 implementation (SR *.dfm) uses ① procedure TForm1.ButtonIClick(Sender:TObject),/加载AVI文件 begin if② then animatel.FileName : ③ end;
memo1.Lines.Add( listbox1. ⑤ [listbox1.itemindex] ); //加入职称 end; ---------------------------------------------------------------------------------------------------------------- 2、(10 分,每空 2 分) 本程序由主窗体 form1 和子窗体 form2 组成,设计界面如下图所示: 主窗体上建立的对象有 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 animatel.Play(1,animatel.FrameCount,0); end; procedure TForml.Button4 Click(Sender:TObject);∥停止 begin animatel.⑤ end; end. 3、(10分,每空2分) 本程序的功能是实现对dep表(系)一student表(学生)的主从查询。用户可以依次 查询系的记录,也可以通过指定系号,查找并定位到指定的记录。每当显示一个系的记录后, 系统自动显示该系的学生记录。设计界面和运行界面如下: 7Forml 回x 7Form1 ▣x 系号 DBEdit1 指定系号Edit1 查找 系号 d01 指定系号d01 查找 系名 DBEdit2 上一记录 每 系名 计算机系 上一记录 电话 DBEdit3 下一记录 国 电话 2934 下一记录 Sno Sname SexBirthday Dno 010002吴成 女1982-11-17d01 030002李林 女1984-3-5d01 040001侯成文男1985-1-21d01 在Forml上建立的主要对象及连接如下: Databasel-Tablel(与dep表相连)一DataSourcel-DBEdit1~DBEdit3 Databasel-Query1-DataSource2-DBGrid1(显示学生信息) Edit1、Button1(查找)、Button2(下一记录)、Button.3(上一记录)等。 Query1的SQL语句是: select
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 animate1. ⑤ ; end; end. 3、(10 分,每空 2 分) 本程序的功能是实现对 dep 表(系)-student 表(学生)的主从查询。用户可以依次 查询系的记录,也可以通过指定系号,查找并定位到指定的记录。每当显示一个系的记录后, 系统自动显示该系的学生记录。设计界面和运行界面如下: 在 Form1 上建立的主要对象及连接如下: Database1-Table1(与 dep 表相连)-DataSource1-DBEdit1~DBEdit3 Database1-Query1-DataSource2-DBGrid1(显示学生信息) Edit1、Button1(查找)、Button2(下一记录)、Button3(上一记录)等。 Query1 的 SQL 语句是: select *

from student where dno=:dno 下面是Unitl单元的代码实现部分,请完成程序填空。 implementation (SR *.dfm) procedure TForml.Button2 Click(Sender:TObject);/∥下一记录 begin tablel._① end; procedure TForm1.Button.3 Click(Sender:TObject);∥上一记录 begin tablel.② end; procedure TForml.Button1Click(Sender::TObject),/∥查找 begin tablel.③ ('dno',edit1.Text,[]); end; procedure TForm1.TablelAfterScroll(DataSet:TDataSet); begin query1.Close; query1.ParamByName('dno').Value:=4 query1. ⑤ end: end 五、编程题(10分) 某俱乐部实行会员注册收费,每位会员按整月每月收费500元整。但是对注册时期较长 的会员有价格优惠。规则如下:注册6个月以下(含6个月)每月收费金额不变,6至12 个月实行9折收费,12个月以上(不含12个月)8折收费。编程在“注册月数”框中输入
from student where dno = :dno 下面是 Unit1 单元的代码实现部分,请完成程序填空。 ---------------------------------------------------------------------------------------------------------------- implementation {$R *.dfm} procedure TForm1.Button2Click(Sender: TObject); //下一记录 begin table1. ① ; end; procedure TForm1.Button3Click(Sender: TObject); //上一记录 begin table1. ② ; end; procedure TForm1.Button1Click(Sender: TObject); //查找 begin table1. ③ ('dno',edit1.Text,[]) ; end; procedure TForm1.Table1AfterScroll(DataSet: TDataSet); begin query1.Close ; query1.ParamByName('dno').Value := ④ ; query1. ⑤ ; end; end. ---------------------------------------------------------------------------------------------------------------- 五、编程题(10 分) 某俱乐部实行会员注册收费,每位会员按整月每月收费 500 元整。但是对注册时期较长 的会员有价格优惠。规则如下:注册 6 个月以下(含 6 个月)每月收费金额不变,6 至 12 个月实行 9 折收费,12 个月以上(不含 12 个月)8 折收费。编程在“注册月数”框中输入

会员欲注册的月数,单击“计算”按钮后在“应收金额”框中显示应收会费总钱数。单击“结 束”按钮结束程序。 本程序设计界面及运行界面如下: 7俱乐部收我程序 日▣☒ 注册月数 应收金额 Edit1 月X500= Edit2 Button1 Button2 7俱乐部收费程序 日▣☒ 注册月数 应收金额 4 月×500= 2000 计草可 结束了 俱乐部收我程序 回回☒ 注册月数 应收金额 10 月×500= 4500 计登 结束 似乐部收费程序 回回☒ 注册月数 应收金额 20 月X500= 8000 计 结束 请编写单击“计算”(Button1)按钮的事件处理程序。 procedure TForm1.ButtonIClick(Sender:TObject); begin
会员欲注册的月数,单击“计算”按钮后在“应收金额”框中显示应收会费总钱数。单击“结 束”按钮结束程序。 本程序设计界面及运行界面如下: 请编写单击“计算”(Button1)按钮的事件处理程序。 procedure TForm1.Button1Click(Sender: TObject); begin

end; procedure TForm1.Button2Click(Sender:TObject); begin Close; end:
end; procedure TForm1.Button2Click(Sender: TObject); begin Close; end;

参考答案 一、填空题(20分,每空2分) 1、分支 2、方法 事件 3.sqr(sin(x+y))/sin(sqr(x)+sqr(y)) 4、Items 5、Close 6、Visible 7、Columns 8、 CommonAVI 9、属性或Properties 二、单项选择题(30分,每题3分) 1、D 2、C 3、C4、B5、C 6、B7、D 8、C 9、C 10、D 三、判断题(10分,每题2分) 1、√2、× 3、× 4、√ 5、× 四、程序填空题(30分,每题10分) 1、(10分,每空2分) ①Column ②Items ③Text ④ItemIndex ⑤Items 2、(10分,每空2分) ①unit2 ② opendialog1.Execute 3 opendialogl.FileName ④ form2.ShowModal ⑤top 3、(10分,每空2分) ①Next ②Prior ③Locate ④tablel[dno] ⑤Open 五、编程题(10分) procedure TForm1.ButtonIClick(Sender:TObject); Var mon:Integer; Money:Real; begin mon :StrTolnt(editl.Text): IF mon<=6 Then
参考答案 一、填空题(20 分,每空 2 分) 1、分支 2、方法 事件 3、sqr(sin(x+y)) / sin(sqr(x) + sqr(y)) 4、 Items 5、 Close 6、Visible 7、 Columns 8、 CommonAVI 9、属性 或 Properties 二、单项选择题(30 分,每题 3 分) 1、 D 2、C 3、C 4、B 5、 C 6、 B 7、 D 8、C 9、C 10、 D 三、判断题(10 分,每题 2 分) 1、 √ 2、 3、 4、√ 5、 四、程序填空题(30 分,每题 10 分) 1、(10 分,每空 2 分) ① Column ② Items ③ Text ④ ItemIndex ⑤ Items 2、(10 分,每空 2 分) ① unit2 ② opendialog1.Execute ③ opendialog1.FileName ④ form2.ShowModal ⑤ stop 3、(10 分,每空 2 分) ① Next ② Prior ③ Locate ④ table1['dno'] ⑤ Open 五、编程题(10 分) procedure TForm1.Button1Click(Sender: TObject); Var mon: Integer; Money:Real; begin mon := StrToInt(edit1.Text); IF mon <= 6 Then

Money :=500 mon Else IF mon<=12 Then Money :500 mon 0.9 Else Money :500 mon 0.8; edit2.text:=FloatToStr(Money); end;
Money := 500 * mon Else IF mon <=12 Then Money := 500 * mon * 0.9 Else Money := 500 * mon * 0.8; edit2.text := FloatToStr(Money); end;