wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Câu hỏi về Thuật toán và Cấu trúc dữ liệu

Total questions: 132

Worksheet time: 1hrs 14mins

Name
Class
Date
1.

Quá trình giải quyết bài toán được thực hiện bằng việc chia bài toán lớn thành các bài toán nhỏ hơn để giải quyết, được áp dụng theo chiến lược nào sau đây?

a)

Phân đoạn

b)

Chia để trị

c)

Đệ quy

d)

Tìm kiếm nhị phân

2.

Loại danh sách nào là tốt nhất để chọn cài đặt khi tìm kiếm phần tử thứ n trong danh sách?

a)

Danh sách liên kết

b)

Danh sách đặc

c)

Danh sách liên kết kép

d)

Ngăn xếp

3.

Lý thuyết thuật toán quan tâm điều gì?

a)

Giải được bằng thuật toán

b)

Tối ưu hóa

c)

Triển khai thuật toán

d)

Cả ba câu trên đều đúng

4.

Bậc của cây là gì?

a)

Số nút con của nút gốc

b)

Bậc lớn nhất của các nút trong cây

c)

Số mức của cây

d)

Số nút lá

5.

Bài toán tháp Hà Nội được phát biểu như sau: Input có 3 cọc và n cái đĩa xếp tại cọc 1. Output: chỉ ra các bước thực hiện di chuyển n cái đĩa từ cọc 1 sang cọc 3. Nên sử dụng giải thuật đệ quy, chỉ ra trường hợp gọi đệ quy?

a)

n = 0

b)

n = 1

c)

n > 1

d)

n < 1

6.

Bằng cách chạy thử 1 thuật toán với 1 bộ dữ liệu, ta có thể khẳng định điều gì?

a)

Thuật toán đúng nếu cho kết quả đúng

b)

Thuật toán sai nếu cho kết quả sai

c)

Thuật toán luôn đúng

d)

Thuật toán luôn sai

7.

Biểu diễn công thức (n - 2)*(n - 4) sử dụng ký hiệu O để biểu diễn độ phức tạp là gì?

a)

O(n)

b)

O(n²)

c)

O(n log n)

d)

Cả ba câu trên đều sai

8.

Biểu diễn dữ liệu trong bộ nhớ được biết đến với khái niệm là gì?

a)

Cấu trúc dữ liệu

b)

Cấu trúc lưu trữ

c)

Thuật toán

d)

Danh sách liên kết

9.

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

4 lines
10.

biết đến với khái niệm là gì?

a)

Cấu trúc dữ liệu

b)

Cấu trúc lưu trữ

c)

Thuật toán

d)

Danh sách liên kết

11.

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

a)

Các kiểu dữ liệu mà người lập trình được cung cấp sẵn từ ngôn ngữ lập trình

b)

Các kiểu dữ liệu do người lập trình tự định nghĩa

c)

Các kiểu dữ liệu chỉ dùng cho cấu trúc liên kết

d)

Các kiểu dữ liệu chỉ dùng trong thuật toán

12.

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

a)

Sử dụng ngăn xếp để lưu trữ danh sách

b)

Dùng một mảng để lưu trữ liên tiếp các phần tử của danh sách bắt đầu từ vị trí đầu tiên của mảng

c)

Sử dụng danh sách liên kết để lưu trữ mảng

d)

Lưu trữ các phần tử không liên tiếp trong bộ nhớ

13.

Cấu trúc dữ liệu dùng để tìm kiếm theo chiều rộng (BFS) trong đồ thị là gì?

a)

Ngăn xếp

b)

Hàng đợi

c)

Mảng

d)

Danh sách liên kết

14.

Cấu trúc dữ liệu dùng để tìm kiếm theo chiều sâu (DFS) trong đồ thị là gì?

a)

Ngăn xếp

b)

Hàng đợi

c)

Mảng

d)

Danh sách liên kết

15.

Cấu trúc dữ liệu được dùng trong thuật toán đệ quy là gì?

a)

Mảng

b)

Ngăn xếp

c)

Hàng đợi

d)

Danh sách liên kết

16.

Cấu trúc dữ liệu hàng đợi (Queue) hoạt động theo cơ chế nào?

a)

LIFO

b)

FIFO

c)

Random

d)

Priority

17.

Cấu trúc dữ liệu là:

a)

Cách lưu trữ dữ liệu trong bộ nhớ truy cập ngẫu nhiên (RAM), sao cho nó có thể được sử dụng một cách hiệu quả

b)

Một tập hợp các phần tử không liên kết với nhau

c)

Một kiểu dữ liệu cơ bản

d)

Một thuật toán tìm kiếm

18.

Cấu trúc dữ liệu mảng có các ưu điểm nào?

a)

Truy cập nhanh

b)

Lưu trữ liên tiếp trong bộ nhớ

c)

Dễ dàng thực hiện các phép toán cơ bản

