JavaScript is required
Danh sách đề

220 câu trắc nghiệm Cấu trúc dữ liệu và giải thuật có đáp án - Đề 3

50 câu hỏi 60 phút

Thẻ ghi nhớ
Luyện tập
Thi thử
Nhấn để lật thẻ
1 / 50

Đoạn mã giả dưới đây mô tả thuật toán gì?

Thuật toán:

B1: k = 1

B2: IF M[k] == X AND k != N

B2.1: k++

B2.2: Lặp lại B2

B3: IF k < N Thông báo tìm thấy tại vị trí k

B4: 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ỏ nhất của 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.

Cả a, b, c đều sai

Đáp án
Đáp án đúng: C
Đoạn mã giả mô tả thuật toán tìm kiếm tuyến tính một phần tử có giá trị X trong một mảng M gồm N phần tử. Thuật toán duyệt mảng từ đầu đến khi tìm thấy phần tử X hoặc duyệt hết mảng. Bước lặp (B2) tiếp tục tăng chỉ số k nếu M[k] bằng X và k chưa đạt đến cuối mảng (k != N). Nếu k < N sau khi kết thúc vòng lặp, tức là đã tìm thấy X tại vị trí k. Ngược lại, nếu k >= N, nghĩa là đã duyệt hết mảng mà không tìm thấy X. Do đó, đáp án đúng là tìm tuyến tính phần tử có giá trị X.

Danh sách câu hỏi:

Câu 1:

Đoạn mã giả dưới đây mô tả thuật toán gì?

Thuật toán:

B1: k = 1

B2: IF M[k] == X AND k != N

B2.1: k++

B2.2: Lặp lại B2

B3: IF k < N Thông báo tìm thấy tại vị trí k

B4: ELSE Không tìm thấy.

B5: Kết thúc

Lời giải:
Đáp án đúng: C
Đoạn mã giả mô tả thuật toán tìm kiếm tuyến tính một phần tử có giá trị X trong một mảng M gồm N phần tử. Thuật toán duyệt mảng từ đầu đến khi tìm thấy phần tử X hoặc duyệt hết mảng. Bước lặp (B2) tiếp tục tăng chỉ số k nếu M[k] bằng X và k chưa đạt đến cuối mảng (k != N). Nếu k < N sau khi kết thúc vòng lặp, tức là đã tìm thấy X tại vị trí k. Ngược lại, nếu k >= N, nghĩa là đã duyệt hết mảng mà không tìm thấy X. Do đó, đáp án đúng là tìm tuyến tính phần tử có giá trị X.
Lời giải:
Đáp án đúng: C
Đoạn code trên mô tả thuật toán sắp xếp nổi bọt (Bubble Sort). Vòng lặp `for` ở dòng [3] duyệt qua các phần tử từ đầu mảng đến gần cuối mảng. Vòng lặp bên trong (dòng [4] cần điền) sẽ so sánh các cặp phần tử liền kề và đổi chỗ nếu chúng không đúng thứ tự.

Để thuật toán hoạt động đúng, vòng lặp bên trong cần duyệt từ cuối mảng về vị trí `I`. Điều này đảm bảo rằng sau mỗi lần lặp của vòng ngoài, phần tử lớn nhất chưa được sắp xếp sẽ "nổi" lên vị trí đúng của nó ở cuối mảng.

Phương án 1: `for (int J = N-1; J > I; J++)` có vẻ đúng nhưng tăng J lên thay vì giảm J.

Phương án 2: `for (int J = N; J < I; J--)` sai vì điều kiện `J < I` không phù hợp, và `J` bắt đầu từ `N` (vượt quá chỉ số mảng).

Phương án 3: `for (int J = N-1; J > I; J--)` đúng vì nó bắt đầu từ cuối mảng (`N-1`), duyệt ngược về `I+1` (`J > I`), và giảm `J` mỗi lần lặp. Trong mỗi lần lặp của vòng ngoài, các phần tử từ `M[I+1]` đến `M[N-1]` đã được sắp xếp đúng vị trí. Vòng lặp này đảm bảo các cặp `M[J]` và `M[J-1]` được so sánh và hoán đổi nếu cần thiết, đẩy phần tử lớn nhất trong đoạn `M[I]` đến `M[N-1]` lên đúng vị trí.

Phương án 4: "Không có dòng lệnh nào phù hợp..." là sai, vì vòng lặp bên trong là cần thiết cho thuật toán hoạt động.

Vậy, phương án đúng là phương án 3.
Lời giải:
Đáp án đúng: D
Đề bài yêu cầu hoàn thiện đoạn code sắp xếp chọn trực tiếp bằng cách điền vào chỗ trống các câu lệnh hoán đổi giá trị của hai phần tử trong mảng. Thuật toán sắp xếp chọn trực tiếp tìm phần tử nhỏ nhất trong phần còn lại của mảng và hoán đổi nó với phần tử ở vị trí hiện tại. Để hoán đổi hai phần tử M[K] và M[PosMin], ta cần một biến tạm (Temp) để lưu giá trị của M[K], sau đó gán M[PosMin] cho M[K], và cuối cùng gán giá trị của Temp (giá trị ban đầu của M[K]) cho M[PosMin]. Phương án 4 thực hiện đúng các bước này.

