delphi考试试题

  • 格式:doc
  • 大小:130.00 KB
  • 文档页数:16

1、简述面向对象技术中“类”与“对象”的概念。

结合Delphi中使用的组件,举例说明什么是类、什么是对象。

类是对象的抽象及描述,它是具有统一属性和方法的一类对象的统一描述体,是用来定义某类对象共有属性和方法的模板。

而对象是类的实例。

在Delphi环境中,组件板上的组件就是类的概念,例如按钮组件就是按钮类。

而用户在窗体上创建的一个按钮就是对象的概念(按钮对象)。

用户可以在窗体上用按钮类创建若干个按钮对象,它们都是按钮类的实例。

2、在Delphi中,什么是对象的属性、方法和事件?一个对象是由属性、方法和事件所组成。

属性表示对象中的数据,方法是对象能够执行的动作,事件是能够引起对象反应的条件。

3、简述利用Delphi开发一个项目的基本步骤。

●建立一个新的项目●建立窗体●在窗体上加入对象●检查和设定对象属性●编写对象的事件处理程序●编译、试运行,并进行代码调试保存项目文件,退出Delphi 环境4、在一个单元中,全局变量和局部变量的含义是什么?说明在单元文件中如何定义这两种变量(可举例说明)。

局部变量只能在定义它的程序块中使用,且其生命周期也只存在于从程序块开始执行到程序块执行结束。

在一个事件处理程序中的变量说明部分,能够定义一个局部变量,供该事件处理程序内部使用。

而全局变量可以在单元中的各程序块中使用(共享),且生命周期存在于整个单元代码的活动期中。

在Implementation保留字后(但不要在程序块里)定义的变量就是全局变量。

选择题1、下列哪些条目可作为Delphi的变量名,哪些不行,并说明原因。

abc 123 abc123 123abc file a!合法的变量名是:abc abc123选择题7、如果想查看showmessage过程的帮助信息,请你说出两种获取帮助信息的方式。

①通过主菜单Help的Delphi Help命令调出帮助主页面,在“索引”页输入框中输入要查找的showmessage单词,即可找出相关的帮助信息。

②在代码中如果调用了showmessage过程,可将光标置于该单词中,然后按F1键,即可找出该过程的帮助信息。

选择题2、一个项目由一组文件组成。

其中一些主要文件的后缀有:.dpr .pas .dfm .dcu .~dpr .~pas .~dfm 等请说出这些文件的中文名称及用途。

答:.dpr 项目文件,存放项目的主程序.pas 单元文件,存放源代码,如事件处理程序等。

.dfm 窗体文件,数据文件,记录窗体上的数据信息(如组件位置等).dcu 目标文件,保存.pas编译后得到的结果。

.~dpr .~pas .~dfm 是备份文件,便于用户恢复到较早的一个项目版本选择题3、用于摆放其他组件的组件可以称之为“容器组件”。

除窗体组件外,请你再说出一个容器组件的名字。

答:Panel 或GroupBox选择题4、简述Edit组件下面几个事件的引发条件:OnChange OnClick OnEnter OnExit OnKeyPress答:OnChange 当编辑框中内容改变时引发该事件OnClick :当鼠标单击编辑框时引发该事件OnEnter :当光标进入编辑框时引发该事件OnExit :当光标离开编辑框时引发该事件OnKeyPress :当在编辑框中输入文本时,每次按键都会引发该事件编程题1、开发用户界面如下图所示的应用程序:功能说明:该界面是一个教师信息录入界面。

用户在编辑框(Edit1)中输入姓名,利用单选按钮(RadioGroup1)指定性别,利用组合框(ComboBox1)选择或直接输入所在系,利用列表框(ListBox1)指定职称。

当输入完上述信息后,单击“确定”按钮,教师信息将显示在右边的Memo1编辑窗口中。

提示:在组合框和列表框中可以预置少量测试数据。

答案:通过RadioGroup1的Items属性设置两个单选按钮(“男”和“女”),并将属性Column 设置为2(按钮摆两列)。

通过ComboBox1的Items属性设置下拉选单中的系名。

通过ListBox1的Items属性设置列表框中的职称列表。

