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Đề 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ố a1, a2,…, an 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ị a1, a2,…, an 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 a1, a2,…, an 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
Trang 2Đề 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