Tải bản đầy đủ (.pdf) (2 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (195.56 KB, 2 trang )

Nguyễn Lý Hữu Huấn
BỘ GIÁO DỤC VÀ ĐÀO TẠO Họ và tên thí sinh: ……….
ĐẠI HỌC HUẾ Số báo danh: ……….
----------
ĐỀ THI TUYỂN SINH CAO HỌC NĂM 2007
Môn thi: Ngôn ngữ lập trình
(Dành cho Cao học)
Thời gian làm bài: 180 phút
Câu 1: Cho chương trình con sau:
Function F(k, n: byte): longint;
Begin
If (k-0) or (k=n) then F:=1
Else F:=F(k-1, n-1) + F(k, n-1);
End;
a). Tính F(4, 8).
b). Viết lại chương trình con trên bằng phương pháp khử đệ quy.
c). Xác định độ phức tạp tính toán của chương trình con trong câu trên (sử dụng
phương pháp khử đệ quy).
Câu 2: Để quản lý phần Help các tên hàm của một ứng dụng, người ta sử dụng một
danh sách liên kết đơn có nút đầu được trỏ bởi biến con trỏ F (gọi tắt là danh sách F).
Mỗi nút của danh sách F là một bản ghi gồm các trường:
Name: Lưu tên hàm (là trường khóa của danh sách F và được sắp xếp theo thứ
tự tăng dần),
Description: Lưu lời giải thích về cách sử dụng hàm này,
Next: Lưu địa chỉ của nút tiếp theo trong danh sách F,
SeeAlso: Lưu địa chỉ nút đầu của một danh sách khác gồm các hàm có liên
quan đến hàm đó (gọi là danh sách hàm liên quan). Mỗi nút của danh sách hàm
liên quan là một bản ghi gồm các trường:
TenHLQ: Tên của hàm liên quan
Tiep: Lưu địa chỉ của nút tiếp theo trong danh sách hàm liên quan.
Cho khai báo của cấu trúc dữ liệu nói trên như sau:


Type St10 = String[10];
TroHLQ = ^HLQ;
HLQ = Record
TenHLQ: St10;
Tiep: TroHLQ;
End;
TroHam = ^Ham;
Ham = Record
Name: St10;
Nguyễn Lý Hữu Huấn
Description: String;
Next: TroHam;
SeeAlso: TroHLQ;
End;
Var F: TroHam;
a). Viết hàm Addr(F: TroHam; TH: St10): TroHam trả về địa chỉ của nút thuộc
danh sách F có giá trị trường Name là TH, hoặc trả về giá trị nil nếu không có nút nào
thỏa mãn điều kiện này.
b). Sử dụng danh sách F, viết thủ tục Add_SeeAlso(F: TroHam; TH1, TH2: St10)
nhằm bổ sung một tên hàm liên quan mới TH2 vào cuối danh sách hàm liên quan với
hàm TH1, và bổ sung một tên hàm liên quan mới TH1 vào cuối danh sách hàm liên
quan với hàm TH2, với điều kiện các tên hàm TH1 và TH2 là đã có trong danh sách F.
Câu 3: Cho một cây nhị phân T (nút gốc trỏ bởi T) có khai báo như sau:
Type TroNut = ^Nut;
Nut = Record
Muc: Byte; {lưu mức của nút trên cây T}
Left, Right: TroNut; {lưu địa chỉ nút con trái và phải}
End;
Var T: TroNut;
a). Viết thủ tục TinhMuc(T: TroNut) nhằm thay thế giá trị trường Muc của mỗi nút

trên cây T bằng mức tương ứng của nút đó trên cây này.
b). Giả sử giá trị trường Muc của tất cả các nút trên cây T đã được xác định. Viết hàm
DemSoNut(T: TroNut; Level: Byte): Integer cho kết quả là số nút của cây T có giá
trị trường Muc bằng Level.
Câu 4:
a). Viết thủ tục sắp xếp một mảng số nguyên theo kiểu lựa chọn bằng ngôn ngữ lập
trình Pascal.
b). Tại sao thời gian thực hiện của thuật toán sắp xếp lựa chọn độc lập với dữ liệu đang
được sắp xếp?
c). Cho dãy số 4, 3, 8, 22, 1, 5. Khi sử dụng thuật toán sắp xếp lựa chọn, hãy cho biết
kết quả biến đổi của dãy số này sau lần hoán vị đầu tiên.
d). Trong trường hợp nào thì việc sử dụng thuật toán sắp xếp theo kiểu nổi bọt sẽ tốt
hơn thuật toán sắp xếp theo kiểu lựa chọn?

----------------------------------------
Ghi chú: Cán bộ coi thi không giải thích gì thêm.

×