d)

Cả ba câu trên đều đúng

19.

Cấu trúc dữ liệu nào thích hợp cho thao tác theo cơ chế FIFO (vào trước ra trước)?

a)

Ngăn xếp

b)

Hàng đợi

c)

Mảng

d)

Danh sách liên kết

20.

Cấu trúc dữ liệu nào thích hợp cho thao tác theo cơ chế LIFO (vào sau ra trước)?

a)

Ngăn xếp

b)

Hàng đợi

c)

Mảng

d)

Danh sách liên kết

21.

Cấu trúc dữ liệu ngăn xếp (Stack) hoạt động theo cơ chế nào?

a)

FIFO

b)

LIFO

c)

Random

d)

Priority

22.

Cây nhị phân có mức bằng bao nhiêu?

a)

Không xác định

b)

Bằng số nút

c)

Bằng chiều cao cây

d)

Bằng số nút lá

23.

Cây nhị phân khác rỗng là cây như thế nào?

a)

Mỗi nút có không quá 2 nút con

b)

Mỗi nút có đúng 2 nút con

c)

Mỗi nút có ít nhất 2 nút con

d)

Cây không có nút con

24.

Cây nhị phân là cây có bậc mấy?

a)

1

b)

2

c)

3

d)

Cả ba câu trên đều sai

25.

Chỉ ra khái niệm có tính chất đệ quy:

a)

Tính giai thừa của n (n!)

b)

Tính tổng các số từ 1 đến n

c)

Tính bình phương của n

d)

Tính giá trị tuyệt đối

26.

Chỉ ra kiểu dữ liệu cơ bản:

a)

Struct

b)

Float

c)

Array

d)

Pointer

27.

Chỉ ra kiểu dữ liệu cơ bản:

a)

Struct

b)

Float

c)

Array

d)

Pointer

28.

Chiều cao của cây là gì?

a)

Số nút trong cây

b)

Mức lớn nhất của nút lá

c)

Số nút con của nút gốc

d)

Số nhánh trong cây

29.

Chiều cao của một cây nhị phân có n nút là bao nhiêu?

a)

log₂n

b)

Tối thiểu là log₂n

c)

log₂(n + 1)

d)

Không xác định

30.

Chiều cao của một cây nhị phân hoàn chỉnh có n nút là bao nhiêu?

a)

log₂n

b)

log₂(n + 1)

c)

n

d)

n - 1

31.

Cho bài toán có thể giải bằng thuật toán đệ quy hoặc thuật toán lập. Cả hai thuật toán đều có độ phức tạp là O(n). Trong trường hợp này tại sao nên chọn thuật toán lập?

a)

Thuật toán lập nhanh hơn

b)

Thuật toán lập ít gây ra lỗi hơn

c)

Thuật toán lập tốn ít bộ nhớ hơn

d)

Thuật toán lập dễ cài đặt hơn

32.

Cho bài toán: cho trước n là một số tự nhiên, tính n!. Chỉ ra trường hợp suy biến (chọn câu đúng nhất)?

a)

n = 0 hoặc n = 1

b)

n > 1

c)

n < 0

d)

n = 2

33.

Cho bài toán: cho trước n là một số tự nhiên, tính n!. Chỉ ra trường hợp gọi đệ quy?

a)

n = 0

b)

n = 1

c)

n > 1

d)

n < 1

34.

Cho biết dạng đệ quy nào sau đây không phải là đệ quy trực tiếp?

a)

Đệ quy tuyến tính

b)

Đệ quy nhị phân

c)

Đệ quy tương hỗ

d)

Đệ quy phi tuyến

35.

Cho biết độ phức tạp của đoạn chương trình sau: Sum = 0; for(j = 0; j < n; j++) { for(k = 0; k < n*n; k++) sum++; }

a)

O(n)

b)

O(n²)

c)

O(n³)

d)

O(n log n)

36.

Cho biết độ phức tạp của đoạn chương trình sau: Sum = 0; for(j = 0; j < n; j++) { for(k = 0; k < n*n; k++) sum++; }

a)

O(n)

b)

O(n²)

c)

O(n³)

d)

O(n log n)

37.

Cho biết độ phức tạp của đoạn lệnh sau: a = 0; for(int i = 0; i < n*n; i++) s += i;

a)

O(n)

b)

O(n²)

c)

O(n³)

d)

O(n log n)

38.

Cho biết đường đi từ nút gốc đến nút I có độ dài bằng bao nhiêu?

a)

2

b)

3

c)

4

d)

5

39.

Cho biết bậc của cây này là bao nhiêu?

a)

2

b)

3

c)

4

d)

5

40.

Cho biết bậc của nút c là bao nhiêu?

a)

1

b)

2

c)

3

d)

4

41.

Cho biết mức của nút g là bao nhiêu?

a)

2

b)

3

c)

4

d)

5

