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

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

Đ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 2006 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. Xét đoạn chương trình sau: function Power(n:byte):integer; begin if then Power:=1 n=0else if (n mod 2)=0 then Power:=sqr(Power(n div 2)) else Power:=2*sqr(Power(n-1)div 2)); end; a. Tính Power(20). b. Xét độ phức tạp tính toán của chương trình trên. Câu 2. Xét dãy số: 12, 10, 5 , 19, 7, 16. Hãy cho biết diễn biến dãy số này (sự thay đổi mỗi lúc có hoán đổi giá trị) khi việc sặp xếp được thực hiện theo thứ tự tăng dần bằng phương pháp nỗi bọt (Bubble Sort). Câu 3. Một trung tâm đào tạo Tin học cần quản lý việc học của học viên theo chứng chỉ môn học. Trong mỗi kỳ, trung tâm lưu giữ thông tin về kết quả học tập của các học viên trong một danh sách liên kết với nút đầu được trỏ bởi con trỏ F (gọi à danh sách học viên F). Mỗi nút của danh sách là một bản ghi gồm 3 trường: • Trường Down: Lưu địa chỉ của nút tiếp theo trong danh sách học viên. • Trường Hoten: Lưu họ tên học viên (trường khóa của danh sách học viên). • Trường DsMon: Lưu địa chỉ của nút đầu của một danh sách khác chứa các kết quả các môn họchọc viên này đăng ký học trong học kỳ đó (gọi là danh sách môn hộc). Mỗi nút của danh sách môn học gồm các trường: • Trường TenMH: Tên của môn học (khóa). • Trường Diem: Điểm thi kết thúc môn học này của học viên. • Trường Next: Lưu địa chỉ nút tiếp theo của danh sách môn học. Lưu ý rằng chỉ có danh sách học viên được sắp xếp theo thứ tự tăng dần của Hoten. Khai báo CTDL: type St20=String[20]; TroMH=^MonHoc; MonHoc = record TenMH:st20; Diem:byte; Next:TroMH; Trình bày: Trần Hoài Nhân 2/3 end; TroHV=^HocVien; HocVien = record HoTen:st20; down: TroHV; DsMon: TroMH; end; var F:TroHV; a. Viết hàm: Function TimHV(F: TroHV; Name:St20):TroHV; Trả về địa chỉ của nút thuộc danh sách học viên F có giá trị trường Hoten=Name, hoặc trả về giá trị NIL nếu trong danh sách F không có học viên nào có họ tên là Name. b. Viết hàm: Function TimMH(F: TroHV; Subject:st20):TroMH; Trả về địa chỉ của nút thuộc danh sách môn học P (nút đầu trỏ bởi P) có giá trị trường TenMH=Subject, hoặc trả về giá trị NIL nếu trong danh sách P không có môn học nào có tên Subject. c. Viết thủ tục: Procedure Bosung(F: TroHV; Name,Subject:st20); Để bổ sung một học viên có tên Name vào danh sách F nếu chưa có học viên đó học viên này có danh sách môn học đăng ký ban đầu gồm 1 môn học Subject. Nếu đã có học viên này, thì bổ sung một môn học có tên Subject vào cuối danh sách môn học của học viên đó, nếu môn học này chưa có trong danh sách; ngược lại, không làm gì cả. d. Viết thủ tục: Procedure Capnhat(F: TroHV; Name,Subject:st20; Mark:byte); Để cập nhật điểm thi Mark của môn học Subject cho học viên Name. Nếu không tìm thấy học viên Name thì thực hiện việc bổ sung học viên Name môn học Subject kèm điểm số Mark tương ứng. Nếu không thấy môn học Subject của học viên Name thì thực hiện việc bổ sung môn học Subject kèm số điểm Mark. e. Viết thủ tục: Procedure InDSHV(F: TroHV); Thực hiện việc in danh sách học viên điểm của từng môn học đăng kí kèm điểm trung bình của mỗi học viên, điểm trung bình bằng tổng tất cả các cột điểm chia cho số lượng môn học đã đăng ký. In danh sách theo mẫu: DANH SACH HOC VIEN 1. Le Van A: Tin(9), Pascal(10) – DTB: 9.50 2. Le Van B: word(5), Excel(8) – DTB: 6.50 … Câu 4. Cho cây nhị phân type TroNut=^Nut; Nut = record Giatri:integer; Left,Right:TroNut; Trình bày: Trần Hoài Nhân 3/3 end; var T:TroNut; a. Viết hàm: ChieuCao(T:TroNut):byte; Trả về chiều cao của cây nhị phân T. b. Xét một danh sách liên kết F: type TroNutDS=^NutDS; NutDS = record Giatri:integer; {lưu giá trị 1 nút trên cây} Muc:byte; {lưu mức tương ứng của nút đó} Next:TroNutDS; end; var F:TroNutDS; Giả sử ban đầu danh sách F đã được khởi tạo là danh sách rỗng. Viết thủ tục bằng đệ qui: Ghi(T:TroNut; Var T:TroNutDS; level:byte); Để tạo danh sách F ghi thông tin trường giatri của mọi nút trên cây T vào danh sách F này, đồng thời mức của nút trỏ bởi T là level sẽ được gán cho trường Muc của F. c. Giả sử thông tin trong cây nhị phân T đã được ghi vào danh sách T nhờ lời gọi Ghi(T,F,1). Viết hàm: DemSoNut(F:TroNutDS, level:byte):integer; Cho kết quả là số nút của danh sách F có giá trị trường Muc=level. d. Viết hàm: LaCayNPDD(T:Tronut):boolean; Cho kết quả True nếu cây T là cấy nhị phân đầy đủ, ngượi lại trả về giá trị False. 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 2006 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. Xét đoạn chương trình sau:. một học viên có tên Name vào danh sách F nếu chưa có học viên đó và học viên này có danh sách môn học đăng ký ban đầu gồm 1 môn học Subject. Nếu đã có học

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