Đề 11
1/2
Đề thi tuyển sinh Cao học 1997
Môn: Tin học
Thời gian: 120 phút – Không được sử dụng tài liệu.
Bài 1. Xét dãy số a
1
, a
2
,…, a
n
với 0 < n ≤ 100.
Hãy viết các chương trình con thực hiện các công việc sau:
1. Đọc các giá trị a
1
, a
2
,…, a
n
từ bàn phím và kiểm tra dãy nhận được có phải
và một hoán vị của {1,2,…,n} hay không?
2. Phân chia dãy a
1
, a
2
,…, a
n
thành các dãy con tăng dần có độ dài cực đại. Hãy
viết theo 2 phương án đệ qui và không đệ qui. Chẳng hạn, với n = 6 và dãy
3, 2, 4, 1, 6, 5 ta chia thành các dãy con {3} {2,4} {1,6} {5}.
Bài 2. Cho chương trình
Program Thumotty;
Var y,a,b:integer;
Function h1(y:integer):integer;
Begin
Y:=y+3;
H1:=y-1;
End;
Function h2(var y:integer):integer;
Begin
Y:=y-3;
H2:=y+1;
End;
BEGIN
Y:=6;
A:=y*h1(y)+h2(y);
writeln(y);
writeln(a);
B:=y*(h2(y)+h1(y));
writeln(y);
writeln(b);
END.
Các kết quả được in ra trong chương trinh là bao nhiêu? Giải thích?
Bài 3. Kết quả thi đại học của một lớp được lưu lại trong một danh sách tuyến tính
móc nối với các nút được khai báo như sau:
Type tro=^nut
Nut=record
Sohieu:integer;
Ten:alpha;
Toan,ly,hoa:real;
Tiep:tro;
End;
Trình bày: Trần Hoài Nhân
Đề 11
2/2
Đầu của danh sách được trỏ bởi biến dau
Var dau:tro;
Hãy viết các chường trình con:
1.
Procedure Nhap(var dau:tro; sh:integer; name:alpha;
t,l,h:real);
Cho phép nhập số hiệu sh, tên của học sinh name, và các điểm toán, lý, hóa
được cho bởi t, l, h tương ứng với một nút mới sẽ đặt ở cuối danh sách của
lớp được nhớ bởi con trỏ Dau.
2.
Procedure ketqua(dchuan:real; dau:tro; var do, truot:tro);
Cho phép thông báo dánh sách học sinh đỗ (có tổng các điểm toán, lý, hóa
lớn hơn hoặc bằng điểm chuẩn dchuan), danh sách này được trỏ bới con trỏ
do và danh sách các học sinh bị trượt, được trỏ bởi truot.
Yếu cầu: Không chép lại các phần tử của danh sánh lớp học sinh sang một
vùng nhớ ngoài danh sách đã cho.
Trình bày: Trần Hoài Nhân