Delphi工程师笔试题
2023-07-06
一、 Delphi基础
1、Delphi 内置类型 string 和 WideString 的区别。
2、简要描述Delphi代码单元中,以下关键字的作用。
interface:
implementation:
initialization:
finalization:
3、将一周七天声明成枚举类型。
4、现有Integer 变量 A、B,在不声明其它变量的情况下,将它们的值交换。
如,A := 1; B := 2; 交换之后 A = 2; B = 1。
5、现有以下类:
type
TBase = class
function GetValue: Integer; virtual;
end;
TChild1 = class(TBase)
function GetValue: Integer; override;
end;
TChild2 = class(TBase)
function GetValue: Integer; override;
end;
function TBase.GetValue: Integer;
begin
Result := 1;
end;
function TChild2.GetValue: Integer;
begin
Result := 2;
Result := inherited GetValue;
end;
function TChild1.GetValue: Integer;
begin
Result := inherited GetValue;
Result := 3;
end;
用以下方法创建对象o1, o2: TBase:
o1 := TChild1.Create;
o2 := TChild2.Create;
那么调用以下方法的返回值是
o1.GetValue返回:
o2.GetValue返回:
6、如何模块内部获得自身路径?
Exe程序:
DLL程序:
7、描述一下TEidt和TListView的类派生顺序,并说明它们的来源区别。
8、用pascal 写一个双向链表。
9、设计模式中的单件模式,在Delphi中可以用什么方式创建。
10、Delphi快捷键
快速搜索添加控件:
打开工程属性对话框:
切换编辑中的代码窗体:
删除一行代码:
二、 Win32基础
1、写出Delphi声明Win32类型的库及其对应的Win32 Dll库(至少3个)。
2、如何在Delphi中完成多线程的内存保护。
三、 数据库
1、现有MS SQL Server 数据库 UserLibs 列举出所有用户表及其字段。
2、现有数据库A,数据库B和A相对应,在数据A中表增加时,或字段增加时,将结构同步到数据库B中,该过程不能损害数据。(上机题)