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Đề 01 1/2
Đề thi tuyển sinh Cao học nghành Công nghệ thông tin
Năm học 1999-2000 Môn thi: Ngôn ngữ lập trình
Thời gian 180’ - Không được sử dụng tài liệu
Bài 1 Người ta viết một chương trình để tính giai thừa của một số nguyên không
âm như sau:
Program giaithua(input,output)
Labe
Type so = 0 maxint;
l 1999;
Var x,y:so;
Procedure factorial(var n,f:interger);
Var k:so;
begin
K:=0; f:=1;
While k<>n do
begin
K:
ef (f > (maxint div k)) then goto 1999
=k+1;
else f:=f*k;
end;
end;
BEGIN
X:=4;
Factorial(x,y);
writeln(y);
Factorial(y,y);
writeln(y);
1999; writeln(‘ket thuc’);
END
a Hãy cho biết kết quả đưa ra từ các lệnh in và giải thích
b Kết quả trên có điều không bình thường Hãy giải thích lý do Chữa lại chương trình để in ra đúng giá trị 4! Và (4!)! như mong muốn
Bài 2 Cho một tập các cặp số nguyên S ={(a1,b1),(a2,b2),…,(an,bn)} Ta nói dãy
D bào gồm các cặp giá trị của S là dãy Domino nếu:
• Trong D không có cặp nào xuất hiện 2 lần
• Đối với mọi cặp giá trị liên tiếp nhau trong dãy D, giá trị thứ 2 của cặp đứng trước luôn bằng giá trị thứ nhất của cặp đứng sau
• Không có dãy D nào thoả mãn hai tính chất trên chứa D như một phần con Chẳng hạn, trong tập {(3,1),(6,1),(4,3),(2,6),(9,4),(4,0),(6,2),(8,7)} có dãy Domino {(2,6),(6,1)} và {(9,4),(4,3),(3,1)}
Hãy lập các chương trình con thực hiện các công việc sau:
1 Đọc tập n cặp số nguyên từ tệp văn bản có tên DL.TXT được tổ chức theo
quy cách:
Trình bày: Trần Hoài Nhân
Trang 2Đề 01 2/2
• Dòng đầu tiên chứa số n
• N dòng tiếp theo, mỗi dòng chứa một cặp số ai, bi
Và lưu vào một cấu trúc A nào đó
2 Xác định một dãy Domino nào đó từ tập A đã cho
3 Xác định dãy Domino có số cặp giá trị lớn nhất có thể được
Bài 3 Cho khai báo của một cây nhị phân như sau:
Type tro=^nut;
Nut = record
Gtri:integer;
Trai,phai:tro;
end;
Var goc:tro;
Hãy lập các chương trình con thực hiện các công việc sau:
1 Hàm Function CayTK(Goc:tro):boolean; cho phép kiểm tra xem cây
có gốc được trỏ bởi goc có phải là cây nhị phân tìm kiếm hay không
Chú ý: Cây rỗng cũng được coi là cây tìm kiếm Viết theo hai phương pháp
đệ quy và không đệ quy
2 Trường hợp cây ban đầu không phải là cây tìm kiếm, hãy viết thủ tục
Procedure saplai(goc:tro); Cho phép tráo đổi nội dung của các nút trong cây, nhưng không thay đổi cấu trúc cây, để nhận được cây nhị phân tìm kiếm
Chẳng hạn, với cây ở trên hình 1, sau khi tráo đổi ta nhận được cây tìm kiếm như ở hình 2
8
9
4
7
Trình bày: Trần Hoài Nhân