“确定”按钮的单击事件处理程序如下:procedure TForm1.Button1Click(Sender: TObject);beginmemo1.Lines.Add(edit1.Text);if radiogroup1.ItemIndex = 0 thenmemo1.Lines.Add('男')elsememo1.Lines.Add('女') ;memo1.Lines.Add(combobox1.Text);memo1.Lines.Add( listbox1.Items[listbox1.itemindex] );end;编程题2、开发一个简单的编辑器,设计界面如下图所示:该编辑器功能要求如下:●编辑窗口使用Memo组件实现,并为其设置垂直滚动条。

●单击“打开文件”按钮,弹出打开文件对话框,用户指定要打开的文件后(限于纯本文件),文件内容加载到编辑窗口中。

●单击“保存文件”按钮,弹出保存文件对话框,用户指定要保存的文件名后,编辑区的内容保存到指定文件中,然后清空编辑区。

●单击“复制”按钮,编辑区中被选择的内容拷贝到剪贴板。

●单击“剪切”按钮,编辑区中被选择的内容剪切到剪贴板。

●单击“粘贴”按钮,剪贴板中的内容拷贝到编辑区当前光标处。

答案:建立的组件有:memo1、opendialog1、savedialog1、button1~5编码如下:procedure TForm1.Button1Click(Sender: TObject); //打开文件beginif opendialog1.Execute thenmemo1.Lines.LoadFromFile(opendialog1.FileName) ;end;procedure TForm1.Button2Click(Sender: TObject); //保存文件beginif savedialog1.Execute thenbeginmemo1.Lines.SaveToFile(savedialog1.FileName) ;memo1.Clear ;end ;end;procedure TForm1.Button3Click(Sender: TObject); //复制beginmemo1.CopyToClipboard ;end;procedure TForm1.Button4Click(Sender: TObject); //剪切beginmemo1.CutToClipboard ;end;procedure TForm1.Button5Click(Sender: TObject); //粘贴beginmemo1.PasteFromClipboard ;end;编程题3、编写界面如下图所示的“系-学生主从查询”应用程序。

两个按钮可以控制系记录的浏览,而学生信息总是显示当前系的学生记录。

提示:系学生数要动态计算。

答案:procedure TForm1.Table1AfterScroll(DataSet: TDataSet);beginquery1.Close ; //根据当前系计算学生数query1.ParamByName('dno').Value :=table1['dno'] ;query1.Open ;query2.Close ; //根据当前系显示学生记录query2.ParamByName('dno').Value :=table1['dno'] ;query2.Open ;end;procedure TForm1.Button1Click(Sender: TObject); //上一记录begintable1.Prior ;end;procedure TForm1.Button2Click(Sender: TObject); //下一记录begintable1.Next ;end;一. 选择题(共40道)1. 用户开发程序时需要经常在窗体和编辑器窗口之间来回切换,可使用快捷键(A)。

A、F12和F11B、F12和F13C、F12和Ctrl+F12D、F12和Alt+F12E、F12和Shift+F122. 某函数如下:Function check(n,k:Integer):Integer;Var m:Integer;BeginRepeatm:=n mod 10;n:=n div 10;K:=k-1Until k=0;Check:=mEnd;若调用语句y:=check(3725,3),运行后y值为:(A)A、7B、5C、2D、03. 以下那个组件不可以由用户输入编辑文本(D)A、TEditB、TcomboBoxC、TMaskEditD、TlabelE、TStringGrid4. 一个对象类可以继承和直接使用它的父类的所有成员,除了:(E)A、public域B、private域C、protected域和private域D、protected域和方法E、private域和方法5. Delph没有用到的文件类型有(A)。

A、.frmB、.pasC、.dfmD、.dprE、.res6. Shape组件位于(B)组件板上。

A、standardB、additionalC、data controlsD、systemE、samples7. Query组件没有Table组件那样的(B )属性。

A、DataSourceB、TableNameC、FilteredD、DatabaseE、UpdateObject8. 下面关于属性的论述正确的是(C)。

A、属性能实现write方法B、属性能实现read方法C、属性可以只读或只写D、属性可以公开或非公开E、属性不能直接存取9. 调试程序时,需要执行执行点所在的源代码行,并停留在下一个源代码行。

可通过(C)菜单项进行。