42.

Cho biết độ dài đường đi từ gốc đến nút k là bao nhiêu?

a)

2

b)

3

c)

4

d)

5

43.

Cho biết bậc của nút g là bao nhiêu?

a)

1

b)

2

c)

3

d)

4

44.

Cho biết đây là cây gì?

a)

Cây nhị phân

b)

Cây nhị phân tìm kiếm

c)

Cây nhị phân hoàn chỉnh

d)

Cây nhị phân đầy đủ

45.

Cho cây nhị phân T có chiều cao là 6. Số nút tối đa có trên cây là bao nhiêu?

a)

31

b)

63

c)

127

d)

255

46.

Cho cây nhị phân T. Số nút tối đa ở mức 7 là bao nhiêu?

a)

32

b)

64

c)

128

d)

256

47.

a có trên cây là bao nhiêu?

a)

31

b)

63

c)

127

d)

255

48.

Số nút tối đa ở mức 7. Cho cây nhị phân T. Số nút tối đa ở mức 7 là bao nhiêu?

a)

32

b)

64

c)

128

d)

256

49.

Số phép so sánh trong trường hợp xấu nhất. Cho cây nhị phân tìm kiếm được tạo từ dãy số sau: 42, 23, 74, 11, 65, 58, 94, 36. Để tìm một khóa có tồn tại trên cây hay không trong trường hợp xấu nhất cần bao nhiêu phép so sánh?

a)

3

b)

4

c)

5

d)

6

50.

Khóa trên cây con phải. Cho cây nhị phân tìm kiếm được tạo từ dãy số sau: 42, 23, 74, 11, 65, 58, 94, 36. Khóa nào nằm trên cây con phải?

a)

11, 23, 36

b)

74, 65, 58, 94

c)

42, 23, 11

d)

36, 58, 94

51.

Số phép so sánh để tìm khóa 105. Cho cây nhị phân tìm kiếm được tạo từ dãy số sau: 42, 23, 74, 11, 65, 58, 94. Để tìm khóa 105 có tồn tại trên cây hay không cần bao nhiêu phép so sánh?

a)

2

b)

3

c)

4

d)

5

52.

Số phép so sánh để tìm khóa 60. Cho cây nhị phân tìm kiếm được tạo từ dãy số sau: 42, 23, 74, 11, 65, 58, 94, 36. Để tìm khóa 60 có tồn tại trên cây hay không cần bao nhiêu phép so sánh?

a)

3

b)

4

c)

5

d)

6

53.

Số nút của cây con trái. Cho cây nhị phân tìm kiếm được tạo từ dãy số sau: 42, 23, 74, 11, 65, 58, 94, 36. Cây con trái có mấy nút?

a)

2

b)

3

c)

4

d)

5

54.

Duyệt cây theo thứ tự RLN. Cho cây nhị phân tìm kiếm được tạo từ dãy số sau: 81, 69, 35, 49, 80, 91, 41, 44, 93, 51. Cho biết thứ tự duyệt cây theo thứ tự RLN là dãy số nào sau đây?

a)

93, 91, 80, 51, 44, 41, 49, 35, 69, 81

b)

81, 91, 93, 69, 80, 35, 49, 51, 44, 41

c)

35, 41, 44, 49, 51, 69, 80, 81, 91, 93

d)

93, 91, 80, 51, 44, 41, 49, 35, 69, 81

55.

Duyệt cây theo thứ tự NRL. Cho cây nhị phân tìm kiếm được tạo từ dãy số sau: 81, 69, 35, 49, 80, 91, 41, 44, 93, 51. Cho biết thứ tự duyệt cây theo thứ tự NRL là dãy số nào sau đây?

4 lines
56.

Cho cây nhị phân tìm kiếm được tạo từ dãy số sau: 81, 69, 35, 49, 80, 91, 41, 44, 93, 51. Cho biết thứ tự duyệt cây theo thứ tự NRL là dãy số nào sau đây?

a)

81, 91, 93, 69, 80, 35, 49, 51, 44, 41

b)

93, 91, 80, 51, 44, 41, 49, 35, 69, 81

c)

35, 41, 44, 49, 51, 69, 80, 81, 91, 93

d)

81, 69, 35, 49, 80, 91, 93, 51, 44, 41

57.

Cho cây nhị phân tìm kiếm được tạo từ dãy số sau: 69, 49, 81, 80, 91, 41, 44, 93, 51, 35. Sau khi xóa nút có giá trị 69, cây được biểu diễn bằng danh sách nào sau đây?

a)

51(49(41(35, 44)), 81(80, 91(93)))

b)

49(41(35, 44), 81(80, 91(93)))

c)

81(49(41(35, 44)), 91(93))

d)

51(49(41(35, 44)), 80(91(93)))

58.

