Borland 基础与应用开发课程认证试题整理集二_Delphi_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > Delphi > Borland 基础与应用开发课程认证试题整理集二

Borland 基础与应用开发课程认证试题整理集二

 2011/7/26 7:56:02    程序员俱乐部  我要评论(0)
  • 摘要:试题31记录变量是静态分配的,在栈中分配,所有的对象都是在堆中分配的。试题32集合类型typeTmyset=setof基类型最多256个元素,基类型为有序类型不但数量<=255且序号都必须0<=X<=255typemyset=setof5..256;不行,setof0..255正确File类型:无类型文件File(按128字节分块)文本文件TextFile试题33typeTnotifyEvent=procedure(sender:Tobject)ofobject
  • 标签:应用 开发 Borland 应用开发
试题31     记录变量是静态分配的,在栈中分配,所有的对象都是在堆中分配的。
试题32     集合类 type Tmyset=set of 基类型   最多256个元素,基类型为有序类型
   
不但数量<=255 且序号都必须0<=X<=255
    type myset=set of 5..256;
不行,set of 0 .. 255 正确
    File
类型:无类型文件 File (128字节分块) 文本文件 TextFile
试题33     type TnotifyEvent=procedure(sender:Tobject) of object;  
    //
类中的过程指针
    type TmyProcedure=procedure(s:string);   //
一般的过程指针
试题34     Type TdateTime=type double;
   
整数部分:表示日期 1表示天数加1
   
小数部分:表示时间 0 表示午夜0点,0.5表示中午12
    1/24
一小时,1/24*60 一分钟 1/24*60*60 一秒钟 以此类推
   
18991230日午夜0 开始计时 0
试题34     数据类型转化
    x mod y=x-(x div y)*y  
求余看被除数的符号
    10 mod 3=1 -10 mod 3=-1 -10 mod –3=-1 10 mod –3=1
试题35     Pascal中的语句知识,考小程序较多
   
语句以分号结束,程序或单元以点句号结束。
试题36     通常函数调用不应当单独构成语句,而应当用作表达式置于赋值语句的右侧。
   
设置工程选项对话框Compiler标签页的Extended Syntax为未选中,
   
可以禁止函数用作语句。同时,也禁止了Result预定义变量的使用。
试题37     注意Begin   End 界定符的用法:end 之前的那条语句可以不用分号
    end
之后如果作为复合语句一般情况下有分号,但也可以没有分号如if else语句
试题38     with 语句的功能:用在记录、类和无名对象中如 with Tbitmap.Create do
   
嵌套的with语句的优先级问题:按照最接近原则处理.结果为Button2.caption变为dddd
    with button2,button1 do
    begin
      caption:='ddd';
    end;
    with button1 do
    begin
      with button2 do
      begin
      caption:='ddddd';    
      end;
    end;
试题39     注释语句:同级不可以嵌套,切记!!
    If xxxx then dosomething
    Else do else;  
上述两句在Delphi中算一条语句
    If xxxx then dosomething ;  
算一条语句,对一条语句的理解
试题40     Case 语句:值表达式必须是有序类型
    case
值表达式 of
      valuei:
语句;//begin end; 复合语句
      else
语句;//begin end; 复合语句     此处else 没有冒号
    end;   //
end 没有 begin
试题41     循环语句for 循环中的循环变量在循环体中不能赋值,且为有序类型
    I:Char;
      for I:=’A’ to ‘Z’ do
   
只能在循环中使用的:continue(再度进入循环)和 break(退出循环);
试题42     exit 退出一段例程,如果为主例程则整个程序退出
    repeat
语句中有必要用begin end结束吗?可以/不可以,应该可以。
      begin
      end;
    until
结束条件为真;
试题43     两种例程:procedure / function
   
声明:相同的连续的形参可以放在一条以逗号隔开的类型声明语句中
   
多个形参用分号隔开。
   
定义:只能在implementation部分
   
调用:调用的时候参数间全部用逗号分隔。
试题44     参数类型5种:值参,变参 var,常参 const,
    in/out COM
应用中:单纯的只()读和只()写,两个可合用
试题45     例程中的缺省参数的使用:注意从后往前缺省,中间不能跳跃
试题46     例程重载(overload)的使用:必须满足一下条件之一
   
参数个数不同;参数类型不同;相同个数情况下某个对应位置类型不同
   
记住:只要参数类型不同即可,返回值不同无效,
   
但是以下可以通过,
    procedure swap(const A,B:Integer);overload;
    begin
    end;
    function swap(const A,B:single):Integer;overload;
    begin
    end;
试题46     作用域问题
   
可见性:变量可以被访问的范围。
   
生命期:变量能在多长时间内保持其值和保持可见性。
试题47     记录与类的区别
   
