面试试题。
程序阅读:
异常处理:
var
I: Integer;
begin
I := 100;
try
I := I + 10;
try
I := I + 20;
I := I div 0; //抛出异常
I := I + 30;
finally
I := I + 40;
end;
except
I := I + 50;
end;
I := I + 60;
Edit1.Text := IntToStr(I);
end;
以上代码执行后,Edit.Text=________
面向对象(覆盖与改写(override))
TClass1 = class(TObject)
private
FIntProp: Integer;
protected
public
procedure Add1; virtual;
procedure Add2;
property IntProp: Integer read FIntProp write FIntProp;
end;
TClass2 = class(TClass1)
private
protected
public
procedure Add1; override;
procedure Add2;
end;
procedure TClass1.Add1;
begin
FIntProp:= FIntProp + 1;
end;
procedure TClass1.Add2;
begin
Add1;
FIntProp:= FIntProp + 3;
end;
procedure TClass2.Add1;
begin
inherited Add1;
FIntProp:= FIntProp + 5;
end;
procedure TClass2.Add2;
begin
inherited Add2;
FIntProp:= FIntProp + 7;
end;
var
AObject: TClass1;
begin
AObject:= TClass2.Create;
try
AObject.IntProp:= 0;
AObject.Add1;
AObject.Add2;
Edit1.Text := IntToStr(AObject.IntProp);
finally
AObject.Free;
end;
end;
以上代码执行后,Edit.Text=___________
程序逻辑:
完成程序并写出程序的功能
type
IntegerArray = array of Integer;
function BinarySearch(AArrInt: IntegerArray; const AInt: Integer): Integer;
var
left, right, middle: Integer;
begin
result := -1;
left := Low(AArrInt);
right := High(AArrInt);
while (______________) do 答案为:___________
begin
middle := (left + right) __________; 答案为: ___________
if (AInt = AArrInt[middle]) then
begin
Result := middle;
________; 答案为: ___________
end;
if (_____________) then 答案为: ___________
left := middle + 1
else
right := middle - 1;
end;
end;
程序设计:
写出些你认为重要的编程时的一句话原则
写一个最简单的递归调用函数
写一个快速清除字符串中空格的函数
//以下为知识与交流部分,请准备一下
WIN32基础:
就以下内容选择一个你比较熟悉的进行讲解:
进程/线程
内存管理
异常处理机制
程序调试机制
DELPHI:
就以下内容选择两个你比较熟悉的进行讲解:
IS操作实现方法
内存管理器
事件机制
运行时FORM的重建过程
虚拟方法与动态方法的差别以及原因
重载(overLoad