Cho cây nhị phân tìm kiếm được tạo từ dãy: 67, 38, 25, 88, 59, 32, 11, 28, 42, 89. Sau khi xóa nút có giá trị 25, cây được biểu diễn bằng cách nào sau đây?

a)

67(38(28(11, 32), 59(42)), 88(89))

b)

67(38(11, 32), 59(42, 88(89)))

c)

67(38(28(11, 32)), 59(42, 88(89)))

d)

67(38(11, 32), 59(42, 88))

59.

Cho cây nhị phân, phép duyệt theo thứ tự giữa (LNR) cho kết quả là một dãy tăng dần. Cây nhị phân đó là loại cây nhị phân nào?

a)

Cây nhị phân

b)

Cây nhị phân tìm kiếm

c)

Cây nhị phân hoàn chỉnh

d)

Cây nhị phân đầy đủ

60.

Cho công thức đệ quy: Ack(m, n) = n + 1 nếu m = 0 Ack(m, n) = Ack(m - 1, 1) nếu n = 0 Ack(m, n) = Ack(m - 1, Ack(m, n - 1)) trong các trường hợp còn lại. Cho biết giá trị của Ack(1, 2) là gì?

a)

3

b)

4

c)

5

d)

Cả ba câu trên đều sai

61.

Cho công thức đệ quy: F(1) = 1; F(2) = 1; F(n) = F(n - 1) + F(n - 2) với n > 2. Kết quả F(9) là gì?

a)

21

b)

34

c)

55

d)

89

62.

Kết quả F(9) là gì?

a)

21

b)

34

c)

55

d)

89

63.

Kết quả F(6) là gì?

a)

10

b)

12

c)

15

d)

18

64.

Kết quả F(6) là gì?

a)

12

b)

15

c)

18

d)

21

65.

Kết quả F(4) là gì?

a)

6

b)

12

c)

24

d)

48

66.

Kết quả F(5) là gì?

a)

10

b)

12

c)

16

d)

20

67.

Phần tử ở vị trí nào được so sánh với X trong lần so sánh đầu tiên của thuật toán (vị trí đầu dãy là 0)?

a)

4

b)

5

c)

6

d)

7

68.

Nếu ta muốn tìm kiếm trong K xem có khóa X không và dùng phương pháp nhị phân thì đầu tiên ta so sánh X với khóa k thứ mấy?

a)

5

b)

6

c)

7

d)

8

69.

Sau khi tìm được x trong dãy, chỉ số i là bao nhiêu?

a)

1

b)

2

c)

3

d)

4

70.

Sau mất bước sẽ tìm được x trong dãy?

a)

2

b)

3

c)

4

d)

5

71.

x = 9. Sau mất bước sẽ tìm được x trong dãy?

a)

2

b)

3

c)

4

d)

5

72.

Sắp xếp nổi bọt (Bubble Sort) Cho dãy số {4, 7, 0, 9, 2, 5, 3, 1, 8, 6}. Áp dụng phương pháp sắp xếp nổi bọt (Bubble Sort), sau lần lặp đầu tiên của giải thuật ta có kết quả:

a)

{0, 4, 7, 1, 2, 5, 3, 6, 8, 9}

b)

{4, 7, 0, 2, 5, 3, 1, 8, 6, 9}

c)

{4, 7, 1, 9, 2, 5, 3, 6, 8, 0}

d)

{0, 4, 7, 9, 2, 5, 3, 1, 6, 8}

73.

Sắp xếp chèn (Insertion Sort) Cho dãy số a[] = {7, 6, 9, 20, 3, 5, 2}, kết quả thuật toán sắp xếp chèn để sắp xếp dãy số đã cho thành dãy tăng dần, sau 4 vòng lặp thì dãy số ban đầu sẽ thay đổi thành dãy số nào sau đây?

a)

{3, 6, 7, 9, 20, 5, 2}

b)

{6, 7, 9, 20, 3, 5, 2}

c)

{3, 6, 7, 9, 5, 20, 2}

d)

{3, 6, 7, 9, 2, 5, 20}

74.

QuickSort với khóa 63 Cho dãy số a[] = {29, 40, 63, 54, 17}, trong thuật toán sắp xếp QuickSort để sắp xếp dãy tăng dần, chọn phần tử có giá trị bằng 63 làm khóa, sau khi thực hiện vòng lặp do...while ở lượt đầu tiên thì phần tử 63 đứng ở vị trí thứ mấy trong dãy?

a)

2

b)

3

c)

4

d)

5

75.

Bubble Sort sau 1 bước Cho dãy số a[] = {49, 37, 19, 29, 8}, thuật toán sắp xếp nổi bọt (Bubble Sort) sắp xếp dãy số đã cho thành dãy tăng dần, sau 1 bước thực hiện từ cuối dãy về đầu dãy, vị trí các phần tử trong dãy đã cho sẽ thay đổi như thế nào?

a)

{8, 19, 49, 37, 29}

b)