记录中只能放数据,记录变量是在栈中分配内存,不能自动初始化,
   
所有的数据()不能对外隐藏。
试题48     type my=record
            name:string;   //4
实际 4 地址吗
            age:single;   //4
实际 4
            bs:Boolean;   //4
实际 1
    end;
    //
如果Project Options的编译器中设置了对齐为1个字节则为94-8个字节为12
   
如果使用sizeof(my)则结果为:12
   
如果声明变量 var dd:my 不管有没有赋值; sizeof(dd)则结果都为:12
试题49     类中可以包含数据外,还能包含处理数据的例程即方法,对于数据和方法的可见性的约束。
   
类类型变量(即对象)的存储分配方式为动态分配也不同于记录变量,类中还包括属性成员
试题50     ctrl+shift+c :自动代码完成针对:方法(定义)、属性(Private方法和域的自动添加)
    Ctrl+shift+↑:
回到代码声明处   Ctr+Shift+↓:进入代码定义处
    Ctrl+J:
代码完成         Ctrl+Shift+U 整块左移,Ctrl+Shift+I整块右移
试题51     构造函数功能:实例化和初始化对象
    var bb:Tbitmap; //
此时只是个空指针,还没有创建实例
    begin
      listbox1.Items.Add(inttostr(Integer(bb))); //
指针1
      bb:=TBitmap.Create; //
heap创建对象
      listbox1.Items.Add(inttostr(Integer(bb))); //
指针2
     
指针12不一样,但是大小都是4个字节,用来存放指针。
    End;
试题52     类的Free方法在Tobject中:间接调用了Destroy;
    procedure TObject.Free;
    begin
      if Self <> nil then
            Destroy;
    end;
试题53 TPerson = class
      Name: string;
      BirthDay: TDate;
      Sex: Boolean;
      constructor Create(const N: string; B: TDate; S: Boolean); overload;
      procedure Talk; virtual;
    end;
    procedure TForm1.Button2Click(Sender: TObject);
    var b:Tperson;
    begin
      ListBox1.Clear;
      ListBox1.Items.Add(b.Name);
      if b.Sex then
      ListBox1.Items.Add('
')
      else
      ListBox1.Items.Add('
');
      //
变量b的存储空间大小
      ListBox1.Items.Add(IntToStr(SizeOf(b)));
      //
对象b的实例空间大小
      ListBox1.Items.Add(IntToStr(b.InstanceSize));
      //
变量b所在的存储地址
      ListBox1.Items.Add(IntToStr(LongInt(@b)));
      //
对象b所在的存储地址
      ListBox1.Items.Add(IntToStr(LongInt(b)));
      //
对象b中第一个数据成员的存储地址
      ListBox1.Items.Add(IntToStr(LongInt(@b.Name)));
      //
对象b中第二个数据成员的存储地址
      ListBox1.Items.Add(IntToStr(LongInt(@b.BirthDay)));
      //
对象b中第三个数据成员的存储地址
      ListBox1.Items.Add(IntToStr(LongInt(@b.Sex)));
      b.Free; b:=nil;   //
特别要注意回收内存
    end;
试题54     成员的讨论:重要
   
数据(域)成员:变量。
   
方法成员:前向分类——构造(器)方法、析构(器)方法、一般方法、类方法。
       
类方法:可以通过对象和类引用的方法含构造方法。
   
一般方法:只能通过对象引用
   
方法成员:后向分类——静态方法 尾巴干净的、虚拟方法Virtual
   
动态方法dynamic、抽象方法abstract、覆盖override和重载overload的方法、处理消息的方法message 消息常量。
   
虚拟方法:用空间换时间,较快   动态方法:时间换空间,较慢
   
抽象方法:前缀必须是虚拟方法或动态方法,只需声明不用定义
    Tobject.destroy
是虚拟的
   
属性成员:反映数据(域)的窗口,对数据处理。包括数据属性和事件属性。
试题55     所谓面向对象的语言OOP,就是同时具备抽象性、封装性、继承性和多态性的语言。
试题56     抽象性:建模考虑的问题
   
封装性     private protected public
        private    
除本单元外,完全不可见。C++中的友元问题。
   
注:在Delphi中,对友元概念的支持是通过放置在同一个单元来实现的。
        Protected
除本单元及其子类外,不可见。
        Public
如果类声明在单元接口部分,其它单元只需uses即可见。
        Published
如果是组件,则不仅具有public的可见性,
             
而且在设计期的对象检视器可见。缺省的可见性为published
试题57     编写组件的时候按可见性从小到大排列。
   
在每一种可见性中,先数据(域),后方法,再属性。
试题58     通常:数据(域)放在private部分;属性放在published(组件)
   
发表评论
用户名: 匿名