1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đề thi tuyển sinh Cao học và nghiên cứu sinh môn Ngôn ngữ lập trình 2005 - đáp án

4 476 3
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đề thi tuyển sinh cao học môn ngôn ngữ lập trình
Tác giả Nguyễn Lỷ Hữu Huấn
Trường học Trường Đại Học Huế
Chuyên ngành Ngôn ngữ lập trình
Thể loại Đáp án
Năm xuất bản 2005
Thành phố Huế
Định dạng
Số trang 4
Dung lượng 178,7 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tổng hợp : Đề thi và đề cương tuyển sinh Cao học và nghiên cứu sinh môn Ngôn ngữ lập trình từ năm 1993-2007

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

PAI HOC HUE

KY THI TUYEN SINH SAU DAI HOC NAM 2005

Dap an dé thi tuyén sinh Cao hoc Môn thi: Ngôn ngữ lập trình

Cau 1: 1,5 đ

Két qua in ra trén man hinh:

8 4 10 5 9

8 4 5 10 9

8 4 5 9 10

4 8 5 9 10

4 5 8 9 10

* Dong 1: 0,5 a

* Dong 2-3: 0,5 a

* Dong 4-5: 0,5 d

Cau 2: 4,0 d

a) 1,0 đ

Function Addr(FirstS: TroMH; BMaMH: Integer): TroMH;

Begin

If FirstS=nil then Addr:=nil

else if FirstS’.MaMH=BMaMH then Addr:=FirstS

else Addr:=Addr(FirstS*.next, BMaMH);

End;

* Xử lý trường hợp để có Addr=nil: 0,5 d

* Xử lý trường hợp để có Addr< >mil: 0,5 đ

b) 3,0 d

Procedure ListOfSubjects(FirstT: TroGV; BMaGV: St8); (1,5 d)

Procedure LOS(F: TroM);

var _ stt: integer; p: TroMH;

Begin If F<>nil then

begin stt:=1; writeln¢STT’:5, ‘Ten mon hoc’:30, ‘So DVHT”’:10);

while F<>nil do

begin p:=Addr(FirstS, F*’.MaM);

writeln(stt:5, p®.TenMH:30, p*.SoDVHT:10);

F:=F”.Tiep; stt:=stt+1;

end;

end;

End;

Trang 2

Begin If (FirstT<>nil)and(FirstT*.MaGV<=BMaGV) then

If FirstT”’.MaGV=BMaGV then LOS(FirstT*.DSM) else ListOfSubjects(FirstT’ Down, BMaGV);

End;

* Định vị đến nút giáo viên cần tìm (có sử dụng danh sách tăng dần): 0,5 đ

* Duyệt danh sách mã môn học: 0,3 đ

* Jn theo mẫu: 0,5 đ

Procedure ListOfTeachers(FirstT: TroGV; BMaM: Integer); (1,5 đ)

var stt: integer;

Procedure LOT(F: TroGV; BMaM: Integer);

Procedure Find_and_Print(P: TroM; BMaM: Integer);

Begin If P<>nil then

if P’.MaM=BMaM then begin writeln(stt:5, F’.HoTenGV:30); stt:= stt+1;

end else Find and Print(P^.Tiep, BMaM);

End;

Begin If F<>nil then

begin Find_and_Print(F* DSM, BMaM);

LOT(F^.down, BMaM);

end;

End;

Begin If FirstT<>nil then

begin stt:=1; writeln“STT’:5, ‘Ho ten giao vien’:30);

LOT(FirstT, BMaM);

end;

End;

* Duyệt mọi múi giáo viên: 0,5 a

*Jm theo mẫu: 1,0 đ

Cau 3: 4,5 d

a) 1,5 đ

Function Muc(Top, p: TroNutIrenCay):Word ;

Function Cha(Top, p: TroNutTrenCay):TroNutTrenCay;

Begin If (Top=nil)or(Top=p) then Cha:=nil

else If (Top*.Left=p) or (Top*.Right=p) then Cha:=Top

else if Cha(Top”’.Left, p)<>nil then Cha:=Cha(Top”%.Left, p)

else Cha:= Cha(Top”.Right, p);

End;

Trang 3

Begin If Top=nil then Muc:=0

else Ifp=Top then Muc:=1

else Muc:=Muc(Top, Cha(Top, p))+1;

End;

* Xác định địa chi nut cha cua p: + 0,5 d (truoéng hop cha=nil)

+ 0,5 d (truong hop cha<>nil)

* Từ đó xác định mức của nút p: 0,3 đ

b) 2,0 d

Procedure InsertQueue(var First, Last: TroNutTrenDS; X: TroNutTrenCay); (1,0 d)

var p: TroNutTrenDS;

Begin new(p); p*.Info:=X; p*.next:=nil;

If First=nil then begin First:=p; Last:=p; end

Else begin Last“.next:=p; Last:=p; end;

End;

* Xứ lý trưởng hợp First = nil: 0,5 d

* Xứ lý truong hop First <> nil: 0,5 d

Procedure DeleteQueue(var First, Last: TroNutTrenDS; var X: TroNutTrenCay); (1,0 d) var p: TroNutTrenDSs;

Begin

If First=nil then write(‘Khong xoa duoc’)

Else If First=Last then

begin X:=First’.Info;dispose(First); First:=nil; Last:=nil; end Else

begin p:=First; X:=pˆ.Info; First:=pˆ^.next; dispose(p); end;

End;

* Xứ lý truong hop First = nil va First=Last: 0,5 a

* Xứ lý trưởng hợp còn lại: 0,5 d

c) 1,0 đ (không chia nhỏ)

Procedure Lietke(Top: TroNutTrenCay);

var First, Last: TroNutTrenDS; X: TroNutTrenCay;

Begin If Top<>nil then

begin First:=nil; Last:=nil;

InsertQueue(First, Last, Top); writeln(Top” Value);

Repeat

DeleteQueue(First, Last, X);

If X*.Left<>nil then begin InsertQueue(First, Last, X”*.Left);

writeln(X”.Left® Value);

end;

Trang 4

If X*.Right<>nil then begin InsertQueue(First, Last, X^.Right);

writeln(X”.Right® Value);

end;

Until First=nil;

end;

End;

Ngày đăng: 02/11/2012, 15:37

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm