试卷代号:2235 座位号■■ 中央广播电视大学2011一2012学年度第二学期“开放专科”期末考试 Delphi程序设计试题 2012年7月 题号 二 三 四 五 总 分 分 数 得 分 评卷人 一、单项选择题(30分,每题3分)】 1.Delphi程序设计的基本特点是( ) A.可视化程序设计 B.代码程序设计 C.事件驱动编程 D.A和C 2.以下不是Delphi中对象编辑器的作用是() A.选择对象 B.设置属性 C.添加事件 D.编译程序,定制Delphi选项 3.“x是小于100的非负数”的Object Pascal表达式是() A.0≤x=0,x=0)AND(x=0)OR(x<100) 4.利用Image对象的哪个属性设置,可以使加载的图像自动放大或缩小,以适应Image 的显示区域?() A.Stretch B.AutoSize C.Align D.Center 5.工具栏上的一个SpeedButton按钮如果要设置为状态按钮,则正确设置的方法是() A.将SpeedButton按钮的GroupIndex属性设置为O,且AllowAllUp属性设置为True B.将SpeedButton按钮的GroupIndex属性设置为O,且AllowAllUp属性设置为False C.将SpeedButton按钮的GroupIndex属性设置为非O值,且AllowAllUp属性设置为True D.将SpeedButton按钮的GroupIndex属性设置为非O值,且AllowAllUp属性设置为False 6.Pascal单元文件的扩展名是() A.dps B.dpr C.pas D.dfm 1395
试卷代号 2 2 3 5 座位号 中央广播电视大学 11 2012 第二学期 开放 末考 Delphi 试题 2012 年7 题号 总分 分数 得分|评卷人 一、单项选择题 0分,每题 3分} 1. Delphi 程序 本特 ) A. 视化程 计B. 代码程 设计 c.事件驱动编程 和C 2. IV.下不是 p h i中对象编辑器的作用是( ) A. 选择 象B. c.添加事件 .编译程序,定制 i选项 3."x 是小于100 的Object Pascal 式是 ) A. 0 x = 0 , x=0) AND (x = 0 ) OR (x<100) 4. 利用 大 或 缩小 的显示区域? ( ) A. Stretch B. AutoSize B. dpr D. dfm C. Align D. Center 5. 栏上 ee t t on 按钮 方法是 ) A. 将SpeedButton 按钮的GroupJndex 为0 A1lowA1IUp 性设置为True B. 将SpeedButton 的GroupJndex 性设置为0 A1lowA1lUp c.将 ee tt n按钮的 ro x属性设置为非 O值,且A1 wA1 p属性设置为 D. 将SpeedButton 按钮的GroupJndex 性设 A1lowA1lUp 为False 6. Pascal 单元 扩展 ) A. dps C. pas 1395
7.下列说法正确的是() A.组件必须是可视的,这样用户才能使用 B.Delphi中组件就是控件,二者是完全相同的 C.控件都是可视的 D.按钮(Button))是组件,而窗体(Form)则不是组件 8.以下能够触发编辑框(Edit)组件OnChange事件的操作是() A.鼠标单击编辑框 B.鼠标双击编辑框 C.在编辑框中选择文本 D.在编辑框中输入文本 9.以下叙述中错误的是( A.一个项目包含不止一种类型的文件 B.窗体的Show方法的作用是显示该窗体 C.窗体的Hide方法和Release方法的作用完全相同 D.若项目文件中有多个窗体,可以根据需要指定一个窗体为主窗体 10。只能输出、而不能输入的数据感知控件是() A.DBEdit B.DBText C.DBRadioGroup D.DBCheckBox 得分 评卷人 二、判断题,请给下列论述中正确的打上“√”,错误的打上“X”(10 分,每题2分) )ll.时钟Timer组件的时间间隔是由Interval属性控制,例如其值为l000时表示时间 间隔是1秒。 ()I2.在Delphi环境中,组件页上的组件是“对象”的概念,在窗体上建立的按钮是“类”的 概念。 ( )l3.打开的数据集Table通过BDE访问一个数据表,则调用Table的First方法可以 使记录指针指向table的第一个记录。 )l4.在Data Controls组件页上,只有DBNavigator组件可以不用指定DataField属性值。 )15. 图形组件没有输入焦点,不能接受用户的输入,它只具有向用户显示的功能。 得 分 评卷人 三、填空题(20分,每空2分)】 16.结构化程序设计要求程序中仅采用 三种控制结构, 其中每种结构只能有一个入口和一个出口。 17.现实世界中对象具有自己的状态和行为。对应着,面向对象技术中的对象可以具有 自己的 和方法。 1396
7. 下列 ) A. 组件必须 B. Delphi 就是控件 全相 控件 D. 钮(Button) 是组 体(Form) 组件 8. 下 能够 发编辑框(Edit) 件OnChange 事件 ) A. 框B. c.在编辑框中选择文本D.在编辑框中输入文本 9. ) A. 个项 含 不 种类 文件 B. h o 作用是显示 c.窗体的 e方法和 e方法的作用完全相同 D. 文件 据需要 10. 而不能 件是 ) A. DBEdit C. DBRadioGroup 得分评卷人 B. DBText D. DBCheckBox 二、判断题,请给下列论述中正确的打上...) ",错误的打土 分,每题 2分) ( ) 1 1. 钟Timer 组件 间 间 由Interval 性控 其值为1000 间隔是 1秒。 ( ) 12. 在Delphi 环境 组件 组件 概念 概念。 ( ) 13. 集Table 过BDE 个数据 表 则 调 用Table 的First 使记录指针指向 e的第-个记录 ( ) 14. Data Co ro 组件 vi 组件 Da el 性值 ( ) 15. 形组件 输入 输入 得分 l评卷人 三、填空题 0分,每空 2分) 16. 设计 要 求 其中每种结构只能有→个人口和一个出口。 17. 具有 应 着 象可 自己的和方法。 1396
l8.Delphi应用程序中项目文件的扩展名是 19.在设计阶段,利用1mage对象的 属性,可以加载一幅图片。 20.Delphi有三种控制循环的语句:repeat语句, 语句,for语句。 21.下面的语句用来删除Tmemo组件的第4行,请补充完整: memol.lines.delete(); 22.Delphi程序与数据库之间进行数据交换一般要由多个数据库组件协作完成。如果用 户要查询数据库中的一条信息,该指令通过用户界面组件发出,经数据源组件到达数据集组 件。数据集组件利用 组件与数据库建立连接,并读取数据库 中的数据,而后又经过 组件将数据送到用户界面组件中显示。 23.与数学表达式cosa+b)+a对应的Object Pascal表达式是 a2Xx 24.利用 对象的LineTo等绘图方法,可以绘制基本图形。 得 分 评卷人 四、程序填空题(30分,每题10分)】 25.(10分,每空2分) 本程序根据用户选择的运算符对输人的二个操作数进行运算,并显示运算结果。设计界 面和运行界面如图所示。其中,运算符是一个含有4个单选按纽的RadioGroupl对象。 Formi Formi 请选择 操作数1:diti 请选择 操作数1B网 。加 加 c减 操作数2Edit2 减 操作数2p 月r乘 r除 结果抢dit3 c除 结果3 运算 退出 运算 退出 5投 下面是单击“运算”按钮的事件处理程序,请根据功能要求完成程序填空。 procedure TForm1.ButtonlClick(Sender:TObject);// var x1,x2,y Integer; begin x1 :StrToInt(Edit1.D x2 :StrToInt(Edit2.2 Case③ ItemIndex of 1397
18. Delphi 程序 19. 设计 用Image 对象 加载一 20. Delphi 种控 repeat for 1. 下 面 除Tmemo 组件 的第4 补充完整 memo1. lines. deleteC ) ; 22. Delphi 据库之 进行数据交换一 件协 户要查询数据库中的一条信息,该指令通过用户界面组件发出,经数据源组件到达数据集组 件。数据集组件利用组件与数据库建立连接,并读取数据库 中的数据,而后又经过组件将数据送到用户界面组件中显示。 S2 Ca +b) .与数学表达式 a对应的 e c Pascal 表达式 a- )飞 24. 对象的 o等绘图方法,可以绘制基本图形。 得分|评卷人 四、程序填空题 0分,每题 0分} 3亨丁 ‘.:"‘'‘ 下面是单击"运算"按钮的事件处理程序,请根据功能要求完成程序填空。 procedure TForm1. Button1ClickCSender: TObject);//运算 var xl , x2 , y : Integer; begin xl : = StrToIntC Editl. x2 : = StrToIntC Edit2. Case ) ; . ItemIndex of 1397
0:y:=x1+x2; 1:y:=x1-x2; 2:y:=x1*x2; 3:y :x1 Div x2; End; Edit3.④ :=IntToStr(⑤ end; 26.(10分,每空2分) 本程序由主窗体forml和子窗体form2组成,设计界面如下图所示: EForm1 口× Form2 1回x Panell 是否退出: √Yes ⊙No 打开文件 播放哲 返出 主窗体Forml上建立的对象有Panell.MediaPlayer1.OpenDialogl.Buttonl(打开文 件)、Button2(播放)、Button3(暂停)、Button4(退出)。 子窗体Form2上建立的对象有Labell.BitBtm1(Yes)、BitBtm2(No)。 单击“打开文件”按钮,会弹出打开文件对话框。用户指定一个要播放的文件后,单击“播 放”按钮可播放多媒体文件,单击“暂停”按钮可暂停播放。 单击“退出”按钮,会弹出确认对话框(Form2)。如果用户按“Yes”键,程序结束;如果按 “No”键,返回主窗体。 下面是Unit1的代码部分,请在下划线处完成程序填空。 implementation ($R *dfm) uses ① procedure TForml.Button1Click(Sender:TObject);/打开文件 begin if② then 1398
0: Y : = xl 十x2 ; I: Y : = xl - x2; 2: Y : = xl 铸x2; 3: y : = xl Div x2; End; Edit3. : = IntToStr( end; 一一-一一一一一一一一一-一一----,一一-一一←一一一一-----一-一一一一一一,一一一一-一一一 26. (1 本程序由主窗体 1和子窗体 2组成,设计界面如下图所示: 拉玩丽由罐罐蠢 . ,是否退出: 二:;:「豆豆 ;二 J{T3 • I~ l~ ...., A 1: Form] , ,,':甲需镰露露 主窗体 1上建立的对象有 l. MediaPlayerl. OpenDialogl. Button1 (打开文 件)、 o n (播放)、 t t (暂停)、 tt o n (退出)。 子窗体 2上建立的对象有 ll BitBtm1 (Yes) 、BitBtm2(No) 单击"打开文件"按钮,会弹出打开文件对话框。用户指定一个要播放的文件后,单击"播 放"按钮可播放多媒体文件,单击"暂停"按钮可暂停播放。 单击"退出"按钮,会弹出确认对话框 "No" 主 窗 下面是 l的代码部分,请在下划线处完成程序填空。 一一一一一一一-一一一一一一-一一-一一一一一一-一一一一一一-一一--一-一-←-一一甲---------一一-…←一~一一-一--一 implementation {$ dfm} uses procedure TForml. Button1Click(Sender: TObject); / /打开文件 begin if 1398 then
begin MediaPlayer1.FileName :=3 MediaPlayerl.Open MediaPlayer1.Display:=Panell;/将Panell做为播放屏幕 MediaPlayer1.DisplayRect :=Rect(0,0,Panell.Width,Panell.Height); end end; procedure TForm1.Button2Click(Sender:TObject);// begin MediaPlayer1.④ end; procedure TForm1.Button3Click(Sender:TObject);// begin MediaPlayer1.Pause end; procedure TForm1.Button4Click(Sender:TObject);// begin if⑤ mrYes then close; end; end. 27.(10分,每空2分) 本程序实现一个简单的选课界面。设计界面和运行界面如下图所示: Form1 7 Form1 白x 课程信总: 士国倒 课程信意: 课号课名酒 学分时间名额色 课号课名]学分时间名额一 Cc01物理 11 199 c01 物理 11 199 c02 化学 2 14 99 c02 化学 14 38 c03 外语 1, 23 49 c03外语 23 49 学号:Editl 选课上國 学号: 040001 选课 该程序涉及到数据库中的两张表:course表(课程信息)和sc表(选课记录)。表结构如下: course(cno课号,cname课名,credit学分,ctime时间,quota名额) sc(sno学号,cno课号,grade成绩) 在用户界面,操作员选中一门课、输人学号后,按“选课”键完成选课功能,即在$c表中插 人一条选课记录,并将course表中该课程名额减l。 1399
, • begin MediaPlayerl. FileName: =③ MediaPlayerl. Open; MediaPlayer1. Display : = Panel1; !!将 n做为播放屏幕 MediaPlayerl. DisplayRect : =Rect(O ,O ,Panell. Width ,Panell. Height); end; end; procedure TForml. Button2ClickCSender: TObject); !!播放 begin MediaPlayerL (z end; procedure TForml. Button3ClickCSender: TObject); /!暂停 begin MediaPlayerl. Pause; end; procedure TForml. Button4C1ickCSender: TObject); !!退出 begin if ( = mrYes then close; end; end. 27. (1 本程序实现一个简单的选课界面。设计界面和运行界面如下图所示: 翻翻 γ一 课程信息 cOl 物理 4 11 i99......J ~lc02 化学 2 14 98 c03 外语 1 ‘ 课号 时间各额二 ~Ic 物化 4 11 199 2 14 99 ~号。02 外掌 1 23 49~ 4 - """., .-ιj .主干部「 :噎 j恩 学号:庐衍了 该程序涉及到数据库中的两张表 e表(课程信息)和 c表(选课记录)。表结构如下 course(cno ,cname credit ,ctirn quota scCsno 学号 ,cno ,grade 成绩 在用户界面,操作员选中一门课、输入学号后,按"选课"键完成选课功能,即在c表中插 入一条选课记录,并将 o ur s e表中该课程名额减1. 1399
该界面要实现以下合法性检查: ●当该学生已经选过此课,不能再选。 ●当课程名额为0,不能再选。 在Forml上建立的数据库组件对象及连接关系如下: Databasel-一Tablel(与course表相连)一DataSourcel一DBGrid1(显示课程信息) Databasel-Query1,Query2 其中为Tablel建立了永久字段:Tablelcno(课号)、Tablelcname(课程名)、Tablelquota (名额)等。 Query1的SQL语句如下: select cno from sc where sno =sno and cno =cno Query2的SQL语句如下: insert into sc values(sno cno null 下面是Unit1的代码实现部分,请完成程序填空: implementation ($R *dfm) procedure TForml.ButtonlClick(Sender:TObject);// begin query1.Close queryl..ParamByName(‘sno).Value:=① query1.ParamByName('cno').Value :tablelcno.Value; query1.Open if② <>null then begin showmessage(‘已选过该课程'); exit end; if③ =0 then begin showmessage(‘没有名额'); exit end; query2.Close 1400
该界面要实现以下合法性检查 ·当该学生巳经选过此课,不能再选。 ·当课程名额为 0,不能再选。 建立 据库组 象及连接 Database1-Table1 (与 表相 o u e e (显示课程信息) Database1-Query 、Query2 其中为 久 字 Table1eno( 人Table1ename( 人Table1quota (名额)等。 Query1 的SQL select eno from se where sno = :sno and eno = : eno Query2 的SQL Insert Into se values( :sno , :eno , null ) 下面是 1的代码实现部分,请完成程序填空: 一一一一一一一一一一一一一一一一→一一一 一一一一一一一一一一一一一一一- implementation { $ dfm} procedure TForml. Button1Cliek(Sender: TObjeet); / /选课 begin queryl. Close; queryl. ParamByName( ‘sno'). Value:= queryl. ParamByName( ‘eno'). Value: = table1eno. Value; queryl. Open; • , if <> null then begin showmessage( ,已选过该课程,) ; exit ; end; if = 0 then begin showmessage( ) ; eXIt; end; query2. Close; 1400
query2.ParamByName('sno').Value :editl.Text query2.ParamByName('cno').Value :tablelcno.Value query.2.④ tablel.⑤ tablelquota..Value:=tablelquota.Value-1;/课程名额减1 tablel.Post end; end. 得 分 评卷人 五、编程题(10分) 28.下图是本程序的设计界面(左)和运行界面(右): 7 Formi 口x Form1 操作数1Edit1 操作数121 「显示余数 户显示余数 操作数2巨dit2 操作数213 结果:dit3 余数:dit4 结采 余数招 除键 除键 在forml上建立的对象有:Labell~Label5、Editl~Edit4、Buttonl(除键)和CheckBox1等。 该程序实现除法运算。用户输入两个操作数,按除键后,整除结果显示在结果框中。 输入的操作数必须是1~50之间的整数。如果输入有误,程序要给出错误提示信息“输入 有错,请重新输人”。 如果“显示余数”复选框选中,则除法余数显示在余数框中,否则不显示余数。 请编写单击“除键”按钮的事件处理程序。 procedure TForm1.ButtonlClick(Sender:TObject); begin end; 1401
query2. ParamByNameC ‘sno'). Value: = edit1. Text; query2. ParamByNameC ‘eno'). Value: = table1eno. Value; query2. table1. table1quota. Value:= table1quota. Value - 1;// 减1 tablel. Post ; end; end. 得分|评卷人 五、编程题(l 28. 本程 设计 运行 : 一一一一一一一一一一一 1上建立的对象有: Labell La elS、Edit 1 Edi 4、 tton Bo 该程序实现除法运算。用户输入两个操作数,按除键后,整除结果显示在结果框中。 输入的操作数必须是 O之间的整数。如果输入有误,程序要给出错误提示信息"输入 有错,请重新输入"。 如果"显示余数"复选框选中,则除法余数显示在余数框中,否则不显示余数。 请编写单击"除键"按钮的事件处理程序。 procedure TForm1. Button1ClickCSender: TObject); begin end; 1401
试卷代号:2235 中央广播电视大学2011一2012学年度第二学期“开放专科”期末考试 Delphi程序设计 试题答案及评分标准 (供参考) 2012年7月 一、单项选择题(30分,每题3分) 1.D 2.D 3.C 4.A 5.c 6.C 7.C 8.D 9.C 10.B 二、判断题,请给正确的打上“√”,错误的打上“X”(10分,每题2分) 11./ 12.X 13./ 14.X 15./ 三、填空题(20分,每空2分) 16.顺序、分支和循环 17.属性 l8..dpr(或dpr) 19.Picture 20.while 21.3 22.数据库连接 数据源 23.sqr(cos(a+b))/(sqr(a)*x)+a cos(a+b)*cos(a+b)/(aa *x)+a 24.Canvas 四、程序填空题(共30分,每题10分) 25.(10分,每空2分) ①text ②text ③RadioGroupl ④text ⑤y 26.(10分,每空2分) ①unit2 2 opendialogl.Execute 1402
试卷代号 2 2 3 5 中央广播电视大学 0 11 2012 二学期 Delphi 试题答 分标 (供参考) 2012 年7 一、单项选择题 0分,每题 3分} 1. D 6. C 2. D 7. C 3. C 8. D 4. A 9. C 5. C 10. B 二、判断题'请给正确的打上 1. .J 12. X 13. .J 14. X .J 三、填空题{归0分,每空 2分} 16. 支和 17. 18. . dpr (或 19. Picture 20. while 21. 3 22. 据库 23. sqr(cos(a~b» /(sqr(a) 铃x)~a 或cos(a~b) 铃cos(a~b) /(a 祷a 到~a 24. Canvas 四、程序填空题{共 0分,每题 0分} 25. (1 ( text ( text @ RadioGroup1 ( text ( y 26. (1 ( unit 2 ( opendialogl. Execute 1402
3 opendialogl.FileName ④Pay ⑤form2.ShowModal 27.(10分,每空2分) ①editl.Text ②queryl[‘cno'] ③tablelquota.Value ④ExecSQL ⑤Edit 五、编程题(10分) 28.procedure TForml.ButtonlClick(Sender:TObject); var x,y,z integer begin x :strtoint(editl.Text); y :strtoint(edit2.Text); if ((x>=1)and (x=1)and (y<=50))then begin z:=x div y edit3.Text :inttostr(z); if checkbox1.Checked then edit4.Text :inttostr(x mod y) else edit4.Clear end else begin showmessage(‘输入有错,请重新输入’); exit; end end; 1403
( opendialogl. FileName ( Play ( form2. ShowModal 27. (1 ( editl. Text ( query1[' cno' ] ( table1quota . Value ( ExecSQ L ( Edit 五、编程题(1 28. procedure TForml. Button1Click(Sender: TObject); var x ,y,z : Integer ; begin x : = strtoint(editl. Text) ; y : = strtoint( edit2. Text) ; if «x>=l) and (x=l) and (y<=50» then begin Z : = x div y ; edit3. Text : = inttostr(z); ifcheckbox1.Checked then edit4. Text: = inttostr(x mod y) else edit4. Clear ; end else begin showmessageC ) ; exit ; end; end; 1403