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

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

Đ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

Đề 04 1/2 Đề thì tuyển Nghiên cứu sinh Cao học Môn: Phương pháp lập trình, CTDL giải thuật Thời gian: 180 phút Câu 1. Cho chương trình sau: Program Chuyengiaomang(input,outphut); Var i:integer; A:arra 2Procedure p(var x,y:integre); y[1 ]of interger; Begin {3} X:=x+1; {4} Y:=y+1; {5}End; Write(x,y); BEGIN {1} i:=1; A[1]:=2; A[2]:=0; {2} P(i,a[a[i]]); {7} writeln(i,a[1],a[2]); {8} END. a. Cho biết kết quả in ra. b. Giải thích kết quả đó qua hành động của chương trình theo các bước từ {1} đến {8}. Bài 2. Giải thuật tìm kiếm nhị phân được thể hiện như sau: Type kieuPT = integer; Bang = array[1 n] of kieuPT {n>0 bảng được sắp} Function TimNhiPhan(k:kieuPT; var b:bang):integer; Var t,p,g:integer; {trái,phải,giữa} Begin T:=1; p:=n; Repeat G:=(t+p) div 2; if k>b[g] then t:=g else p:=g; until (b[g]=k)or(t>=p); If b[g] = k then TimNhiPhan:=g {tìm được k} Else TimNhiPhan:=0; {không tìm được} End; Hãy tìm một ví dụ b[1], b[2],…, b[n] chứng tỏ rằng giải thuật trên không đưa ra kết quả mong muốn. Hãy chữa lại chương trình trên cho đúng. Bài 3. Cho cây nhị phân với khai báo như sau: Type tro = ↑nut; Nut = record Giatri:integer; Contrai,conphai:tro; Trình bày: Trần Hoài Nhân Đề 04 2/2 End; Var t:tro; {trỏ gốc của cây} Hãy lập hàm: Function copy(T:tro):tro; Cho phép, với một cây có gốc trỏ bởi T, lập một bản sao của cây đó (ở bộ nhớ trong) cho lại địa chỉ của gốc của cây mới này. Bài 4. Với cây nhị phân được khai báo như ở bài 3, ta có thể tiến hành duyệt cây theo một giải thuật không đệ quy theo sở đồ sau, trong đó có đúng một danh sách tuyến tính để làm (các con trỏ tới) các nút cần ghi nhớ trong cây. Nạp (con trỏ) gốc cây vào danh sách; While danh sách không rỗng do Begin Lấy một nút từ danh sách, gọi đó là N; Thăm N (chẳng hạn in giá trị của nó); Nạp con trái của N vào danh sách (nếu có); NEnd; ạp con phải của N vào danh sách (nếu có); Tuy nhiên, tùy theo cách chọn nút N từ danh sách ra như thế nào, mà ta thành lập được 2 giải thuật duyệt cây khác nhau: - Giải thuật S (dùng stack): Lấy nút mới nhất (được nạp muộn nhất) trong danh sách. - Giải thuật Q (dùng queue): Lấy nút cũ nhất (đươc nạp sớm nhất) trong danh sách. a. Hãy cho biết các giải thuật S, Q duyệt cây sau đây theo các thứ tự nào? 1234 5 6987 b. Từ sự gợi ý của sơ đồ trên, hãy viết một thủ tục duyệt cây nhị phân theo thứ tự preorder (gốc-trái-phải). Chú ý không được phá hoại cây đã cho cố gắng loại các động tác thừa. Thăm một nút được thể hiện bởi in giá trị của nút đó ra. Trình bày: Trần Hoài Nhân . Đề 04 1/2 Đề thì tuyển Nghiên cứu sinh và Cao học Môn: Phương pháp lập trình, CTDL và giải thuật Thời gian: 180 phút Câu 1. Cho chương trình sau:. Trần Hoài Nhân Đề 04 2/2 End; Var t:tro; {trỏ gốc của cây} Hãy lập hàm: Function copy(T:tro):tro; Cho phép, với một cây có gốc trỏ bởi T, lập một bản sao

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