{19, 37, 49, 8, 29}

c)

{8, 19, 37, 49, 29}

d)

{8, 19, 37, 29, 49}

76.

Bubble Sort sau 1 thao tác Cho dãy số a[] = {100, 3, 60, 35, 2}, thuật toán sắp xếp nổi bọt (Bubble Sort) để sắp xếp dãy số đã cho thành dãy tăng dần, sau 1 thao tác đầu tiên so sánh giá trị thì phần tử 35 sẽ nằm ở vị trí thứ mấy trong dãy (chỉ số của phần tử đầu tiên là 0)?

a)

2

b)

3

c)

4

d)

5

77.

Bubble Sort sau 3 lượt so sánh Cho dãy số a[] = {100, 3, 60, 35, 2}, thuật toán sắp xếp nổi bọt (Bubble Sort) để sắp xếp dãy số

4 lines
78.

số của phần tử đầu tiên là 0)?

a)

2

b)

3

c)

4

d)

5

79.

Bubble Sort sau 3 lượt so sánh Cho dãy số a[] = {100, 3, 60, 35, 2}, thuật toán sắp xếp nổi bọt (Bubble Sort) để sắp xếp dãy số đã cho thành dãy tăng dần, sau 3 lượt so sánh giá trị thì dãy đã cho sẽ thay đổi như thế nào?

a)

{2, 3, 60, 35, 100}

b)

{100, 2, 3, 60, 35}

c)

{3, 60, 35, 2, 100}

d)

{2, 3, 35, 60, 100}

80.

Selection Sort sau 5 lần so sánh Cho dãy số a[] = {100, 3, 60, 35, 2}, trong thuật toán sắp xếp chọn (Selection Sort), sau 5 lần so sánh giá trị của phần tử trong vòng lặp for thứ 2 (kết thúc vòng lặp for thứ 2) thì dãy đã cho ban đầu thay đổi như thế nào?

a)

{2, 3, 60, 35, 100}

b)

{3, 60, 35, 2, 100}

c)

{2, 3, 35, 60, 100}

d)

{3, 2, 60, 35, 100}

81.

QuickSort với khóa 60 Cho dãy số a[] = {100, 3, 60, 35, 2}, trong thuật toán sắp xếp nhanh (QuickSort), việc chọn phần tử có giá trị 60 làm khóa để sắp xếp dãy tăng dần, sau khi thực hiện lệnh do...while lần 1 thì các phần tử của dãy sẽ thay đổi như thế nào?

a)

{2, 3, 60, 35, 100}

b)

{3, 60, 35, 2, 100}

c)

{2, 3, 35, 60, 100}

d)

{3, 2, 60, 35, 100}

82.

Insertion Sort sau 4 bước Cho dãy số a[] = {42, 23, 74, 11, 65, 58}, kết quả thuật toán sắp xếp chèn để sắp xếp dãy số đã cho thành dãy tăng dần, sau 4 bước thực hiện thì dãy số ban đầu sẽ thay đổi thành dãy số nào sau đây?

a)

{11, 23, 42, 65, 74, 58}

b)

{11, 23, 42, 58, 65, 74}

c)

{23, 42, 74, 11, 65, 58}

d)

{11, 23, 74, 42, 65, 58}

83.

Insertion Sort sau 2 bước Cho dãy số a[] = {42, 23, 74, 11, 65, 58}, thuật toán sắp xếp chèn (Insertion Sort) để sắp xếp dãy số tăng dần, sau 2 bước thực hiện thì dãy ban đầu sẽ thay đổi thành dãy số nào sau đây?

a)

{11, 23, 74, 42, 65, 58}

b)

{23, 42, 74, 11, 65, 58}

c)

{42, 23, 74, 11, 65, 58}

d)

{11, 23, 42, 74, 65, 58}

84.

dãy ban đầu sẽ thay đổi thành dãy số nào sau đây?

a)

{11, 23, 74, 42, 65, 58}

b)

{23, 42, 74, 11, 65, 58}

c)

{42, 23, 74, 11, 65, 58}

d)

{11, 23, 42, 74, 65, 58}

85.

Cho dãy số a[] = {42, 23, 74, 11, 65, 58}, với thuật toán sắp xếp chèn (Insertion Sort) để có dãy tăng dần, sau 4 bước thực hiện so sánh thì kết quả sẽ là dãy số nào sau đây?

a)

{11, 23, 42, 58, 65, 74}

b)

{11, 23, 42, 65, 74, 58}

c)

{23, 42, 74, 11, 65, 58}

d)

{11, 23, 74, 42, 65, 58}

86.

Cho dãy số a[] = {42, 23, 74, 11, 65, 58, 94, 36, 99, 87}, kết quả thuật toán sắp xếp Bubble Sort để sắp xếp dãy tăng dần, sau khi thực hiện bước 1 so sánh thì giá trị của 3 phần tử cuối của dãy là những số nào sau đây?