A、RunB、Step OverC、Trace IntoD、Trace To Next Source LineE、Run to Cursor10. 设a是布尔变量,其它是整型变量,下面正确的赋值语句是(C )A、x=y div 7B、x:=y:=z+1C、a:=x=y mod zD、x+y:=zE、x+y=a11. 表达式round(4.2) mod trunc(2.8)的值是(A )A、0B、1C、2D、3E、412. 下列常量定义合法的是(A )A、CONST width=7;B、CONST case='7';C、CONST 1A=7.9;D、CONST century=year div 100;E、CONST 5<>7;13. 以下运算符中运算优先级最高的是()A、+B、ORC、>=D、DIVE、-14. 已知a、b、c、d是同类型的简单变量,而且已有互不相同的值,执行下列语句:b:=a; a:=c; d:=a; d:=b; 后,其值相等的变量是(A)A、a,cB、a,dC、c,bD、b,aE、无法确定15. 已知有说明Var x:real;下列程序段中的错误为:(B )case x<=2.0 of0:x:=0;1:x:=1endA、case表达式中有常数B、case常量和case表达式类型不一样C、赋值语句两边类型不一致D、case表达式为关系表达式E、case语法不规范16. 以下语句的循环执行次数是(B )x:=37; y:=3while y<=x do y:=y+yA、3B、4C、5D、6E、017. 程序For I:=1 to 5 dofor j:=2 to I dowriteln('*');输出的'*'个数为(B )A、5B、10C、15D、25E、3018. 下列函数头合法的是(D)A、function total(x:real);B、procedure ab(a,b:real):real;C、procedure sum;D、function f(var f:real):integer;E、procedure FontListBoxKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState;);19. 已知函数如下:function f(n:integer):integer;beginif n=0 then f:=0else if n>0 then f:=f(n-2)else f:=f(n+3)end;则调用f(5)的值是( A)A、0B、1C、-1D、-2E、220. 下列类型中合法的是(A )A、TYPE a=10..10;B、TYPE b=10..5;C、TYPE c=0..SQRT(10);D、TYPE d=10.0..20.0;E、TYPE e=random(9)..121. 下列类型的变量中,不能用write语言直接输出的变量是()A、布尔型变量B、枚举型变量C、整型变量D、字符型变量E、长整型变量22. 假定y是集合变量,变量x的类型与y的基类型相同,则下列表达式错误的是( )A、[x] in yB、y-[x]C、[x]+[ ]*yD、y<=[x]E、y mod [x]23. 一个记录的域标识符不能和下列内容相同的是()A、常量的标识符B、记录名C、类名D、同层的域标识符E、不同层的域标识符24. 已知Var a:array['a'..'e',1..4,boolean] of real;则数组a中包含的元素的个数为()A、5B、20C、40D、11E、2225. 已知Var a:array[1..10] of integer;k,I:integer;程序段:k:=1;for I:=1 to 10 doif a[I]>a[k] thenk:=I;writeln(a[k]);执行后输出的是(B )A、数组中的平均值B、数组中的最大值C、数组中的最小值D、数组中的总和E、无法确定26. 已知Var f:file of integer;则f所代表的文件是(D )A、ASCII码文件B、二进制文件C、文本文件D、存放整数的文本文件E、HTML文件27. 在VCL中(A )是TDBListBox的父类A、TCustomListBoxB、TListBoxC、TDBDatasetD、TDatabaseE、TDBEdit28. 为让控件显示弹出式提示框文字,需用到控件的(B)属性A、HandleB、HintC、ShowHintD、ShowingE、Visible29. 发生在鼠标左键单击控件时的事件是(C)A、OnMouseDownB、OnMouseUpC、OnClickD、OnDbClickE、OnEnter30. 下列值中不是FormStyle属性的可能值的是(B )A、fsNormalB、fsMIDChildC、fsMIDFormD、fsStayOnTopE、fsDeskTop31. ()是Delphi包含的文件管理子例程A、Append和insertB、Append和MkDirC、FileClose和insertD、MkDir和insertE、GetDir和insert32. ( )是与DDE有关的组件A、DdeServerConv/DdeClientConv/DdeServerItem/DdeClientItemB、DdeServer/DdeClientC、DdeConv/DdeItemD、DdeConv/DdeServerItemE、DdeServer/DdeClient/DdeServerItem/DdeClientItem33. 使用Delphi多线程的优点是(A)A、程序运行速度加快B、不需要考虑同步访问共享资源与内存C、程序编写更简单D、可以在后台运行线程E、不会是Windows出错34. 有多种方法可以在OLE文档接收器中放置对象,但不包括(A)A、使用特定的菜单命令嵌入对象B、从剪贴板粘贴对象,来建立新嵌入对象C、从剪贴板粘贴-链接对象,来建立新嵌入对象D、由服务器生成的文件中建立新对象。