1. Đề 13 1/2
Đề thi tuyển sinh cao học ngành công nghệ thông tin
Môn: Ngôn ngữ lập trình
Thời gian 180 phút - Không được sử dụng tài liệu
Bài 1. Cho dãy số nguyên dương khác nhau từng đôi một A=a1,a2,…,an, n<=100
và hoán vị P = [p1,p2,…,pn] của các số [1,2,…,n]
Hãy viết các chương trình con thực hiện các công việc sau đây:
1. Đọc các dãy số A, P từ bàn phím và kiểm tra tính đúng đắn của dữ liệu nhập
vào.
2. Tạo ra một nội dung mới của dãy A=a[p1],…,a[pn] mà không dùng mảng
phụ nào khác ngoài A và P đã cho.
Ví dụ, với dãy A=8,6,2,1,3,4 và hoán vị P=5,4,6,2,1,3 ta có nội dung mới
của dãy A=3,1,4,6,8,2. Viết hai phương án lặp và đệ quy.
3. Với dãy A đã cho, hãy xác định một hoán vị nào đó P sao cho
a[p1]<=…<=a[pn].
Ví dụ, với dãy A như trên, ta có P=4,3,5,6,2,1 thỏa mãn tính chất trên. Viết
hai phương án đệ quy và lặp.
Bài 2. Khai báo kiểu của một danh sách tuyến tính móc nối và một cây nhị phân
như sau:
Type tro=^ptu;
Ptu=record
Gtri:integer;
Tiep:tro;
End;
Pointer=^nut;
Nut=record
Value:integer;
Trai,phai:pointer;
End;
Var ds:tro;
Goc:point;
Viết các chương trinh con thực hiện các công việc sau đây:
1. Procedure Dungcay(ds:tro; var goc:pointer);
Nhằm xây dựng cây nhị phân tìm kiếm có gốc được trỏ bởi goc trên cơ sở
các phần tử của danh sách ds đã cho. Giả thiết rằng các phần tử của danh
sách có giá trị khác nhau từng đôi một.
Ví dụ, với danh sách các phần tử:
8 3 9 4 1 10
Ta xây dựng được cây nhị phân tìm kiếm như sau:
Trình bày: Trần Hoài Nhân
2. Đề 13 2/2
8
3 9
1 4 10
2. Procedure cay_NP_min(ds:tro;var goc:pointer);
Nhằm xây dựng cây nghị phân tìm kiếm có gốc được trỏ bởi goc, tưng ứng
với một cây hoán vị nào đó của các phân tử trong danh sách ds sao cho độ
cao của cây nhận được là nhỏ nhất.
Bài 3. Trên đĩa có một tệp văn bản (TEXT) có tên là ‘VB.TXT’. Mỗi dòng có độ
dài không quá 80, gồm nhiều từ. Mỗi từ là một dãy liên tiếp các ký tự được phân
cách bằng dấu trắng, dấu phẩy, dấu chấm, dấu chấm phẩy, dấu hai chấm, dấu chấm
than, dấu hỏi, dấu ngoặc đơn đóng và dấu ngoặc đơn mở.
Lập chương trình con thực hiện các công việc sau đây:
1. Đọc các dòng của tệp văn bản.
2. Với mỗi dòng, đếm số từ xuất hiện trong đó và đưa ra màn hình kết quả tính
được.
3. Đưa ra màn hình từ dài nhất trong văn bản.
Trình bày: Trần Hoài Nhân