a)

94, 87, 99

b)

87, 94, 99

c)

99, 94, 87

d)

36, 94, 99

87.

Cho dãy số a[] = {56, 94, 90, 11, 49}, thuật toán sắp xếp chèn (Insertion Sort) để sắp xếp dãy số đã cho thành dãy tăng dần, sau 1 bước thực hiện (chỉ số i = 1), thứ tự của các phần tử trong dãy như thế nào?

a)

{56, 94, 90, 11, 49}

b)

{56, 90, 94, 11, 49}

c)

{94, 56, 90, 11, 49}

d)

{56, 11, 90, 94, 49}

88.

Cho dãy số a[] = {42, 23, 74, 11, 65, 58}, thuật toán sắp xếp chèn (Insertion Sort) để sắp xếp dãy số đã cho thành dãy tăng dần, sau 1 bước thực hiện, vị trí các phần tử trong dãy đã cho sẽ thay đổi như thế nào?

a)

{23, 42, 74, 11, 65, 58}

b)

{42, 23, 74, 11, 65, 58}

c)

{11, 42, 74, 23, 65, 58}

d)

{42, 11, 74, 23, 65, 58}

89.

Cho dãy số M: 5, 23, 4, 12, 32, 84, 71, 23, 29, 7. Dùng thuật toán sắp xếp chèn (Insertion Sort) để sắp xếp dãy được cho. Cần thực hiện bao nhiêu lần chèn các phần tử vào dãy để sắp xếp dãy M có thứ tự tăng dần?

a)

7

b)

8

c)

9

d)

10

90.

Dùng thuật toán sắp xếp chèn (Insertion Sort) để sắp xếp dãy được cho. Cần thực hiện bao nhiêu lần chèn các phần tử vào dãy để sắp xếp dãy M có thứ tự tăng dần?

a)

7

b)

8

c)

9

d)

10

91.

Tìm kiếm nhị phân trong dãy (lần phân hoạch thứ 2) Cho dãy số sau: {1, 5, 15, 19, 25, 27, 29, 31, 33, 45, 55, 88, 100}. Phần tử cần tìm là 19, trong lần phân hoạch thứ 2 thì dãy cần phân hoạch là:

a)

{15, 19, 25}

b)

{19, 25, 27}

c)

{5, 15, 19}

d)

{19, 25, 27, 29}

92.

Tìm kiếm nhị phân trong dãy (lần phân hoạch thứ 3) Cho dãy số sau: {1, 5, 15, 19, 25, 27, 29, 31, 33, 45, 55, 88, 100}. Phần tử cần tìm là 19, trong lần phân hoạch thứ 3 thì dãy cần phân hoạch là:

a)

{19}

b)

{19, 25}

c)

{15, 19}

d)

{19, 27}

93.

Tìm kiếm nhị phân trong dãy (dãy con tiếp theo) Cho dãy số sau: {1, 5, 15, 19, 25, 27, 29, 31, 33, 45, 55, 88, 100}. Phần tử cần tìm là 19, sau khi chọn phần giữa để phân hoạch thì dãy con nào sẽ được tìm tiếp theo?

a)

Dãy con từ 0 đến 5

b)

Dãy con từ 6 đến 12

c)

Dãy con từ 0 đến 6

d)

Dãy con từ 5 đến 12

94.

Độ phức tạp của BFS trên danh sách kề Cho đồ thị có n đỉnh và m cung, được lưu trữ trên danh sách kề. Độ phức tạp của thuật toán BFS là bao nhiêu?

a)

O(n)

b)

O(m)

c)

O(max(n, m))

d)

O(n²)

95.

Độ phức tạp của DFS trên danh sách kề Cho đồ thị có n đỉnh và m cung, được lưu trữ trên danh sách kề. Độ phức tạp của thuật toán DFS là bao nhiêu?

a)

O(n)

b)

O(m)

c)

O(max(n, m))

d)

O(n²)

96.

Độ phức tạp của DFS trên ma trận kề Cho đồ thị có n đỉnh và m cung, được lưu trữ trên ma trận kề. Độ phức tạp của thuật toán DFS là bao nhiêu?

a)

O(n)

b)

O(m)

c)

O(n²)

d)

O(max(n, m))

97.

Độ phức tạp của BFS trên ma trận kề Cho đồ thị có n đỉnh và m cung, được lưu trữ trên ma trận kề. Độ phức tạp của thuật toán BFS là bao nhiêu?

a)

O(n)

b)

O(m)

c)

O(n²)

d)

O(max(n, m))

98.

Độ phức tạp của BFS trên ma trận kề Cho đồ thị có n đỉnh và m cung, được lưu trữ trên ma trận kề. Độ phức tạp của thuật toán BFS là bao nhiêu?

a)

O(n)

b)

O(m)

c)

O(n²)

d)

