Delphi程序设计试题及解答1-1-111
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《Delphi 程序设计》试题及解答 卷6
一、填空题(20分,每空2分)
1、现实世界中对象具有自己的状态和行为。
对应着,面向对象技术中的对象可以具有自己的属性和 。
2、结构化程序设计要求程序中仅采用顺序、分支和循环三种控制结构,其中每种结构只能有 和一个出口。
3、Delphi 应用程序中单元文件的扩展名是 。
4、与数学表达式 53)(cos 2++x
b a 对应的Object Pascal 表达式是 。
5、对于下面的条件表达式:
((3 <= x )AND (x < 0)) OR (x in [1..10])
当x = 3 时, 该表达式的值为 。
6、ListBox 对象列表框中的内容是通过 属性来进行设置的。
7、如果想设计DBGrid 对象的列标题和对齐方式,可以对DBGrid 对象的 属性进行设置。
8、时钟组件(Timer )能有规律的以一定时间间隔触发 事件
9、能够实现格式化输入的编辑框组件是
10、利用 对象的LineTo 等方法,可以绘制基本图形。
二、单项选择题(20分,每题2分)
1、Delphi 程序设计的基本特点是( )。
A . 可视化程序设计
B . 代码程序设计
C . 事件驱动编程
D . A 和C
2、进度显示组件ProgressBar 的当前进度可以通过( )属性设置。
A . Step
B .Scroll
C . Position
D .Max
3、下列变量命名正确的是( )。
A .7ABC
B . My7
C . page@2
D .cmd..1
4、“x 是小于200的非负数”的Object Pascal 表达式是( )。
A .0 ≤ x < 200
B . x >= 0, x<200
C .(x >=0) AN
D (x < 200) D . (x >= 0 ) OR (x<200)
5、在窗体上建立多页面的用户界面,需要首先建立的对象是( )
A . TabControl
B .PageControl
C . HeaderControl
D .PageScroller
6、能够删除edit1中内容的语句是( )。
A . edit1.Clear ;
B .edit1. Focused ;
C . edit1.Text= null ;
D .edit1.text :='\0' ;
7、现建立一个简单报表,仅包含数据列标题栏、数据栏和汇总栏,则在Bands 属性的子属
性中,不需要选择的是()
A.HasColumnHeader B.Detail
C.Summary D.Title
8、下面哪个功能键可以调出Delphi 的联机帮助信息()
A.F1键B.F2键
C.F3键D.F4键
9、以下能够触发编辑框(Edit)组件OnChange事件的操作是()
A.鼠标单击编辑框B.鼠标双击编辑框
C.在编辑框中选择文本D.在编辑框中输入文本
10、以下叙述中错误的是()
A.一个项目包含不止一种类型的文件。
B.窗体的Show方法的作用是显示该窗体。
C.窗体的Hide方法和Release方法的作用完全相同。
D.若项目文件中有多个窗体,可以根据需要指定一个窗体为主窗体。
三、判断题(10分,每题1分)
请给下列论述中正确的打上“√”,错误的打上“ ”
1、()在事件处理程序中定义的变量,其生命周期仅限于该过程。
2、()在Delphi程序运行时动态设置属性的一般格式是:
<对象名>.<属性名> := <属性值> ;
3、() const c := 100 的说明语句是合法的。
4、() 若已在窗体中加入了一个OpenDialog对象,要求在运行时,打开对话框时只显示扩展名为TXT的文件,则对通用对话框的Filter的属性进行设置,设置可以是:'TXT Files|*.TXT'。
5、( ) 在一个项目中可以有一个以上的主窗体。
6、() 在程序运行期间,一个Table对象只能固定和一个关系表相连。
7、() 时钟Timer组件的时间间隔是由Interval属性控制,该属性的单位是秒。
8、() Quick Report 组件用于产生报表,它只有一个组件。
9、() 编辑框edit的ReadOnly属性如果设置为true,在代码中还是可以对text属性赋值。
10、()在Delphi环境中,组件页上的组件是“类”而不是“对象”的概念。
四、程序填空题(40分,每题10分)
1、(10分,每空2分)
本程序由主窗体form1和子窗体form2组成,设计界面如下图所示:
主窗体上建立的对象有Image1、Button1(加载图片)、Button2(退出)、OpenDialog1。
子窗体上建立的对象有Label1、BitBtm1(Yes)、BitBtm2(No)。
单击“打开文件”按钮(Button1),会弹出打开文件对话框。
用户指定一个图像文件后,图像加载到Image1显示区中。
单击“退出”按钮,会弹出确认对话框(Form2)。
如果用户按“Yes”键,程序结束;如果按“No”键,返回主窗体。
下面是Unit1的代码部分,请在下划线处完成程序填空。
--------------------------------------------------------------------------------------------------------------------- implementation
{$R *.dfm}
uses
①;
procedure TForm1.Button1Click(Sender: TObject); //加载图片
begin
if ②then
Image1.Picture.LoadFromFile( ③);
end;
procedure TForm1.Button2Click(Sender: TObject); //退出
begin
if ④= mrYes then
⑤;
end;
end.
---------------------------------------------------------------------------------------------------------------------
2、(10分,每空2分)
本程序设计界面和运行界面如下图所示:
程序的功能是:用户在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为系统函数,其功能为:⑤。
3、(10分,每空2分)
数据库mydb中有关系表student,其结构如下:
student(sno学号,sname姓名,sex性别,birthday生日)
现编写一个学生信息浏览程序,设计界面和运行界面如下图所示:
在下划线处填写相应数据库组件的属性值:
Database1. DatabaseName : mydb
Table1. DatabaseName : mydb
Table1. TableName : student
Table1. Active : ①
Datasource1.DataSet : ②
DBNavigator1. DataSource : ③
DBEdit2. DataSource : ④
DBEdit2. DataField : ⑤
4、(10分,每空2分)
本程序实现一个简单的选课界面。
程序的设计界面和运行界面如下图所示:
该程序涉及到数据库中的两张表:course(课程表)和sc(选课表)。
表结构如下:sc(sno 学号,cno课程号,grade成绩)
course(cno课号,cname课名,quota名额)
其中:sno和cno都是字符型。
在用户界面,操作员选中一门书、输入学号后,按“选课”键,完成选课功能,即在sc表中插入一条选课记录,并将course表中该课程的名额减1。
该界面要实现以下合法性检查:
●当该学生已经选过此课,不能再选。
●当所选课程名额已为0,不能再选。
在Form1上建立的数据库组件对象及连接关系如下:
Database1-Table1(与course表相连)-DataSource1-DBGrid1(显示课程信息)Database1-Table2(与sc表相连,用于插入选课记录)
Database1-Query1
其中为Table1建立了3个永久字段:Table1cno(课程号)、Table1cname(课程名)、Table1quota(名额)。
Query1的SQL语句如下:
select cno
from sc
where sno = :sno and cno = :cno
下面是Unit1的代码实现部分,请完成程序填空:
--------------------------------------------------------------------------------------------------------------------- implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); //“选课”键
begin
query1.Close ;
query1.ParamByName('sno').Value := ①;
query1.ParamByName('cno').Value := ②;
query1.Open ;
if query1['cno'] <> null then
begin
showmessage('已选过此课');
exit ;
end ;
if ③then
begin
showmessage('没有名额');
exit ;
end;
table2. ④( [edit1.Text , table1cno.Value , null] );
table1.Edit ;
table1quota.Value := table1quota.Value - 1 ; //名额减1
table1. ⑤;
end;
end.
---------------------------------------------------------------------------------------------------------------------
五、编程题(10分)
本程序设计界面及运行界面如下图所示。
该程序的功能是:用户在界面上的两个编辑框(Edit1、Edit2)内分别输入两个正整数M和N (M < N),单击“计算”按钮(Button1),程序求出M ~ N 之间所有能被3整除的数,并在Memo 1对象中依次显示。
请编写单击“计算”按钮的事件处理程序。
试题参考答案
一、填空题(20分,每空2分)
1、方法
2、一个入口
3、.pas (或pas)
4、sqr(cos(a+b)) /(3*x)+5 或cos(a+b) * cos(a+b) /(3*x)+5
5、True
6、Items
7、Columns
8、OnTimer 9、MaksEdit 10、Canvas
二、单项选择题(20分,每题2分)
1、D
2、C
3、B
4、C
5、B
6、A
7、D
8、A
9、D 10、C
三、判断题(10分,每题1分)
1、√
2、√
3、╳
4、√
5、╳
6、╳
7、╳
8、╳
9、√10、√
四、程序填空题(40分,每题10分)
1、(10分,每空2分)
①unit2 ②opendialog1.Execute
③opendialog1.FileName ④form2.ShowModal
⑤close
2、(10分,每空2分)
①Text ②do
③sum + i ④sum
⑤判断奇偶性的函数(若输入值为奇数,函数值为真,否则为假)。
3、(10分,每空2分)
①True ②Table1
③DataSource1④DataSource1
⑤sname
4、(10分,每空2分)
①edit1.Text ②table1cno.Value
③table1quota.Value = 0 ④InsertRecord
⑤Post
五、编程题(10分)
procedure TForm1.Button1Click(Sender: TObject);
var
m,n , i : integer;
begin
m := StrToInt(edit1.Text);
n := StrToInt(edit2.Text);
Memo1.Clear;
for i := m to n do
if i MOD 3 = 0 then
memo1.Lines.Add( IntToStr(i) ); end;。