Đáp Án Cấu trúc Dữ Liệu và Giải Thuật Đại Học Thái Nguyên Tnu onlieĐáp Án Cấu trúc Dữ Liệu và Giải Thuật Đại Học Thái Nguyên Tnu onlieĐáp Án Cấu trúc Dữ Liệu và Giải Thuật Đại Học Thái Nguyên Tnu onlieĐáp Án Cấu trúc Dữ Liệu và Giải Thuật Đại Học Thái Nguyên Tnu onlieĐáp Án Cấu trúc Dữ Liệu và Giải Thuật Đại Học Thái Nguyên Tnu onlieĐáp Án Cấu trúc Dữ Liệu và Giải Thuật Đại Học Thái Nguyên Tnu onlieĐáp Án Cấu trúc Dữ Liệu và Giải Thuật Đại Học Thái Nguyên Tnu onlie
TUẦN cÂU Yêu cầu chọn kiểu liệu cho chương trình là? A.Kiểu liệu lớn tốt B.Kiểu liệu nhỏ tốt C.Kiểu liệu cần sát với kiểu giá trị thơng tin thực tế D.Có thể chọn kiểu liệu Đáp án là: Kiểu liệu cần sát với kiểu giá trị thơng tin thực tế Câu Hỏi 2Đâu kiểu liệu kiểu liệu đây? A.Kiểu mảng B.Kiểu số nguyên C.Kiểu cấu trúc ghi D.Kiểu tệp tin Đáp án là: Kiểu số nguyên Câu Hỏi 3Hãy cho biết kết phép MOD hai số ngun có kiểu gì? Chọn một: A.Kiểu số thực B.Kiểu logic C.Kiểu số nguyên D.Kiểu ký tự Đáp án là: Kiểu số nguyên” Câu Hỏi Đâu tiêu chí chọn ngôn ngữ diễn đạt giải thuật ? A.Ngôn ngữ gần với ngôn ngữ máy tốt B.Ngôn ngữ tiếng Việt C.Gần với ngơn ngữ lập trình có D.Chọn ngơn ngữ bạn thích Đáp án là: Gần với ngơn ngữ lập trình có Câu Hỏi 5Hãy cho biết ưu điểm kiểu liệu trừu tượng A.Giúp cho người lập trình dễ viết chương trình B.Giúp cho giải thuật đơn giản C.Giúp cho người dùng dễ sử dụng chương trình D.Giúp cho người lập trình khơng phải q quan tâm đến cách thức biểu diễn cụ thể liệu máy tính Đáp án là: Giúp cho người lập trình quan tâm đến cách thức biểu diễn cụ thể liệu máy tính Câu Hỏi 6Hãy cho biết kiểu liệu trừu tượng gì? A.Là kiểu liệu đa phù hợp với loại giá trị BLà kiểu liệu giới hạn độ lớn C.Là kiểu liệu người dùng tự định nghĩa D.Là kiểu liệu hệ thống tự sinh Đáp án là: Là kiểu liệu người dùng tự định nghĩa Câu Hỏi 7Kiểu liệu thuộc loại kiểu liệu bản? A.RECORD B.POINTER C.ARRAY D.STRING Đáp án là: POINTER Câu Hỏi 8Chọn định nghĩa cho từ Giải thuật? A.Là giải thích thuật ngữ tin học B.Là cách biểu diễn cấu trúc liệu dạng giả mã, ngôn ngữ tự nhiên, sơ đồ khối… C.Là tập hợp hữu hạn thị hay phương cách định nghĩa rõ ràng cho việc hoàn tất số việc từ trạng thái ban đầu cho trước; thị áp dụng triệt để dẫn đến kết sau dự đoán D.Là tập hợp lệnh xử lý liệu Câu Hỏi 9Hãy cho biết ý nghĩa kiểu liệu logic (BOOLEAN) A.Dùng tính tốn số học B.Dùng phép so sánh C.Dùng để biểu diễn giá trị logic bao gồm giá trị (true) sai (false) D.Dùng phép toán logic Đáp án là: Dùng để biểu diễn giá trị logic bao gồm giá trị (true) sai (false) Câu Hỏi 10Kiểu liệu gì? A.Là kiểu liệu đơn giản B.Là kiểu liệu giúp cho việc lập trình dễ dàng C.Là kiểu liệu có sẵn hầu hết máy tính hỗ trợ hầu hết ngôn ngữ lập trình D.Là kiểu liệu khơng địi hỏi kĩ thuật cao xử lý Đáp án là: Là kiểu liệu có sẵn hầu hết máy tính hỗ trợ hầu hết ngơn ngữ lập trình Câu Nếu số lần gọi truy hồi đến giải thuật Fibonnaci vị trí thứ n nF(n) nF(n) tính theo cơng thức nào? A.nF(n) = nF(n-1) + nF(n-2) B.nF(n) = + F(n-1) + F(n-2) C.nF(n) = + nF(n-1) + nF(n-2) D.nF(n) = 2+ nF(n-1) + nF(n-2) Đáp án là: nF(n) = + nF(n-1) + nF(n-2) Câu:2Hãy cho biết cấu trúc liệu kiểu mảng (Array) sử dụng để làm gì? A.Được sử dụng để lưu trữ liên tiếp phần tử thuộc kiểu liệu B.Được sử dụng để lưu trữ liên tiếp phần tử thuộc kiểu liệu C.Được sử dụng để lưu trữ liên tiếp phần tử thuộc kiểu liệu trừu tượng D.Được sử dụng để lưu trữ liên tiếp phần tử thuộc kiểu ký tự số nguyên Đáp án là: Được sử dụng để lưu trữ liên tiếp phần tử thuộc kiểu liệu Câu:3 Kiểu liệu thuộc loại kiểu liệu bản? A.RECORD B.POINTER C.ARRAY D.STRING Đáp án là: POINTER Câu Chọn định nghĩa cho từ Giải thuật? A.Là giải thích thuật ngữ tin học B.Là cách biểu diễn cấu trúc liệu dạng giả mã, ngôn ngữ tự nhiên, sơ đồ khối… C.Là tập hợp hữu hạn thị hay phương cách định nghĩa rõ ràng cho việc hoàn tất số việc từ trạng thái ban đầu cho trước; thị áp dụng triệt để dẫn đến kết sau dự đoán D.Là tập hợp lệnh xử lý liệu Phản hồi Câu Hãy cho biết giá trị “con trỏ” gì? A.Là địa đến vùng nhớ định B.Là địa vị trí trỏ C.Là giá trị vùng nhớ D.Là giá trị kiểu liệu khác Phản hồi Câu trả lời bạn chưa xác Đáp án là: Là địa đến vùng nhớ định Câu Hãy cho biết ý nghĩa kiểu liệu logic (BOOLEAN) A.Dùng tính tốn số học B.Dùng phép so sánh C.Dùng để biểu diễn giá trị logic bao gồm giá trị (true) sai (false) D.Dùng phép toán logic Đáp án là: Dùng để biểu diễn giá trị logic bao gồm giá trị (true) sai (false) Câu Đâu tiêu chí chọn ngơn ngữ diễn đạt giải thuật ? A.Ngôn ngữ gần với ngôn ngữ máy tốt B.Ngôn ngữ tiếng Việt C.Gần với ngôn ngữ lập trình có D.Chọn ngơn ngữ bạn thích Đáp án là: Gần với ngơn ngữ lập trình có Câu Hãy cho biết giải thuật đệ quy tìm ước số chung lớn hai số nguyên A,B> điều kiện kết thúc đệ quy gì? A.A=0 B =0 B.A=1 A>B C.A=0 B=0 D.A=1 A#B Đáp án là: A=0 B=0 Câu Kiểu liệu trỏ dùng để làm gì? A.Được dùng để trỏ tới giá trị B.Được dùng để lưu trỏ đến kiểu liệu khác C.Được dùng để lưu vị trí trỏ D.Được dùng để lưu giá trị ô nhớ Đáp án là: Được dùng để lưu trỏ đến kiểu liệu khác Câu 10.Kiểu truy cập phần tử mảng kiểu truy cập kiểu đây? A.Kiểu truy cập ngẫu nhiên B.Kiểu truy cập song song C.Kiểu truy cập nhanh D.Kiểu truy cập Đáp án là: Kiểu truy cập ngẫu nhiên TUẦN Câu 1: Trong việc ứng dụng danh sách liên kết để tính tốn giá trị đa thức ẩn bậc n, để lưu trữ đa thức danh sách liên kết nút danh sách thường có trường: A.1 B.2 C.3 D.4 Đáp án là: Câu Hỏi 2:Lựa chọn định nghĩa danh sách? A.Danh sách tập hợp phần tử có kiểu liệu B.Danh sách tập hợp phần tử có kiểu liệu xác định chúng có mối liên hệ C.Danh sách tập hợp phần tử mà chúng có mối liên hệ D.Danh sách tập hợp phần tử có giá trị Đáp án là: Danh sách tập hợp phần tử có kiểu liệu xác định chúng có mối liên hệ Câu Hỏi 3:Với cấu trúc liệu danh sách liên kết đơn lưu trữ thông tin phòng máy typedef struct PM {int maPM; int tongsoMay; } PHONGMAY; typedef struct Node { PHONGMAY Data; Node * NextNode; } OneNode; typedef OneNode * SLLPointer; Để quản lý danh sách liên kết đơn phần tử đầu phần tử cuối, cần định nghĩa kiểu liệu: A.SLLPointer DanhSach; B.typedef struct SSLLIST { SLLPointer First; SLLPointer Last; } LIST; LIST DanhSach; C.typedef struct SSLLIST { SLLPointer First; SLLPointer Last; int total; } LIST; LIST DanhSach; D.typedef struct SSLLIST { SLLPointer First; int total; } LIST; LIST DanhSach; Đáp án là: typedef struct SSLLIST { SLLPointer First; SLLPointer Last; } LIST; LIST DanhSach; Câu Hỏi 4Lựa chọn câu danh sách liên kết đôi (Doubly Linked List) A.Vùng liên kết phần tử danh sách liên đơi có 02 mối liên kết với 01 phần tử khác danh sách B.Vùng liên kết phần tử danh sách liên đơi có 01 mối liên kết với 02 phần tử khác danh sách C.Vùng liên kết phần tử danh sách liên đơi có 02 mối liên kết, 01 với phần tử trước 01 với phần tử sau danh sách D.Vùng liên kết phần tử danh sách liên đơi có 02 mối liên kết với phần tử đầu cuối danh sách Đáp án là: Vùng liên kết phần tử danh sách liên đơi có 02 mối liên kết, 01 với phần tử trước 01 với phần tử sau danh sách Câu Hỏi 5Biểu diễn danh sách mảng mô tả sau: #define Max_Size N typedef Kieu_du_lieu E_Type; struct ListType {E_Type Element[Max_Size]; int Size; } List; Điều kiện danh sách đầy là: A.Size = B.List = Max_Size C.List.Size = Max_Size D.Size.List = Max_Size Câu Hỏi 6Với cấu trúc liệu sau typedef struct DNode {int Key; DNode * NextNode; DNode * PreNode; } DOneNode; typedef DOneNode * DPointerType; typedef struct DLLPairNode {DPointerType DLLFirst; DPointerType DLLLast; } DLLPType; Hãy cho biết hàm sau dùng để làm gì? void DLLTravelling (DLLPType DList) {DPointerType CurrNode = DList.DLLFirst; while (CurrNode != NULL) {cout Key; CurrNode = CurrNode->NextNode ; } return; } A.Duyệt qua nút danh sách hiển thị nội dung nút B.Duyệt danh sách C.Thêm phần tử vào danh sách D.Xoá phần tử khỏi danh sách Đáp án là: Duyệt qua nút danh sách hiển thị nội dung nút Câu Hỏi 7Cho biết ý nghĩa hàm sau : ListType Insert_E(int Pos,E_Type Item,ListType List) { int k,j; if (List.Size == Max_Size) printf("danh sach day khong the chen them"); else { for (k = List.Size-1; k >= Pos-2; k ) { j = k+1; if (k==Pos-2) List.Element[j]=Item; else List.Element[j]=List.Element[k]; } List.Size=List.Size+1; }return List; } A.Để thêm phần tử Item vào vị trí Pos-2 danh sách List B.Để thêm phần tử Item vào vị trí Pos-1 danh sách List C.Để thêm phần tử Item vào vị trí Pos danh sách List D.Để thêm phần tử Item vào vị trí Pos+1 danh sách List Phản hồi Câu trả lời bạn chưa xác Đáp án là: Để thêm phần tử Item vào vị trí Pos-1 danh sách List Câu Hỏi 8Định nghĩa cấu trúc liệu danh sách liên kết đôi mô tả sau: Typedef Kieu_du_lieu ElementType; typedef struct NodeType { ElementType Data; struct NodeType *next, *prev; }Node ; Hãy chọn mô tả cho khai báo NodeType *next A.Con trỏ trỏ tới phần liệu B.Vùng liên kết quản lý địa phần tử C.Con trỏ trỏ tới địa vùng nhớ phần tử trước danh sách liên kết đơi D.Con trỏ trỏ tới địa vùng nhớ phần tử danh sách liên kết đôi Đáp án là: Vùng liên kết quản lý địa phần tử Câu Hỏi 9Cho danh sách L = (1, 8, 9, 2, 4, 0, 6, 7, 5) Thủ tục DSC_L(Pos1; Pos2: position ; var List: ListType) để đưa danh sách List vị trí Pos1 đến vị trí Pos2 trả giá trị cho List Thủ tục Delete_L(Pos: position ; var List: ListType) để xóa phần tử vị trí Pos khỏi danh sách List Thủ tục Insert_L(Pos: position ; X: Item; var List: ListType) để thêm phần tử X vào vị trí Pos danh sách List Khi ta thực liên tiếp DSC_L(2,7,L), Delete_L (2,L), Insert_L(2,3,L) kết danh sách L sau? A.(1, 3, 4, 0, 6, 7) B.(8, 2, 3, 4, 0, 6) C.(8, 3, 2, 4, 0, 6) D.(8, 3, 9, 4, 0, 6) Đáp án là: (8, 3, 2, 4, 0, 6) Câu Hỏi 10 Cho danh sách L = (1, 5, 3, 2, 4, 0, 6) Thủ tục Delete_L(Pos: position ; var List: ListType) để xóa phần tử vị trí Pos khỏi danh sách List Khi ta thực liên tiếp Delete_L(2,L), Delete_L(4,L) kết danh sách L sau? A.(1, 5, 2, 4, 6) B.(1, 2, 4, 0, 6) C.(1, 3, 2, 0, 6) D.(1, 3, 4, 0, 6) Đáp án là: (1, 3, 2, 0, 6) Câu 11: Cho danh sách L = (1, 5, 3, 2, 4, 0, 6, 8, 9) biểu diễn mảng Thủ tục Insert_L(Pos: position; X: Item; var List: ListType) để thêm phần tử X vào vị trí Pos danh sách List Khi ta thực Insert_L(3,7,L) cần phải thực tối thiểu phép thay đổi giá trị phần tử mảng? A.6 B.7 C.8 D.9 Câu Hỏi 2Cho danh sách L = (0, 3, 7, 2, 4, 9) Đâu danh sách L? A.(0, 3, 2, 7) B.(0, 3, 7, 2) C.(0, 3, 4, 2, 9) D.(0, 3, 4, 9) Đáp án là: (0, 3, 7, 2) Câu Hỏi 3Một danh sách rỗng khi: A.độ dài danh sách B.độ dài danh sách C.độ dài danh sách không xác định D.tổng giá trị phần tử danh sách Đáp án là: Độ dài danh sách Câu Hỏi 4Trong định nghĩa danh sách liên kết đôi, nút gồm thành phần? A.1 thành phần B.2 thành phần C.3 thành phần D.4 thành phần Đáp án là: thành phần Câu Hỏi Khi cài đặt danh sách mảng, với độ dài n thao tác chèn phần tử vào danh sách có độ phức tạp: A.O(n2) B.O(n.log2(n)) C.O(n) D.O(2n) Câu 14 Định nghĩa với danh sách liên kết? A.Danh sách liên kết cấu trúc liệu dạng B.Danh sách liên kết cấu trúc liệu tự định nghĩa C.Danh sách liên kết tập hợp phần tử mà chúng có nối kết với thông qua vùng liên kết chúng D.Danh sách liên kết tập hợp phần tử mà đặt kề cận với vùng nhớ Tuần Câu 1; Cho biểu thức số học dạng thông thường: (a+b)*(c-(d-e)) Đâu biểu diễn biểu thức dạng biểu thức Balan? A.ab *+ cde -B.ab + cde * C.abc *+ de -D.ab + cde *-Câu Hỏi 2Cho biểu thức số học dạng Balan sau: *- + – – + * Việc tính tốn giá trị biểu thức dùng Stack cài đặt mảng phần tử đẩy vào Stack lần thứ 10 có giá trị bao nhiêu? A.4 B.5 C.6 D.7 Câu Hỏi 3Cấu trúc liệu tương ứng với nguyên lý LIFO A.Queue B.Linked List C.Tree D.Stack Đáp án là: Stack Vì: Stack (ngăn xếp) dạng đặc biệt danh sách mà việc bổ sung hay loại bỏ phần tử thực đầu danh sách gọi đỉnh Nói cách khác, ngăn xếp cấu trúc liệu có thao tác bản: bổ sung (push) loại bỏ (pop), việc loại bỏ tiến hành loại phần tử đưa vào danh sách Chính tính chất mà ngăn xếp cịn gọi kiểu liệu có nguyên tắc LIFO (last in first out – vào sau trước) Câu Hỏi 4Việc cài đặt ngăn xếp mảng thực qua khai báo đây: #define max N typedef int ElementType; struct Stack { int Top_id; ElementType Element[max]; }; Stack S; Ý nghĩa S là: A.Độ lớn cực đại Stack B.Tên Stack C.Chứa phần tử Stack D.Kiểu liệu phần tử Stack Vì: khai báo biến S có kiểu Stack Câu Hỏi 5Trong việc cài đặt ngăn xếp mảng A[…], ngăn xếp có n phần tử phần tử vừa đưa vào ngăn xếp vị trí mảng? A.A[0] B.A[1] C.A[n-1] D.A[n] Đáp án là: A[n-1] Vì: Khi sử dụng mảng chiều A[] để biểu diễn ngăn xếp phần tử A[0] mảng A[] đáy ngăn xếp Do đó, phần tử vừa đưa vào ngăn xếp có vị trí A[n-1] mảng A[] có n phần tử Câu Hỏi 6Việc lấy phần tử khỏi đỉnh Stack cài đặt Stack danh sách liên kết thực đoạn mã đây: ElementType POP(Stack *S) { StackNode *p;// Con trỏ tạm thời đến nút đỉnh if(StackEmpty(S)) { printf("ngan xep rong"); return NULL; } else { p = S –> Top; …………… ; return p –> Data; } } Hãy lựa chọn câu trả lời nội dung điền vào chỗ trống ( .) đoạn mã trên: A.S –> Top –> Next B.S –> Top = S –> Top –> Next C.S –> Top = S –> Next D.Top = Next Đáp án là: S –> Top = S –> Top –> Next Vì: Việc lấy phần tử khỏi đỉnh Stack cài đặt Stack danh sách liên kết thực : - Nếu ngăn xếp rỗng: return NULL - Nếu ngăn xếp không rỗng: Cất đỉnh ngăn xếp vào biến trỏ p : p = S –> Top; {T Key; QElement *Next; } QOneElement; typedef QElement *QType; Cấu trúc liệu quản lý hàng đợi hai phần tử đầu (Front) cuối (Rear): typedef struct QPElement {QType Font; QType Rear; } SQUEUE; SQUEUE SQList; Thêm phần tử vào sau phần tử Rear Giả sử liệu đưa vào hàng đợi NewData, mã giả mô tả sau: B1: NewElement = Khởi tạo nút có thành phần NewData B2: IF (NewElement == NULL) Thực BKT B3: IF (SQList.Front == NULL) // hàng đợi rỗng B3.1: SQList.Front = SQList.Rear = NewElement B3.2: Thực BKT B4: ………………………………………… A.B4: SQList.Front->Next = NewElement B5: SQList.Front = NewElement B.B4: SQList.Rear->Next = NewElement B5: SQList.Rear = NewElement C.B4: NewElement = SQList.Rear->Next B5: SQList.Rear = NewElement D.B4: NewElement = SQList.Front->Next B5: SQList.Font = NewElement Câu Hỏi 14Khi lấy phần tử hàng đợi phần tử vị trí: A.Đầu tiên hàng đợi B.Cuối hàng đợi C.Bất kỳ vị trí D.Khơng thể lấy phần tử hàng đợi Câu Hỏi Cho đồ thị hình đây, việc tìm đường ngắn từ đỉnh đến đỉnh ta sử dụng cấu trúc liệu hàng đợi, đỉnh thăm theo thứ tự từ điển ta đặt tên biến sau: biến T thể vị trí đi, biến H thể vị trí đầu, biến S thể số lượng phần tử Giá trị lớn S bao nhiêu? A.3 B.4 C.5 D.6 Câu Hỏi Để cài đặt thàng đợi danh sách liên kết, trước tiên ta phải định nghĩa kiểu phần tử cho danh sách Mỗi phần tử danh sách liên kết phải có trường: A.1 B.2 C.3 D.4 Câu trả lời là: Câu Hỏi 7Cấu trúc liệu cài đặt mảng ta phải cần biến vị trí để quản lý danh sách phần tử A.Ngăn xếp B.Danh sách C.Cây D.Hàng đợi Câu Hỏi 18Việc kiểm tra hàng đợi có rỗng khơng thực đoạn mã đây: int IS_EMPTY(QUEUE_ARRAY q) { if (………) return 1; else return 0; } Hãy lựa chọn câu trả lời nội dung điền vào chỗ trống ( .) đoạn mã trên: A.S == B.q.S == C.q.S == D.q.S == -1 Câu Hỏi 19Khi cài đặt hàng đợi mảng, ta đặt tên biến sau: biến T thể vị trí đi, biến H thể vị trí đầu Thao tác thêm phần tử vào hàng đợi trường hợp: “giá trị T kích thước mảng số lượng phần tử hàng đợi nhỏ kích thước mảng” sẽ: A.Tăng T lên đơn vị B.Giảm T đơn vị C.Giá trị T gán D.Không thực Câu Hỏi 20Việc cài đặt hàng đợi mảng thực qua khai báo đây: #define max N typedef int ELEMENT; struct QUEUE_ARRAY { ELEMENT ele[max]; int capacity, H, T, S ; } q; Ý nghĩa ELEMENT là: A.Chứa phần tử Hàng đợi B.Số phần tử thời Hàng đợi C.Vị trí đỉnh Hàng đợi D.Kiểu liệu phần tử Hàng đợi TUẦN Câu 1; Cho biểu diễn sau: A.0 B.1 C2 D.3 Câu Hỏi Đỉnh đỉnh nào? A.Là đỉnh khơng có B.Là đỉnh khơng có cha C.Là đỉnh có D.Là đỉnh có Câu Hỏi Cho biểu diễn sau: Đâu tập cây: A.{3, 4, 5, 6, 7, 8, 9}B B{3, 4, 5, 6, 8, 9} C.{4, 5, 6, 7, 8, 9} D.{4, 5, 6, 8, 9} Câu Hỏi Có thao tác nhị phân? A.Có thao tác B.Có thao tác C.Có thao tác D.Có thao tác Câu Hỏi Các đỉnh có bậc gọi gì? A.Là Gốc B.Là Lá C.Là Ngọn D.Là Cầu Câu Hỏi Hãy cho biết độ cao xác định nào? A.Là độ dài đường từ gốc tới B.Là độ dài đường dài từ gốc tới C.Là độ dài đường từ đến gốc D.Khơng có khái niệm Câu Hỏi Cho nhị phân sau Với cách duyệt Inorder (Left – Root – Right) cho kết dãy nào? A.1325540169112034509022 B.1321692011405522905034 C.3455213401116920509022 D.3450902255401120169213 Câu Hỏi Cho biểu diễn sau: Bậc đỉnh e A.1 B.2 C.3 D.0 Câu Hỏi Phương pháp Minimax với chế cắt tỉa alpha-beta loại bỏ nhánh trò chơi?A A Những nhánh đem lại kết tốt cho đối thủ B.Những nhánh không cần thiết cho việc đánh giá C.Những nhánh thừa trò chơi D.Những nhánh lớn trò chơi Câu Hỏi 10 Đâu phương pháp duyệt hậu thứ tự nhị phân? A.Nút gốc duyệt trước sau duyệt đến bên trái tới bên phải B.Duyệt bên trái sau tới nút gốc tới bên phải C.Nút gốc duyệt trước sau duyệt đến bên phải tới bên trái D.Duyệt bên phải sau tới bên trái tới nút gốc Câu 11.Các phần tử gọi gì? A.Là nút B.Là C.Là cung D.Là cạnh Câu12.Quan hệ phân cấp nút gọi quan hệ gì? AQuan hệ anh – em B.Quan hệ – cháu C.Quan hệ cha – D.Khơng có quan hệ Câu 13 Hãy cho biết kết duyệt trung thứ tự (duyệt nút gốc giữa) nhị phân sau A.ABCDE B.BACDE C.BADCE D.BDECA Bài luyện tập tuần Câu Cho thuật tốn tìm kiếm sau, với điều kiện giá trị mảng theo thứ tự tăng dần:typedef KeyType;int LinearSearch(KeyType X, dataArray R,int n){int i;for(i = 0;i < n;i++){if(R[i]== X) return(i);else if(X < R[i]) return(–1);}return(–1);} Chọn câu trường hợp xấu khơng tìm thấy phần tử có giá trị X: A.Số phép so sánh: Smax = 3N+1 B.Số phép so sánh: Smax = 2N C.Số phép so sánh: Smax = 2N+1 D.Số phép so sánh: Smax = 3N Câu Đâu điều kiện việc xóa nút nhị phân tìm kiếm? A.Cây nhận sau xóa nhị phân đầy đủ B.Cây nhận sau xóa nhị phân tìm kiếm C.Cây nhận sau xóa nhị phân hồn chỉnh D.Cây nhận sau xóa nhị phân xếp Câu Đoạn mã giả mơ tả thuật tốn gì? Thuật tốn:B1: k = 0B2: IF (M[k] != X) AND (k < N)B2.1: k++B2.2: Lặp lại B2 B3: IF k < NThông báo tìm thấy vị trí kB4: ELSE Khơng tìm thấy.B5: Kết thúc A.Tìm nhị phân phần tử có giá trị X B.Tìm phần tử nhỏ mảng M bao gồm N phần tử C.Tìm tuyến tính phần tử có giá trị X D.Tìm phần tử lớn mảng M Câu Cho thuật tốn tìm kiếm nhị phân tìm kiếm sau: Bước 1: đặt trỏ Root = BST; Bước 2: (Root = NULL) (Root –> infor = X) Kết thúc thuật toán; Bước 3: ngược lại:nếu (Root –> infor > X)Root = Root –> left;//tìm X bên trái Bước 4: ngược lại nếu(Root –> infor < X)Root = Root –> right;//tìm X bên phải Bước 5: lặp lại bước 2;Và nhị phân tìm kiếm sau: Khố cần tìm kiếm X = 40 số lần thực Bước là? A.1 B.2 C.3 D.4 Câu Cho thuật tốn tìm kiếm nhị phân sau: Bước 1: đặt First = Last = n – 1; Bước 2: Found = –1;//Found biến lưu vị trí tìm thấy X mảng Bước 3: while((First R[Mid]) First = Mid + 1;else Found = Mid;} Đâu điều kiện mảng R[] để thực thuật toán? A.Được tăng B.Được giảm C.Giá trị phần tử (First + Last) Câu Đâu nhị phân tìm kiếm nhị phân sau? A B C D Câu Xét thủ tục sau:int TimKiemNP (int M[], int First, int Last, int X){ if (First > Last)return (-1);int Mid = (First + Last)/2;if (X == M[Mid]) return (Mid);if (X < M[Mid])return(TimKiemNP (M, First, Mid – 1, X));else return(TimKiemNP (M, Mid + 1, Last, X));} Lựa chọn câu để mơ tả thủ tục A.Hàm tìm kiếm phần tử có giá trị X mảng phần tử từ số từ First đến số Last B.Hàm tìm kiếm đệ quy phần tử có giá trị X mảng phần tử từ số từ First đến số Last C.Hàm tìm kiếm đệ quy phần tử có giá trị X mảng phần tử từ số từ Last đến số First D.Hàm tìm kiếm khơng đệ quy phần tử có giá trị X mảng phần tử từ số từ Last đến số First Câu Cho thuật tốn tìm kiếm sau typedef KeyType;int Sequential_Search(dataArray R,KeyType X,int n);{int i;i=0;while((R[i]!= X)&&(i < n)){i++;}if(i < n) return (1);else return(–1);} Khi đó, tìm giá trị X = 34 mảng sau: 11, 23, 33, 34, 35, 62,71, 80, 95, 100 Chọn câu cho số phép so sánh vòng lặp while: A.Số phép so sánh: S = B.Số phép so sánh: S = C.Số phép so sánh: S = D.Số phép so sánh: S= 10 Câu Khi xóa nút nhị phân tìm kiếm, trường hợp nút cần xóa nút có đủ hai nút gốc Đâu định nghĩa cho khái niệm "nút tiền nhiệm"? A.Nút cực phải trái B.Nút cực trái phải C.Nút có khóa nhỏ D.Nút có khóa lớn Câu 10 Cho thuật tốn tìm kiếm sau, với điều kiện giá trị mảng theo thứ tự tăng dần: typedef KeyType; int LinearSearch(KeyType X, dataArray R,int n) {int i;for(i = 0;i < n;i++){if(R[i]== X) return(i);else if(X < R[i]) return(– 1);}return(–1);}Khi đó, tìm giá trị X = 85 mảng xếp theo thứ tự tăng dần sau:10, 20, 30, 40, 50, 60,70, 80, 90, 100 Chọn câu trường hợp xấu khơng tìm thấy phần tử có giá trị X A.Số phép so sánh: Smax = B.Số phép so sánh: Smax = 15 C.Số phép so sánh: Smax = 27 D.Số phép so sánh: Smax = 30 Câu 11Bạn cho biết độ phức tạp giải thuật tìm kiếm A.O(n2) B.O(n.log2(n)) C.O(n) D.O(2n) Câu 12.Cho thuật toán sau int LinearSearch (float M[], int N, float X) { int k = 0;M[N] = X;while (M[k] != X) //n+1 lan k++;if (k < N)return (1); else return (-1);}Chọn câu trường hợp xấu khơng tìm thấy phần tử có giá trị X: A.Số phép gán: Gmax = Số phép so sánh: Smax = N + B.Số phép gán: Gmax = Số phép so sánh: Smax = N + C.Số phép gán: Gmax = N Số phép so sánh: Smax = N + D.Số phép gán: Gmax = Số phép so sánh: Smax =2 N + Câu 13 Cho hàm tìm kiếm sau typedef KeyType; int Sequential_Search(dataArray R,KeyType X,int n); {int i;i=0;while((R[i]!= X)&&(i < n)) {i++;}if(i < n) return (1)else return(–1);} Chọn khẳng định nhất: A.Hàm trả khơng tìm thấy phần tử có giá trị X B.Hàm trả -1 tìm thấy phần tử có giá trị X C.Hàm trả -1 khơng tìm thấy phần tử có giá trị X D.Hàm trả không tìm thấy phần tử có giá trị X Câu 14 Khi xóa nút có giá trị 19 khỏi vị trí nút kế vị để thay nút là: A.Nút chứa giá trị 17 B.Nút chứa giá trị 22 C.Nút chứa giá trị 15 D.O(2n) Câu 15 Cho nhị phân tìm kiếm sau: Khi chèn nút có giá trị 17 vào vị trí nút là: A.Con trái nút chứa giá trị 14 B.Con phải nút chứa giá trị 14 C.Con trái nút chứa giá trị 19 D.Con phải nút chứa giá trị 16 Câu 16 Cho nhị phân tìm kiếm sau: Khi chèn nút có giá trị 65 vào vị trí nút là: A.Con trái nút chứa giá trị 50 B.Con phải nút chứa giá trị 50 C.Con trái nút chứa giá trị 68 D Con phải nút chứa giá trị 68 TUẦN Câu 1: Thủ tục mô tả thuật toán xếp chèn trực tiếp (Insertion sort): #define Max_Size … typedef Kieu_du_lieu KeyType; typedef struct KeyArray {KeyType Array[Max_Size]; int n;};KeyArray Sortinsert( KeyArray a) {int i,j;KeyType x;i = 1;while ( i = )&&(x < a.Array[j])){a.Array[j + 1] = a.Array[j]; j ––;} ………… ;i++;}return a;}Chọn câu lệnh thích hợp để đưa vào ( ) với mụctiêu đưa giá trị cần chèn vào vị trí A.a.Array[j] = x B.a.Array[j+1] = x C.a.Array[j-1] = x D.a.Array[i] = x Câu Hỏi 2Tên thuật toán xếp mà tư tưởng phân hoạch dãy ban đầu thành dãy có vị trí tương phần tử dãy? A.Bubble sort B.Quick sort C.Merge sort D.Heap sort Câu Hỏi 3; Cho dãy số gồm phần tử: 5, 3, 7, 4, 1, 2, 9, 12 Ta chia dãy thành dãy không giảm? A.3 B.4 C.5 D.6 Câu Hỏi 4Theo thuật toán Quick sort, nguyên tắc điều kiện sau dùng để chọn khóa chốt? A.Là phần tử có giá trị lớn B.Là phần tử có giá trị nhỏ C.Ln vị trí dãy D.Chọn ngẫu nhiên Câu Hỏi 5; Cho bước thuật toán dãy xếp dãy a1, a2,…, an theo thứ tự tăng dần theo thuật toán Insertion sort sau : Bước 1: i = 1; Bước 2:đặtx = A[i];j = i – 1; Bước 3: while (j >= 0) && (x < A[j])A[j + 1] = A[j];j––; Bước 4: đặt A[j + 1] = x ;i++; Bước 5: i < = n – lặp lại bước ngược lại kết thúc Trường hợp tốt nhất, dãy phần tử cần xếp có thứ tự tăng: A.Số phép so sánh: Sso sánh = 2n – B.Số phép so sánh: Sso sánh = n – C.Số phép so sánh: Sso sánh = n(n – 1) D.Số phép so sánh: Sso sánh = n(n−1)2n(n-1)2 Câu Hỏi : dãy số gồm 10 phần tử: 13, 71, 14, 101, 115, 111, 12, 91, 31, 81 Ta chia dãy thành dãy khơng giảm? A.3 B.4 C.5 D.6 Câu Hỏi 7;Tốn tử thực phép chia lấy phần dư? a./ b.// c.%% d.% Câu Hỏi 8; Bạn cho biết độ phức tạp việc xếp tăng dần dãy số thuật toán chèn trực tiếp trường hợp dãy tăng với n số phần tử dãy? A.O(n2) B.O(n) C.O(lg n) D.O(2n) Câu Hỏi 9; Thủ tục mơ tả thuật tốn xếp chọn (Selection Sort): void SapXepChon (T M[], int N) { int K = 0, PosMin; int Temp; while (K < N-1) {T Min = M[K]; PosMin = K; for (int Pos = K+1; Pos < N; Pos++) if (Min > M[Pos]) {Min = M[Pos]; PosMin = Pos } [1] [2] [3] K++;}return;} Chọn câu lệnh thích hợp để đưa vào [1], [2], [3] với mục tiêu hoán vị M[K] M[PosMin] A.Temp = M[K] ; Temp = M[PosMin]; M[PosMin] = Temp; B.M[K] = Temp; M[K] = M[PosMin]; M[PosMin] = Temp ; C.Temp = M[K] ; M[PosMin] = M[K]; M[PosMin] = Temp ; D.Temp = M[K] ; M[K] = M[PosMin]; M[PosMin] = Temp ; Câu 10 Cho bước thuật toán dãy xếp dãy a1, a2,…, an theo thứ tự tăng dần sau : Bước 1: i = 1; Bước 2:đặt x = A[i]; j = i – 1; Bước 3: while (j >= 0) && (x < A[j]) A[j + 1] = A[j]; j––; Bước 4: đặt A[j + 1] = x ; i++;Bước 5: i < = n – lặp lại bước ngược lại kết thúc Bạn cho biết thuật toán xếp nào? A.Chọn trực tiếp – Selection sort B.Chèn trực tiếp – Insertion sort C.Nổi bọt – Bubble sort D.Quick sort Câu Hỏi 11.Bạn cho biết độ phức tạp việc xếp tăng dần dãy số thuật toán Heap sort trường hợp tồi với n số phần tử dãy A.O(n3) B.O(n2) C.O(nlog2n) D.Không biết trước, tùy vào tình trạng dãy ban đầu Câu Hỏi 12 Cho bước thuật toán dãy xếp dãy a1, a2,…, an theo thứ tự tăng dần theo thuật toán Insertion sort sau : Bước 1: i = 1;Bước 2:đặtx = A[i]; j = i – 1;Bước 3: while (j >= 0) && (x < A[j]) A[j + 1] = A[j]; j––;Bước 4: đặt A[j + 1] = x ; i++;Bước 5: i < = n – lặp lại bước ngược lại kết thúc Trường hợp tốt nhất, dãy phần tử cần xếp có thứ tự tăng: A.Số phép so sánh: Sso sánh = 2n – B.Số phép so sánh: Sso sánh = n – C.Số phép so sánh: Sso sánh = n(n – 1) D.Số phép so sánh: Sso sánh = n(n−1)2n(n-1)2 Câu Hỏi 13;Thủ tục mơ tả thuật tốn xếp chọn (Selection Sort): void SapXepChon (T M[], int N) { int K = 0, PosMin; int Temp;while (K < N-1) {T Min = M[K];PosMin = K; for (int Pos = K+1; Pos < N; Pos++)if (Min > M[Pos]) {Min = M[Pos]; PosMin = Pos } [1] [2] [3]K++; }return;}Chọn câu lệnh thích hợp để đưa vào [1], [2], [3] với mục tiêu hoán vị M[K] M[PosMin] A.Temp = M[K] ; Temp = M[PosMin]; M[PosMin] = Temp; B.M[K] = Temp; M[K] = M[PosMin]; M[PosMin] = Temp ; C.Temp = M[K] ; M[PosMin] = M[K]; M[PosMin] = Temp ; D.Temp = M[K] ; M[K] = M[PosMin]; M[PosMin] = Temp ; Câu Hỏi 14Theo thuật toán Quick sort, nguyên tắc điều kiện sau dùng để chọn khóa chốt? A.Là phần tử có giá trị lớn B.Là phần tử có giá trị nhỏ C.Ln vị trí dãy D.Chọn ngẫu nhiên Câu Hỏi 15 Bạn cho biết độ phức tạp việc xếp tăng dần dãy số thuật toán chèn trực tiếp trường hợp dãy tăng với n số phần tử dãy? A O(n2) B.O(n) C.O(lg n) D.O(2n) Câu 17 Trường hợp tốt nhất, dãy phần tử cần xếp có thứ tự tăng dần: A.Số phép gán: Sgán = 2n – B.Số phép gán: Sgán = (n−1)*(n+6)2(n-1)*(n+6)2 C.Số phép gán: Sgán = D.Số phép gán: Sgán = 2n(n−1)22n(n-1)2 Câu Hỏi 18Bạn cho biết độ phức tạp việc xếp tăng dần dãy số thuật toán Heap sort trường hợp tồi với n số phần tử dãy A.O(n3) B.O(n2) C.O(nlog2n) D.Khơng biết trước, tùy vào tình trạng dãy ban đầu Câu Hỏi `19 Cho bước thuật toán dãy xếp dãy a1, a2,…, an theo thứ tự tăng dần sau : Bước 1: i = 1; Bước 2:đặt x = A[i];j = i – 1;Bước 3: while (j >= 0) && (x < A[j])A[j + 1] = A[j]; j––;Bước 4: đặt A[j + 1] = x ; i++;Bước 5: i < = n – lặp lại bước ngược lại kết thúc Bạn cho biết thuật toán xếp nào? A.Chọn trực tiếp – Selection sort B.Chèn trực tiếp – Insertion sort C.Nổi bọt – Bubble sort D.Quick sort Câu Hỏi 20.Toán tử thực phép chia lấy phần dư? a./ b.// c.%% d.% Câu Hỏi 21.Cho dãy số gồm 10 phần tử: 13, 71, 14, 101, 115, 111, 12, 91, 31, 81 Ta chia dãy thành dãy khơng giảm? A.3 B.4 C.5 D.6 Câu Hỏi 22.Tên thuật tốn xếp mà tư tưởng phân hoạch dãy ban đầu thành dãy có vị trí tương phần tử dãy? A.Bubble sort B.Quick sort C.Merge sort D.Heap sort Câu Hỏi 23.Theo thuật toán Merge sort, lần phân hoạch số phân hoạch theo phương pháp trộn trực tiếp so với số phân hoạch theo phương pháp trộn tự nhiên là? A.Bằng B.Lớn C.Nhỏ D.Không biết trước, tùy vào tình trạng dãy ban đầu Câu Hỏi 24 Bạn cho biết độ phức tạp việc xếp tăng dần dãy số thuật toán Quick sort trường hợp tồi với n số phần tử dãy A.O(n2) B.O(n) C.O(n.lgn) D.O(2n) Câu Hỏi 25 Cho dãy số A[ ] gồm phần tử: 3, 7, 4, 1, 2, Dùng thuật toán Quick sort để xếp tăng dãy trên, lần phân hoạch với khóa chốt phần tử x=A[3]=4, đâu cặp giá trị hoán vị đầu tiên? A.3, B.7, C.7, D.3, ...C.ARRAY D.STRING Đáp án là: POINTER Câu Hỏi 8Chọn định nghĩa cho từ Giải thuật? A.Là giải thích thuật ngữ tin học B.Là cách biểu diễn cấu trúc liệu dạng giả mã, ngôn ngữ tự nhiên,... thuộc kiểu liệu Câu:3 Kiểu liệu thuộc loại kiểu liệu bản? A.RECORD B.POINTER C.ARRAY D.STRING Đáp án là: POINTER Câu Chọn định nghĩa cho từ Giải thuật? A.Là giải thích thuật ngữ tin học B.Là cách... phép so sánh: Sso sánh = 2n – B.Số phép so sánh: Sso sánh = n – C.Số phép so sánh: Sso sánh = n(n – 1) D.Số phép so sánh: Sso sánh = n(n−1)2n(n-1)2 Câu Hỏi 13;Thủ tục mô tả thuật toán xếp chọn