O(max(n, m))

99.

Ma trận kề của đồ thị Cho đồ thị G có n đỉnh. Để biểu diễn đồ thị G bằng ma trận kề thì ma trận đó phải có điều kiện nào?

a)

n hàng và n cột

b)

n hàng và m cột

c)

m hàng và n cột

d)

m hàng và m cột

100.

Hàm đệ quy wow(8) Cho hàm đệ quy sau: public void wow(int n) { if (n > 1) { printf("%d", n % 2); wow(n / 2); } else { printf("%d", n % 2); } } Khi gọi wow(8), kết quả in ra màn hình là gì?

a)

0 0 0 1

b)

1 0 0 0

c)

0 0 1 0

d)

1 0 0 1

101.

Hàm đệ quy wow(16) Cho hàm đệ quy sau: public void wow(int n) { if (n > 1) { wow(n / 2); printf("%d ", n); } else { printf("%d ", n); } } Khi gọi wow(16), kết quả in ra màn hình là gì?

a)

1 2 4 8 16

b)

16 8 4 2 1

c)

1 4 8 16

d)

1 2 8 16

102.

Loại đệ quy của hàm CR Cho hàm đệ quy sau: int CR(int n, int k) { if (k == 0 || k == n) return 1; return CR(n - 1, k - 1) + CR(n - 1, k); } Cho biết hàm đệ quy trên thuộc loại đệ quy nào?

a)

Đệ quy tuyến tính

b)

Đệ quy nhị phân

c)

Đệ quy tương hỗ

d)

Đệ quy phi tuyến

103.

Độ phức tạp của hàm F Cho hàm F được cài đặt như sau: int F(int n) { if (n <= 1) return 1; else return n * F(n - 1); } Độ phức tạp của thuật toán của hàm F là bao nhiêu?

a)

O(1)

b)

O(n)

c)

O(n²)

d)

O(log n)

104.

Kết quả của hàm F(7) Cho hàm được cài đặt như sau: int F(int n) { if (n < 2) return 1; else return F(n - 1) + F(n - 2); } Kết quả của F(7) là gì?

a)

13

b)

21

c)

34

d)

55

105.

Kết quả của F(7) là gì?

a)

A. 13

b)

B. 21

c)

C. 34

d)

D. 55

106.

Cho biết độ phức tạp của thuật toán trên là bao nhiêu?

a)

A. O(n)

b)

B. O(log n)

c)

C. O(n²)

d)

D. O(n log n)

107.

Chọn lệnh điền vào vị trí dấu ...:

a)

A. return n + gthua(n - 1);

b)

B. return n * gthua(n - 1);

c)

C. return gthua(n - 1);

d)

D. return n / gthua(n - 1);

108.

Để lấy ra phần tử thứ 5 trong Stack ta phải làm thế nào?

a)

A. POP(12)

b)

B. POP(25)

c)

C. PUSH(25)

d)

D. POP(5)

109.

Chọn câu đúng nhất để mô tả thuật toán sắp xếp nổi bọt (Bubble Sort) trên mảng M có N phần tử:

a)

A. Đi từ đầu mảng đến cuối mảng, đổi chỗ các phần tử nếu phần tử trước lớn hơn phần tử sau.

b)

B. Đi từ cuối mảng về đầu mảng, trong quá trình đi nếu phần tử ở dưới (đứng phía sau) nhỏ hơn phần tử đứng ngay trên (trước) nó thì hai phần tử này sẽ được đổi chỗ cho nhau. Sau mỗi lần đi chúng ta đưa được một phần tử trồi lên đúng chỗ. Sau N-1 lần đi thì tất cả các phần tử trong mảng M sẽ có thứ tự tăng.

c)

C. Chọn phần tử nhỏ nhất trong mảng và đặt vào vị trí đầu tiên.

d)

D. Chia mảng thành hai phần và sắp xếp từng phần riêng lẻ.

110.

Chọn phát biểu đúng: Một đối tượng được gọi là đệ quy, nếu nó được mô tả thông qua định nghĩa của chính nó.

a)

Một đối tượng được gọi là đệ quy, nếu nó được mô tả thông qua định nghĩa của chính nó.

b)

Một đối tượng đệ quy không thể được định nghĩa qua chính nó.

c)

Một đối tượng đệ quy chỉ được định nghĩa qua các đối tượng khác.

d)

Một đối tượng đệ quy không cần định nghĩa.

111.

Chọn phát biểu đúng về độ dài của danh sách:

a)

Độ dài của danh sách là số phần tử của danh sách.

b)

Độ dài của danh sách là kích thước bộ nhớ được cấp phát.

c)

Độ dài của danh sách là số nút trong danh sách liên kết.

d)

Độ dài của danh sách là số phần tử tối đa có thể chứa.

112.

Chọn phát biểu đúng: Đối tượng đệ quy được định nghĩa bằng cách quy nạp từ những khái niệm đơn giản nhất cùng dạng với nó.

