Đề 15
1/2
Đề thi tuyển cao học 1995
Môn thi: Lập trình
(180 phút) Bài 1. Cho chương trình sau:
Program Print(input,output);
Var i:integer;
T:arra 1..2
Procedure p(var x,y:interger);
y[ ]of interger;
Begin
{3}X:=x+1;
{4}Y:=y+1;
{5}Write(x,y);
{6}End;
Begin
{1}i:=1;T[1]:=2;T[2]:=0;
{2}P(i,T[T[i]]);
{7}witeln(i,T[1],T[2]);
{8}End.
Cho biết kết quả in ra từ chương trình trên. Chỉ rõ giá trị của các biến và các
tham số, qua mỗi bước theo vết thực hiện {1,2,3,4,5,6,7,8}
Bài 2. Cho hàm:
Function M(n:integer):integer;
Begin
If n>100 then M:=n-100
Dong:str80;
Sau:tro;
End;
Var dau,cuoi:tro; {đều bằng NIL khi văn bản là rỗng}
a. Viết một thủ tục dưới dạng:
Procedure XenTruoc(var d:tro;p:tro;s:str80);
Cho phép xen một dòng mới với nội dung cho bởi s vào trước phần tử trỏ
bởi p trong danh sách có đầu d.
b. Gọi Bloc(db,cb) là một khối liền nhau các dòng kể từ dòng trỏ bới db đến
dòng trỏ bởi cb. Hãy viết một thủ tục dưới dạng:
Procedure chuyenBl(var d,c:tro; db,cb,noiden:tro);
Cho phép chuyển dời Bloc(db,cb) tới trước dòng trỏ bởi noiden trong
danhsach(d,c), giả sử noiden không ở trong Bloc.
c. Viết một thủ tục:
Procedure chepBl(var d:tro; db,cb,noiden:tro);
Cho phép chép (mà không hủy) một Bloc(bd,cb) tới trước dòng trỏ bởi
noiden trong danh sách có đầu d. Giải sử noiden không ở trong Bloc.
Trình bày: Trần Hoài Nhân