Đề thi tuyển sinh Cao học và nghiên cứu sinh môn Ngôn ngữ lập trình 2005

3 420 0
Đề thi tuyển sinh Cao học và nghiên cứu sinh môn Ngôn ngữ lập trình 2005

Đang tải... (xem toàn văn)

Thông tin tài liệu

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

1/3 BỘ GIÁO DỤC & ĐÀO TẠO Họ tên thí sinh: ĐẠI HỌC HUẾ Số báo danh: KỲ THI TUYỂN SINH SAU ĐẠI HỌC NĂM 2005 Môn thi: Ngôn ngữ lập trình (Dành cho cao học) Thời gian làm: 180 phút Câu 1. Cho danh sách liên kết đơn mà nút đầu trỏ bởi biến con trỏ First (gọi tắt là danh sách First) có khai báo như trong chương trình chính: TYPE TroNut=^Nut; Nut=Record Info:Integer; Next:TroNut; End; Var First:TroNut; Giả sử, giá trị trường Info của các nút thuộc danh sách First lần lượt là: 8, 4, 10, 9, 5. Hãy cho biết kết quả in ra màn hình khi máy thực hiện lời gọi chương trinh con: Sort(First) biết rằng thủ tục Sort có nội dung như sau: Procedure Sort(F:TroNut); Var tam:integer; Procedure List(F:TroNut); Begin if F<>nil then begin write(F^.info:5);List(F^.Next); end; End; BEGIN If (F<>nil)and(F^.Next<>nil) then Begin Sort(F^.Next); If F^.info > F^.Next^.info then Begin Tam:=F^.info; F^.info:=F^.Next^.info; F^.next^.info:=tam; List(First); writeln; Sort(F^.Next); End; End; END; Câu 2. Thông tin về các môn học được đào tạo tại một khoa của một trường Đại học có thể được lưu trữ trong một danh sách liên kết đơn vời nút đầu được trỏ bởi FirstS có khai báo như sau ở chương trình chính: Type st30=String[30]; TroMH=^NutMH; Trình bày: Trần Hoài Nhân 2/3 NutMH=record MaMH:integer; {Mã môn học: trường khóa} TenMH:St30; {Tên môn học} SoDVHT:byte; {Số đơn vị học trình} Ne end; xt:TroMH; {Địa chỉ nút tiếp theo trong danh sách} Var FirstS:TroMH; a. Viết hàm Function Addr(First: TroMH; BMaMH:integer):TroMH; trả về địa chỉ của nút thuộc danh sách FirstS có mã môn học là BMaMH, hoặc trả về giá trị NIL nếu không có nút nào có mã môn học là BMaMH. b. Để quản lý các môn học được phân công giảng dạy của mỗi giáo viên, người ta lại sử dụng một danh sách liên kết đơn (gọi là danh sách giáo viên) với nút đầu được trỏ bởi con trỏ FirstT. Mỗi nút của danh sách giáo viên là một bản ghi gồm 4 trường: trường MaGV để lưu mã giáo viên (là trường khóa), trường HoTenGV để lưu họ tên giáo viên, trường Down lưu địa chỉ của nút tiếp theo, trường DSM lưu địa chỉ nút đầu của một danh sách khác chứa mã của môn học do giáo viên đó đảm nhiệm (gọi là danh sách môn học). Mỗi nút của danh sách môn học là một bản ghi gồm 2 trường: MaM để lưu mã môn học đã được đăng ký trong danh sách FirstS trường Tiep lưu địa chỉ của nút tiếp theo. Lưu ý rằng: • Danh sách giáo viên được sắp theo thứ tự tăng dần của MaGV. • Cho biết khai báo bổ sung của cấu trúc dữ liệu nói trên như sau: type St25=String[25]; st8=string[8]; TroM=^NutM; NutM=record MaM:integer; Tiep: TroM; end; TroGV=^NutGV; NutGV=record MaGV:st8; HoTenGV:st25; down: TroGV; DSM: TroM; end; var FirstT:TroGV; Viết hai thủ tục: + Procedure ListOfSubjects(FirstT:TroGV; BMaGV:st8); để liệt kê các môn học do giáo viên có mã giáo viên là BMaGV đảm nhiệm theo mẫu sau: STT Tên môn học Số đơn vị học trình … … … Trình bày: Trần Hoài Nhân 3/3 + Procedure ListOfTeachers(FirstT:TroGV; BMaM:integer); để liệt kê các giáo viên đảm nhiệm môn học có mã môn học là BMaM theo mẫu sau: STT Họ tên giáo viên … … Câu 3. Cho trước cây nhị phân Top (nút gốc trỏ bởi Top) có khai báo như sau: type TroNutTrenCay = ^NutTrenCay; NutTrenCay = record Value:integer; Left,Right:TroNutTrenCay; end; var Top:TroNutTrenCay; a. Viết hàm Function Muc(Top,p:TroNutTrenCay):word; trả về giá trị là mức (level) của một nút thuộc cây nhị phân Top được trỏ bởi con trỏ P. b. Để biểu diễn một hàng đợi, người ta có thể sử dụng một danh sách liên kết đơn vời nút đầu (lối trước) nút cuối (lối sau) lần lượt trỏ bởi First Last. Ngoài ra mỗi nút trên danh sách này còn có thể lưu địa chỉ của một nút thuộc cây nhị phân Top. Cụ thể ta có khai báo bổ sung như sau: type TroNutTrenDS=^NutTrenDS; NutTrenDS = record Info: TroNutTrenCay; {lưu địa chỉ của một nút thuộc cây nhị phân Top} Next: TroNutNutTrenDS; {lưu địa chỉ nút tiếp trong danh sách} end; var First, Last: TroNutTrenDS; Viết hai thủ tục: + Procedure InsertQueue(var First,Last: TroNutTrenDS; X: TroNutTrenCay); để bổ sung một nút mà trường Info có giá trị bằng X tại vị trí lối sau Last. + Procedure DeleteQueue(var First,Last: TroNutTrenDS; var X: TroNutTrenCay); để loại bỏ một nút tại vị trí lối trướng First gán giá trị trường Info của nút này cho tham biến X. c. Viết thủ tục Procedure LietKe(Top: TroNutTrenCay); nhằm liệt kê giá trị trường Value của mọi nút trên cây nhị phân Top, với yêu cầu: • Thứ tự các nút được liệt kê là theo thứ tự tăng dần của mức các nút trên cây. • Các nút có cùng mức được liệt kê theo thức tự từ trái sang phải. Ghi chú: Cán bộ coi thi không được giải thích gì thêm. Trình bày: Trần Hoài Nhân . danh:.................................................. KỲ THI TUYỂN SINH SAU ĐẠI HỌC NĂM 2005 Môn thi: Ngôn ngữ lập trình (Dành cho cao học) Thời gian làm: 180 phút Câu 1.. BMaGV:st8); để liệt kê các môn học do giáo viên có mã giáo viên là BMaGV đảm nhiệm theo mẫu sau: STT Tên môn học Số đơn vị học trình … … … Trình bày: Trần

Ngày đăng: 02/11/2012, 15:37

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan