Đề 03
1/2
Đề thi tuyển sinh Cao học nghành Công nghệ thông tin
Năm học 1998-1999
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. Cho một tệp văn bản ở trên đĩa với tên là “BK.TXT”, trong đó có chứa các
từ. Các dấu phân cách từ là dấu trắng, dấu phẩy, dấu chấm phẩy, dấu hai chấm, dấu
chấm than, dấu chấm hỏi.
Một từ là dãy liên tếp các chữ cái viết thường, viết hoa. Lập chương trình con
thực hiện các công việc sau:
1. Đọc các từ trong tệp văn bản đã cho.
2. Giả thiết rằng có một danh sách các từ khoá được cho trong mảng có khai
báo như sau:
Var tukhoa:array[1..50]of string[5];
Xác định tần
xuất xuất hiện của các từ khoá trong tệp văn bản và in ra màn hình theo quy
tắc: 5 từ trên một dòng, mỗi từ kèm theo số lần xuất hiện của nó theo thứ tự
giảm dần.
Bài 2. Khai báo kiểu của một danh sách tuyến tính móc nối như sau:
Type Tro=^nut;
Nut= record
Gtri:integer;
Ti
end;
ep:tro;
Var ds:tro;
Viết chương trình con thực hiện các công việc sau:
1.
Function dxung(ds:tro):boolean;
Nhằm kiểm tra danh sách ds có phải là đối xứng hay không? Viết hai
phương án: Lặp và đệ qui.
Ví dụ:
- Các danh sách sau là đối xứng:
Ds1: 14 -808 7 -808 14
Ds2: -104 7 7 -104
- Các danh sách sau là không đối xứng:
Ds3: 14 8 … 9 14
2.
Function kha_dx(ds:tro):boolean;
Nhằm kiểm tra xem đối với danh sách ds đã cho, có tồn tại một cách sắp xếp
lại các phần tử để cuối cùng nhận được một danh sách đối xứng hay không?
3.
Procedure saplai(ds:tro);
Nhằm đưa ra một cách sắp xếp lại các phần tử để có một danh sách đối xứng
(giả thiết rằng điều này có thể làm được nhờ hàm kha_dx(…)).
Bài 3. Người ta xây dựng dần dãy Kanto vô hạn K = k
0
, k
1
, k
2
, k
3
, … như sau:
- Ban đầu ta viết dãy con chỉ gồm một ký tự a, W
o
= a.
Trình bày: Trần Hoài Nhân
Đề 03
2/2
- Ở mỗi bước i tiếp theo, dãy con W
i
được tạo lập bằng cách thay đồng thời
trong dãy W
i-1
mọi xuất hiện của a bởi dãy kí hiệu a,b,a và mọi xuất hiện của b bởi
dãy kí hiệu b,b,b.
Ví dụ:
W
o
= a
W
1
= a,b,a
W
2
= a,b,a,b,b,b,a,b,a
Viết chương trình con thực hiện công việc sau đây:
Function xdinh(n:interger):char;
Nhằm xác định giá trị của phần tử k
n
trong dãy Kanto K.
Ví dụ:
với: n=0 k=a
n=4 k=b
n=9 k=b
n=18 k=a
Viết hai phương án: Đệ quy và lặp.
Trình bày: Trần Hoài Nhân