a)

Đối tượng đệ quy được định nghĩa bằng cách quy nạp từ những khái niệm đơn giản nhất cùng dạng với nó.

b)

Đối tượng đệ quy không thể được định nghĩa bằng quy nạp.

c)

Đối tượng đệ quy chỉ được định nghĩa qua các đối tượng khác.

d)

Đối tượng đệ quy không cần quy nạp.

113.

Chương trình có hai đoạn chương trình liên tiếp, có độ phức tạp lần lượt là O(n) và O(log n), độ phức tạp của chương trình là gì?

a)

O(n)

b)

O(log n)

c)

O(n + log n)

d)

O(n log n)

114.

Chương trình có hai đoạn lệnh lồng nhau, có độ phức tạp lần lượt là O(n) và O(log n), độ phức tạp của chương trình là gì?

a)

O(n)

b)

O(log n)

c)

O(n + log n)

d)

O(n log n)

115.

Độ phức tạp của chương trình là gì?

a)

O(n)

b)

O(log n)

c)

O(n + log n)

d)

O(n log n)

116.

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

a)

Cây nhị phân đầy đủ với tính chất giá trị của nút cha luôn lớn hơn giá trị hai nút con.

b)

Cây nhị phân đầy đủ với giá trị nút cha nhỏ hơn nút con.

c)

Cây nhị phân không có thứ tự.

d)

Danh sách liên kết kép.

117.

Có mấy cách để biểu diễn đồ thị?

a)

1

b)

2

c)

3

d)

4

118.

Có mấy cách duyệt đồ thị?

a)

1

b)

2

c)

3

d)

4

119.

Có mấy cách lưu trữ cây nhị phân?

a)

1

b)

2

c)

3

d)

4

120.

Có mấy phương pháp tìm kiếm trong mảng?

a)

1

b)

2

c)

3

d)

4

121.

Có mấy trường hợp xảy ra khi xóa một nút trên cây nhị phân tìm kiếm?

a)

1

b)

2

c)

3

d)

4

122.

Có mấy trường hợp xem xét khi đánh giá độ phức tạp thuật toán?

a)

Tốt nhất

b)

Xấu nhất

c)

Trung bình

d)

Cả ba trường hợp

123.

Cơ sở để lựa chọn thuật toán tốt, hoặc để cải tiến thuật toán là gì?

a)

Phân tích, đánh giá thuật toán

b)

Cài đặt thuật toán

c)

Kiểm tra thuật toán

d)

Tối ưu hóa mã nguồn

124.

Có thể khử đệ quy bằng phương pháp nào sau đây?

a)

Sử dụng vòng lặp

b)

Sử dụng ngăn xếp

c)

Cả hai đều đúng

d)

Không thể khử đệ quy

125.

Công cụ nào sau đây được dùng để diễn đạt thuật toán?

a)

Mã giả

b)

Lưu đồ

c)

Ngôn ngữ lập trình

d)

Cả ba câu

126.

Công cụ nào sau đây được dùng để diễn đạt thuật toán?

a)

Mã giả

b)

Lưu đồ

c)

Ngôn ngữ lập trình

d)

Cả ba câu trên đều đúng

127.

Đặc trưng nào sau đây không phải là ưu điểm của phương pháp đệ quy?

a)

Sáng sủa, dễ hiểu

b)

Nêu rõ bản chất vấn đề

c)

Tối ưu về mặt thời gian

d)

Dễ cài đặt

128.

Đánh giá độ phức tạp của giải thuật là việc xác định… và… mà giải thuật cần để thực hiện giải một bài toán.

a)

Thời gian, bộ nhớ

b)

Thời gian, độ chính xác

c)

Bộ nhớ, độ chính xác

d)

Độ phức tạp, độ tin cậy

129.

Danh sách đặc là danh sách có đặc tính gì?

a)

Các phần tử nằm ngẫu nhiên trong bộ nhớ

b)

Không gian lưu trữ các phần tử nằm liên tiếp trong bộ nhớ

c)

Các phần tử được liên kết qua con trỏ

d)

Danh sách chỉ chứa các phần tử số nguyên

130.

Danh sách liên kết được dùng để biểu diễn một dãy các phần tử: a1, a2, ..., an với n >= 0, nếu n = 0 ta có kết luận sau:

a)

Danh sách đầy

b)

Danh sách rỗng

c)

Danh sách đặc

d)

Danh sách liên kết kép

131.

Đâu là kiểu dữ liệu có cấu trúc?

a)

Float

b)

Int

c)

Struct

d)

Char

132.

Đâu là phương pháp biểu diễn đồ thị?

a)

Ma trận kề và danh sách

b)

Danh sách và ngăn xếp

c)

Hàng đợi và ma trận kề

d)

Ngăn xếp và hàng đợi