Các phương án khác sai vì:
- Phương án 1 gán M[K] cho Temp, sau đó gán M[PosMin] cho Temp, vậy Temp chỉ giữ giá trị M[PosMin], và sau đó gán Temp cho M[PosMin], do đó M[K] không thay đổi.
- Phương án 2 gán M[K] cho Temp, sau đó gán M[PosMin] cho M[K]. Cuối cùng gán Temp cho M[PosMin]. Tuy nhiên, dòng M[K] = Temp; không đúng vì cần phải gán M[K] = M[PosMin]; trước.
- Phương án 3 gán M[K] cho Temp, sau đó gán M[K] cho M[PosMin]. Cuối cùng gán Temp cho M[PosMin]. Tuy nhiên, dòng M[PosMin] = M[K]; không đúng vì cần phải gán M[K] = M[PosMin]; trước.
Lời giải:
Đáp án đúng: C
Đoạn mã B8 trong thuật toán sắp xếp chèn trực tiếp (Straight Insertion Sort) được sử dụng để dời các phần tử đã được sắp xếp trong đoạn từ vị trí Pos đến vị trí K về phía sau một vị trí để tạo khoảng trống cho phần tử X (M[K+1]) được chèn vào đúng vị trí. Biến I được khởi tạo là K+1 và lặp giảm dần đến Pos. Do đó, B8 mô tả trường hợp "Nếu còn phải dời các phần tử từ Pos->K+1 về phía sau 1 vị trí".
Lời giải:
Đáp án đúng: D
Trong thuật toán sắp xếp chèn trực tiếp (Insertion Sort), ta duyệt qua mảng từ phần tử thứ hai đến hết. Với mỗi phần tử, ta chèn nó vào vị trí thích hợp trong dãy con đã được sắp xếp ở phía trước. Mảng M có N = 11 phần tử. Vì phần tử đầu tiên (11) được coi là dãy con đã được sắp xếp, nên ta cần chèn các phần tử còn lại vào dãy con này. Vậy số lần chèn cần thực hiện là N - 1 = 11 - 1 = 10.

Câu 6:

Tìm mô tả đúng cho hàm sau:

int SC (int M[], int Len, int CM[])

{ for (int i = 0; i < Len; i++)

CM[i] = M[i];

return (Len);

}

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 9:

Định nghĩa cấu trúc dữ liệu của danh sách liên kết đơn được mô tả như sau:

struct Node

{

int Key; Node *

NextNode;

} OneNode;

Trong đó, khai báo Node * NextNode; dùng để mô tả

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 13:

Nút có khóa nhỏ nhất trong cây nhị phân tìm kiếm khác rỗng là:

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 14:

Đồ thị G có n đỉnh và m cạnh với m, n thì ma trận kề của G luôn có dạng:

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 15:

Các kiểu dữ liệu cơ bản là:

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 24:

Hãy cho biết phương pháp nào sau đây để loại bỏ nút X trên cây nhị phân tìm kiếm, với X là một phần tử bất kỳ?

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 25:

Với dữ liệu đầu vào (n) đủ nhỏ, ta nên sử dụng phương pháp sắp xếp nào sau đây?

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 26:

Hãy cho biết phát biểu nào đúng nhất về Giải thuật đệ quy?

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 29:

Hãy cho biết ý tưởng nào sau đây nói về phương pháp sắp xếp chọn tăng dần (select sort)?

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 30:

Hãy cho biết ý tưởng nào sau đây nói về phương pháp sắp xếp nổi bọt (bubble sort)?

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 31:

Hãy cho biết ý tưởng nào sau đây nói về phương pháp sắp xếp chèn (insertion sort)?

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 33:

Giải thuật đệ quy là:

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 34:

Danh sách tuyến tính dạng ngăn xếp là:

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 35:

Cho dãy số sau: 40 25 75 15 65 55 90 30 95 85. Áp dụng phương pháp sắp xếp lựa chọn, sau lượt 1 dãy sẽ được sắp xếp lại như thế nào?

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 36:

Cho dãy số sau: 40 25 75 15 65 55 90 30 95 85. Áp dụng phương pháp sắp xếp lựa chọn, sau lượt 2 dãy sẽ được sắp xếp lại như thế nào?

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 37:

Chọn câu trả lời đúng nhất về thuật toán?

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 38:

Cài đặt danh sách bằng con trỏ có nghĩa là:

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 39:

Đối với biến con trỏ Hàm MaxAvail: Longint: có nghĩa là gì?

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 40:

Đối với biến con trỏ hàm Seg (x): Word có chức năng gì?

.

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 41:

Bước tổng quát của Phương pháp sắp xếp kiểu chèn (insertion sort):

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 44:

Trong số các phép toán sau đây, phép toán nào không được dùng đối với mảng:

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 50:

Cơ chế heap trong sắp xếp vun đống là:

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP