试卷代号 : 2 2 3 5 座位号 I I I 中央广播电视大学 2 0 1 0-2 0 1 1 学年度第二学期 " 开放专科 " 期末考试 Delphi 程序设计试题 题号 I - I 二 三 四 五 总分 分数 I I I I I I I 2011 年 7 月 得分 评卷人 一 单项选择题 ( 3 0 分, 每题 3 分 ) 1. Delphi 程序设计的基本特点是 ( ) A. 可视化程序设计 B. 代码程序设计 C. 事件驱动编程 D. A 和 C 2. 修改窗体的标题时, 应当在属性页中设置的属性是 ( ) A. Caption B. Name C. Text D. Label 3. 下列哪个常量说明语句是正确的? ( ) A. const x : = (c < 16) B. const x : 16 C. const x : = 16 D. const x = 16 4."x 是小于 100 的非负数 " 的 Object Pascal 表达式是 ( ) A.0~x<100 B. x>=0,x<100 1432 C. (x >=0) AND (x < 100) D. (x >= 0 ) OR (x<100)
5. 工具栏上的一个 SpeedButton 按钮如果要设置为状态按钮, 则正确设置的方法是 ( ) A. 将 SpeedButton 按钮的 Grouplndex 属性设置为 0, 且 Al l owal IUp 属性设置为 True B. 将 SpeedButton 按钮的 Grouplndex 属性设置为 0, 且 AllowAlIUp 属性设置为 False c. 将 SpeedButton 按钮的 Group lndex 属性设置为非 O 值, 且 Al lowal IUp 属性设置为 True D. 将 SpeedButton 按钮的 Grouplndex 属性设置为非 O 值, 且 AllowAlIUp 属性设置为 False 6. 表达式 30 十 19 div 2 的值是 ( ) A. 37 B. 49 C. 39 D. 40 7. 在 RadioGroup 组件中有 4 个单选框, 当选中第 2 个单选框时, RadioGroup 组件中的 Itemlndex 属性值应为 ( ) A. B. 1 C. 2 D.3 8. 以下能够触发编辑框 (Edit) 组件 OnChange 事件的操作是 ( ) A. 鼠标单击编辑框 B. 鼠标双击编辑框 C. 在编辑框中选择文本 D. 在编辑框中输入文本 9. 现建立一个简单报表, 仅包含报表标题栏 数据栏和汇总栏, 则在 Bands 属性的子属性 中, 不需要选择的是 ( ) A. Title C. HasColumnHeader B. Detail D. Summary 10. 只能输出 而不能输入的数据感知控件是 ( ) A. DBEdit C. DBRadioGroup B. DBText D. DBCheckBox 得分 评卷人 二 判断题, 请给下列论述中正确的打上 " I ", 错误的打上 " X " ( 1 0 分, 每题 2 分 ) ( ) 11. const c : == 80 的说明语句是合法的 ( ) 12. 在 Delphi 环境中, 在窗体上建立的按钮是 " 类 " 的概念 ( ) 13. Tobject 是 delphi 的基类, 系统中的每一个类都是 Tobject 的子类 ( ) 14. 对象的 Name 属性值可以为空 ( ) 15. 一个 Query 对象同一时刻只能存储一条 SQL 语句 o 1433
得分 评卷人 三 填空题 ( 2 0 分, 每空 2 分 ) 16. 在面向对象的程序设计中, 对象的属性用来表示, 对象的方法用代码来实现 17. 下面的语句用来删除 Tmemo 组件的第 2 行, 请补充完整 : memo1. lines. delete( ) 18. 结构化程序设计要求程序中仅采用顺序 分支和三种控制结构, 其 中每种结构只能有 个入口和一个出口 19. 在 Delphi 集成开发环境中, 如果想要直接设置或者修改对象的属性, 可以通过对象查 看器 (Object Inspector) 中的 窗口直接进行设置 20. 在设计阶段, 利用 Image 对象的属性, 可以加载一幅图片 21. 时钟组件 (Timer) 常称为 " 定时器 ", 它每隔固定的时间间隔可以触发一个 事件 22. Delphi 程序与数据库之间进行数据交换一般要由多个数据库组件协作完成 如果用 户要查询数据库中的一条信息, 该指令通过用户界面组件发出, 经数据源组件到达数据集组 件 数据集组件利用 组件与数据库建立连接, 并读取数据库中的 数据, 而后又经过 组件将数据送到用户界面组件中显示 cos 2 (a 十 b ) 23. 与数学表达式 ",... I...+a 对应的 O bj e c t Pascal 表达式是 1434
法~A得分 评卷入 四 程序填空题 ( 共 30 分, 每题 1 0 分 ) 24. (10 分, 每空 2 分 本程序根据用户选择的运算符对输入的二个操作数进行运算, 并显示运算结果 界面如图 其中, 运算符是一个含有 4 个单选按纽的 R a d i ogro up 组件, 名称为 R adi og ro up l, 标题分别为 " 十 " " 一 " " 头 " 和 "/" 程序运行后, 在 Edit l. Edit2 中输入两个整数值, 选中一个单选按钮后单击命令按钮, 相应的计算结果显示在 Edit3, 程序运行情况如图所示 Editl Edit2 Edit3 符第十r r VA S JJ ogr 'Radi Ollp1 Button1 请填入适当的内容, 将程序补充完整 procedure TForm1. Button1Click(Sender: TObject); var xl, x2,y : Integer; xl : = StrToInt( Editl. 1 x2 : = StrToInt( Edit2. 2 Case 3 0: y : = xl 十 x2 ; 1: y : = xl - x2; ) ;. ItemIndex of End; 2: y : = xl 头 x2; 3: y : = xl Div x2; Edit3. 4 : = IntToStr( 5 1435
25. (10 分, 每空 2 分 ) 数据库 m ydb 中有关系表 s t u d e nt, 其结构如下 : student (sno 学号,sname 姓名,sex 性别, birthday 生日 ) 现编写一个学生信息浏览程序, 设计界面和运行界面如下图所示 : Databasel. DatabaseName mm vdvd tgju LUZD Table1. DatabaseName Tablel. TableName Table1. Active Datasourcel. DataSet DBNavigatorl. DataSource DBEdit2. DataSource DBEdit2. DataField student1一2一3一4一526. (10 分, 每空 2 分 ) 本程序实现一个简单的选课界面 设计界面和运行界面如下图所示 : 1436
该程序涉及到数据库中的两张表 : course( 课程表 和 sc( 选课表 ), 表结构如下 : sc(sno 学号,cno 课程号,grade 成绩 ) course(cno 课号,cname 课名, quota 名额 其中 : s no 和 c no 都是字符型 在用户界面, 操作员选中一门书 输入学号后, 按 " 选课 " 键, 完成选课功能, 即在 sc 表中插 入一条选课记录, 并将 co u r se 表中该课程的名额减 1 该界面要实现以下合法性检查 : 当该学生已经选过此课, 不能再选 当所选课程名额已为 0, 不能再选 在 Fo rml 上建立的数据库组件对象及连接关系如下 : Databasel-Tablel ( 与 co u r s e 表相连 ) -Dat aso u rc e l-dbgr i d l ( 显示课程信息 Databasel-Table2( 与 sc 表相连, 用于插入选课记录 Databasel-Queryl 其中为 Tab l el 建立了 3 个永久字段 : Tablelcno( 课程号 Tablelcname( 课程名 Tablelquota( 名额 Queryl 的 SQL 语句如下 : select cno from sc where sno = :sno and eno = :cno 下面是 Un i tl 的代码实现部分, 请完成程序填空 : implementation {$ R 铃. dfm} procedure TForml. ButtonlClick(Sender: TObject); / /" 选课 " 键 query1. Close; 1437
queryl. ParamByName( sno'). Value: =1 queryl. ParamByName( eno'). Value: =2 query!. Open; if queryl['eno'] <> null then showmessage( 已选过此课, ) ; exit if 3 then showmessage( 没有名额, ) ; exit; table2. 4 ( [editl. Text, tableleno. Value, null] ); tablel. Edit tablelquota. Value: = tablelquota. Value-I; / / 名额减 1 tablel. 5 end. 得分 评卷人 五 编程题 ( 1 0 分 ) 27. 一个计算圆周长和面积的程序, 设计界面及运行后界面如下图所示 在 " 半径 " 框中 输入圆的半径, 单击 " 计算 " 按钮, 在 " 周长 " " 面积 " 框中显示圆的周长和面积 根据题意, 请编 1438
写单击 " 计算 " 按钮 C Bu t t o n l ) 的事件处理程序代码仅可直接使用系统定义常量 P I ) 0 C 提示 : 设圆的半径为 r, 则圆的周长 = 2 衍, 面积 = πr ) : 半径 :2: ; ; 同? : ; : ; : : : : : ; 二 ω i... : 肩长 :~ :: 如隙 :;;;:::::::::::; Bu 慧 on2 I J 面积 :. : : led 憾 : ; ; ; ; ; : ; ; ; ; ; ; ; ; ; 半径 : 严 周长 z j 幻. 倒 面积 = i 1 1 3. 创 二豆豆 3 退出! procedure TForml. Button1ClickCSender: TObject); procedure TForml. Button2ClickCSender: TObject); Close; 1439
试卷代号 : 2 2 3 5 中央广播电视大学 2 0 1 0-2 0 1 1 学年度第二学期 " 开放专科 " 期末考试 Delphi 程序设计试题答案及评分标准 一 单项选择题 ( 3 0 分, 每题 3 分 ) ( 供参考 2011 年 7 月 1. D 2.A 3. D 4.C 5. C 6. C 7. B 8.D 9. C 10. B 二 判断题, 请给正确的打上 "~", 错误的打上 " X " ( 1 0 分, 每题 2 分 ) 11. X 12. X 13. ~ 14. X 15. ~ 三 填空题 ( 20 分, 每空 2 分 ) 16. 变量 17. 1 18. 循环 19. 属性 20. Picture 21.0nTimer 22. 数据库连接 数据源 23. sqr(cos(a+b» 1(9-x) 十 a 或 co s ( a 十 b ) 头 c o s ( a+ b ) I(g-x) 十 a 囚 程序填空题 ( 共 30 分, 每题 1 0 分 ) 24. (10 分, 每空 2 分 ) ( text ( text ( RadioG roup 1 ( text ( y 1440
25. C10 分, 每空 2 分 ) ( T rue ( T able1 ( DataSource1 ( DataSourcel ( snam e 26. C10 分, 每空 2 分 ) ( edit 1. text ( t able1cno. value ( T able l quota. value==o ( Insert R ecord ( P ost 五 编程题 ( 1 0 分 ) 27. procedure TForm1. Button1ClickCSender: TObject); Var r,c,s : real; r: == StrToFloatCedit1. Text); C! == 2 长 P I 头盯 S: == PI 头 r 关 r; / / 或者为 P I 头 s q r ( r ) edit2. Text: == edit3. Text: == FloatToStr(C); FloatToStrCS); 1441