wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Câu hỏi ôn tập về cấu trúc dữ liệu, giải thuật và đệ quy

Total questions: 82

Worksheet time: 41mins

Name
Class
Date
1.

Mối quan hệ giữa cấu trúc dữ liệu và giải thuật có thể minh họa bằng đẳng thức:

a)

Cấu trúc dữ liệu + Giải thuật = Chương trình

b)

Cấu trúc dữ liệu + Chương trình = Giải thuật

c)

Chương trình + Giải thuật = Cấu trúc dữ liệu

d)

Cấu trúc dữ liệu = Chương trình

2.

Để đánh giá cấu trúc dữ liệu chúng ta dựa vào tiêu chí:

a)

Cấu trúc dữ liệu phải tiết kiệm bộ nhớ trong

b)

Cấu trúc dữ liệu phải phản ánh thực tế của bài toán

c)

Cấu trúc dữ liệu phải giúp dễ dàng trong thao tác dữ liệu

d)

Các phương án A, B, C đều đúng

3.

Tiêu chuẩn để đánh giá giải thuật tốt là:

a)

Giải thuật đúng đắn

b)

Giải thuật đơn giản

c)

Giải thuật thực hiện nhanh

d)

Tất cả các tiêu chí A, B, C

4.

Thời gian thực hiện chương trình là:

a)

Một hàm của kích thước dữ liệu đầu vào, ký hiệu là T(n) trong đó n là kích thước (độ lớn) của dữ liệu đầu vào

b)

Một hàm của độ dài dữ liệu đầu vào, ký hiệu là N(x) trong đó x là độ dài của dữ liệu đầu vào

c)

Thời gian ngắn nhất để thực hiện chương trình đối với mọi dữ liệu vào có cùng kích thước n

d)

Thời gian thực hiện chương trình trong trường hợp nhanh nhất trên dữ liệu đầu vào có kích thước n

5.

Thường ta coi T(n) là thời gian thực hiện chương trình trong trường hợp xấu nhất trên dữ liệu vào có kích thước n, tức T(n) là:

a)

Thời gian nhỏ nhất để thực hiện chương trình đối với mọi dữ liệu vào có cùng kích thước n

b)

Thời gian lớn nhất để thực hiện chương trình đối với mọi dữ liệu vào có cùng kích thước n

c)

Thời gian lớn nhất để thực hiện chương trình đối với mọi dữ liệu vào có cùng kích thước T

6.

Phương pháp để xác định hiệu quả thời gian thực hiện của một giải thuật là:

a)

Lập trình hoạt động trên một máy tính xác định xác định đối với tập hợp được chọn lọc các dữ liệu vào

b)

Đo lường thời gian thực hiện của hoạt động trên một máy tính xác định đối với tập hợp được chọn lọc các dữ liệu vào

c)

Cả A & B đều sai

d)

Cả A & B đều đúng

7.

Khi ta nói thời gian thực hiện của một chương trình là T(n) = Cn thì có nghĩa là chương trình ấy:

a)

Cần C chỉ thị thực thi

b)

Cần T(n) chỉ thị thực thi

c)

Cần n chỉ thị thực thi

d)

Cần Cn chỉ thị thực thi

8.

Phương pháp để xác định hiệu quả thời gian thực hiện của một giải thuật là

a)

  Lập trình hoạt động trên một máy tính xác định xác định đối với tập hợp được chọn lọc các dữ liệu vào

b)

   Đo lường thời gian thực hiện của hoạt động trên một máy tính xác định đối với tập hợp được chọn lọc các dữ liệu vào

c)

Cả A & B đều sai

d)

Cả A & B đều đúng

9.

Tìm mệnh đề sai trong các mệnh đề sau, một cấu trúc dữ liệu bao gồm:

a)

Một tập hợp nào đó các dữ liệu thành phần

b)

Các dữ liệu thành phần đặt sát nhau trong bộ nhớ

c)

Kiểu dữ liệu là một tập hợp nào đó các phần tử dữ liệu cùng chung một thuộc tính

d)

Cả A, B, C đều là mệnh đề sai

10.

Trong giải thuật, bài toán liệt kê là:

a)

Bài toán yêu cầu đưa ra danh sách các cấu hình

b)

Bài toán phân tích đối tượng thành nhiều thành phần

c)

Bài toán tính số tổ hợp chập k của n theo công thức truy hồi

d)

Tất cả đều đúng

11.

Thuật toán đệ quy là:

a)

Thuật toán có lời gọi đến một thuật toán khác

b)

Thuật toán có lời gọi đến chính nó nhưng với kích thước lớn hơn

c)

Thuật toán có lời gọi trực tiếp đến chính nó nhưng với kích thước nhỏ hơn

d)

Thuật toán có lời gọi trực tiếp hoặc gián tiếp đến chính nó nhưng có kích thước nhỏ hơn

12.

Cơ chế thực hiện giải thuật đệ quy bao gồm:

a)

Một giai đoạn chính là đi từ trên xuống

b)

Một giai đoạn chính đi từ dưới lên

c)

Hai giai đoạn chính: đi từ trên xuống và đi từ dưới lên

d)

Tất cả các đáp án A, B, C đều sai

13.

Cho hàm đệ quy sau: int factorial(int n) { if (n == 0) // Phần neo. return 1; else // Phần gọi đệ quy. return factorial(n - 1) * n; } Sau mỗi lần gọi đệ quy thì giá trị của biến n:

a)

Tăng lên 1 đơn vị

b)

Giảm xuống 1 đơn vị

c)

n có giá trị bằng 0

d)

n có giá trị bằng 1

14.

Một hàm đệ quy được định nghĩa bởi:

a)

2 phần

b)

3 phần

c)

1 phần

d)

Không chia thành các phần

15.

Số bước thực hiện thuật toán đệ quy cho bài toán Tháp Hà Nội với số lượng đĩa 3 là:

a)

5 bước

b)

6 bước

c)

7 bước

d)

8 bước

16.

Nhược điểm của thuật toán đệ quy là:

a)

Tốn bộ nhớ

b)

Tốn thời gian

c)

Dễ gây tràn bộ nhớ

d)

Tất cả các phương án A, B, C

17.

Đoạn mã nguồn sau trả lại kết quả bằng bao nhiêu khi nhập n = 4: int sum(int n) { if (n != 0) // sum() function calls itself return n + sum(n-1); else return n; }

a)

Kết quả là 9

b)

Kết quả là 10

c)

Kết quả là 11

d)

Kết quả là 8

18.

Đoạn mã nguồn sau trả lại kết quả bằng bao nhiêu khi nhập n = 5: int fibbonacci(int n) { if(n == 0){ return 0; } else if(n == 1) { return 1; } else { return (fibbonacci(n-1) + fibbonacci(n-2)); } }

a)

Kết quả là 5

b)

Kết quả là 8

c)

Kết quả là 6

d)

Kết quả là 9

19.

Đoạn mã nguồn sau trả lại kết quả bằng bao nhiêu khi nhập base = 3, a = 4: int power(int base, int a) { if (a != 0) return (base * power(base, a - 1)); else return 1; }

a)

Kết quả là 82

b)

Kết quả là 81

c)

Kết quả là 69

d)

Kết quả là 98

20.

Số lần gọi đệ quy trong đoạn mã nguồn sau đây là bao nhiêu khi nhập n = 9: int display(int n) { if (n != 0) // sum() function calls itself return n + sum(n-1); else return n; }

a)

Thực hiện gọi đệ quy 8 lần

b)

Thực hiện gọi đệ quy 7 lần

c)

Thực hiện gọi đệ quy 9 lần

d)

Thực hiện gọi đệ quy 10 lần

21.

Danh sách là gì trong lập trình

a)

Một dãy số nguyên

b)

Một cấu trúc dữ liệu lưu trữ các phần tử liên tiếp

c)

Một phương thức sắp xếp dữ liệu

d)

Một loại biến đặc biệt

22.

Trong danh sách, cách truy cập vào phần tử có chỉ số là:

a)

Dấu ngoặc vuông ([])

b)

Dấu ngoặc tròn (())

c)

Dấu ngoặc nhọn ({})

d)

Dấu ngoặc kép (" ")

23.

Đặc điểm quan trọng của danh sách là:

a)

Các phần tử có thể thay đổi

b)

Các phần tử không thể thay đổi

c)

Chỉ chứa số nguyên

d)

Chỉ chứa chuỗi ký tự

24.

Stack là một cấu trúc dữ liệu có nguyên tắc gì?

a)

FIFO (First In First Out)

b)

LIFO (Last In First Out)

c)

LILO (Last In Last Out)

d)

FIFO (First In Last Out)

25.

Phép toán chính trên stack là:

a)

Push và Pop

b)

Add và Remove

c)

Enqueue và Dequeue

d)

Insert và Delete

26.

Khi một phần tử được thêm vào stack, nó được thêm vào:

a)

Ở đầu danh sách

b)

Ở cuối danh sách

c)

Ở giữa danh sách

d)

Ở đỉnh của stack

27.

Queue hoạt động theo nguyên tắc nào?

a)

LIFO (Last In First Out)

b)

FIFO (First In First Out)

c)

LILO (Last In Last Out)

d)

FIFO (First In Last Out)

28.

Phép toán chính trên queue là:

a)

Push và Pop

b)

Enqueue và Dequeue

c)

Add và Remove

d)

Insert và Delete

29.

Trong queue, phần tử mới được thêm vào ở đâu?

a)

Ở đầu danh sách

b)

Ở cuối danh sách

c)

Ở giữa danh sách

d)

Ở đỉnh của queue

30.

Khi một phần tử được loại bỏ khỏi stack, phép toán đó được gọi là:

a)

Pop

b)

Push

c)

Peek

d)

Empty

31.

Ngăn xếp có thể được triển khai bằng cách sử dụng:

a)

Mảng

b)

Danh sách liên kết

c)

Cả a và b

d)

Cả a, b và cây

32.

Danh sách liên kết đơn và danh sách liên kết kép có điểm khác biệt chính gì?

a)

Số lượng phần tử

b)

Khả năng tìm kiếm

c)

Khả năng chèn và xóa

d)

Không có sự khác biệt

33.

Hãy chọn định nghĩa đúng nhất về danh sách kiểu hàng đợi (Queue)?

a)

Hàng đợi là kiểu danh sách tuyến tính trong đó, phép bổ sung một phần tử được thực hiện ở một đầu, gọi là lối sau (rear) hay lối trước (front). Phép loại bỏ không thực hiện được

b)

Hàng đợi là kiểu danh sách tuyến tính trong đó, phép bổ sung một phần tử hay loại bỏ được thực hiện ở một đầu danh sách gọi là đỉnh (Top)

c)

Hàng đợi là một danh sách tuyến tính trong đó phép bổ sung một phần tử và phép loại bỏ một phần tử được thực hiện ở tại một vị trí bất kì trong danh sách

d)

Hàng đợi là kiểu danh sách tuyến tính trong đó, phép bổ sung phần tử ở một đầu, gọi là lối sau (rear) và phép loại bỏ phần tử được thực hiện ở đầu kia, gọi là lối trước (front)

34.

Cho Stack gồm 5 phần tử {12, 5, 20, 23, 72}, trong đó 72 là phần tử ở đỉnh Stack. Để lấy ra phần tử thứ 4 trong Stack ta phải thực hiện theo phương án nào?

a)

POP(72), POP(23), POP(20)

b)

POP(72), POP(23), PUSH(20)

c)

POP(23), PUSH(23), POP(72)

d)

POP(23), PUSH(72), POP(20)

35.

Phương pháp nào sau đây chính là phương pháp sắp xếp nhanh (Quick sort)?

a)

Phương pháp trộn

b)

Phương pháp vun đống

c)

Phương pháp chèn

d)

Phương pháp phân đoạn

36.

Ý tưởng phương pháp sắp xếp nhanh (Quick sort) là:

a)

Chọn phần tử bé nhất xếp vào vị trí thứ nhất bằng cách đổi chỗ phần tử bé nhất với phần tử thứ nhất; Tương tự đối với phần tử nhỏ thứ hai, ba...

b)

Bắt đầu từ cuối dãy đến đầu dãy, ta lần lượt so sánh hai phần tử kế tiếp nhau, nếu phần tử nào nhỏ hơn được đứng ở vị trí trên

c)

Lần lượt chia dãy phần tử thành hai dãy con bởi một phần tử khoá (dãy con trước khoá gồm các phần tử nhỏ hơn khoá và dãy còn lại gồm các phần tử lớn hơn khoá)

d)

Phân đoạn dãy thành nhiều dãy con và lần lượt trộn hai dãy con thành dãy lớn hơn, cho đến khi thu được dãy ban đầu đã được sắp xếp

37.

Ý tưởng phương pháp sắp xếp Trộn (Merge sort) là:

a)

Bắt đầu từ cuối dãy đến đầu dãy, ta lần lượt so sánh hai phần tử kế tiếp nhau, nếu phần tử nào nhỏ hơn được đứng ở vị trí trên

b)

Lần lượt chia dãy phần tử thành hai dãy con bởi một phần tử khoá (dãy con trước khoá gồm các phần tử nhỏ hơn khoá và dãy còn lại gồm các phần tử lớn hơn khoá)

c)

Chọn phần tử bé nhất xếp vào vị trí thứ nhất bằng cách đổi chỗ phần tử bé nhất với phần tử thứ nhất; Tương tự đối với phần tử nhỏ thứ hai, ba...

d)

Phân đoạn dãy thành nhiều dãy con và lần lượt trộn hai dãy con thành dãy lớn hơn, cho đến khi thu được dãy ban đầu đã được sắp xếp

38.

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 tính chất giá trị của nút cha lớn luôn lớn hơn giá trị các nút trong cây con trái và nhỏ hơn giá trị các nút trong cây con phải

c)

Cây nhị phân hoàn chỉnh với tính chất giá trị của nút cha lớn luôn lớn hơn giá trị các nút trong cây con trái và nhỏ hơn giá trị các nút trong cây con phải

d)

Cây nhị phân hoàn chỉnh 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

39.

Trong giải thuật sắp xếp vun đống, ta có 4 thủ tục con (Insert – thêm 1 phần tử vào cây; Downheap – vun đống lại sau khi loại một phần tử khỏi Heap, Upheap – vun đống sau khi thêm một phần tử vào cây; Remove – loại 1 phần tử khỏi cây nhị phân). Để sắp xếp các phần tử trong dãy theo phương pháp vun đống, ta thực hiện 4 thủ tục trên theo thứ tự như thế nào?

a)

Insert – Upheap – Remove – Downheap

b)

Remove – Downheap – Insert – Upheap

c)

Insert – Upheap – Downheap – Remove

d)

Upheap – Downheap – Remove – Insert

40.

Tư tưởng của giải thuật tìm kiếm tuần tự là:

a)

Tìm kiếm dựa vào cây nhị tìm kiếm: Nếu giá trị cần tìm nhỏ hơn gốc thì thực hiện tìm kiếm trên cây con trái, ngược lại ta việc tìm kiếm được thực hiện trên cây con phải.

b)

Lần lượt chia dãy thành hai dãy con dựa vào phần tử khoá, sau đó thực hiện việc tìm kiếm trên hai đoạn đã chia.

c)

So sánh X lần lượt với các phần tử thứ nhất, thứ hai, ... của dãy cho đến khi gặp phần tử có khoá cần tìm.

d)

Tại mỗi bước tiến hành so sánh X với phần tử ở giữa của dãy, Dựa vào bước so sánh này quyết định giới hạn dãy tìm kiếm nằm ở nửa trên, hay nửa dưới của dãy hiện hành.

41.

Trong các giải thuật sắp xếp, giải thuật nào áp dụng phương pháp "Chia để trị"?

a)

Quick sort, Heap sort

b)

Quccick sort, Insert sort

c)

Quick sort, Bubble sort

d)

Quick sort, Merge sort

42.

Thuật toán sắp xếp nào hoạt động bằng cách so sánh từng cặp phần tử và đổi chỗ nếu cần thiết?

a)

Bubble sort

b)

Insertion sort

c)

Selection sort

d)

Merge sort

43.

Thuật toán sắp xếp nhanh (Quick Sort) có độ phức tạp thời gian trong trường hợp xấu nhất là bao nhiêu?

a)

O(1)

b)

O(n)

c)

O(log n)

d)

O(n2)O(n^2)

44.

Cho thuật toán sắp xếp Bubble Sort, chọn câu đúng nhất cho hàm Swap trong đoạn mã sau: void BubbleSort(int M[], int N){ for (int I = 0; I < N-1; I++) for (int J = N-1; J > I; J--) if (M[J] < M[J-1]) Swap(M[J], M[J-1]); return;}

a)

void Swap(int &X, int &Y) { int Temp = X; X = Y; Y = Temp; return; }

b)

void Swap(float X, float Y) { int Temp = X; X = Y; Y = Temp; return; }

c)

void Swap(int *X, int *Y) { int Temp = X; X = Y; Y = Temp; return; }

d)

void Swap(int X, int Y) { int Temp = X; X = Y; Y = Temp; return; }

45.

Đối với thuật toán sắp xếp chọn trực tiếp cho dãy các phần tử sau: 16 60 2 25 15 45 5 30 33 20. Cần thực hiện bao nhiêu lần chọn lựa phần tử nhỏ nhất để sắp xếp mảng trên có thứ tự tăng dần?

a)

7 lần

b)

8 lần

c)

9 lần

d)

10 lần

46.

Trong cây nhị phân, nút trên cùng được gọi là gì?

a)

Nút gốc

b)

Nút lá

c)

Nút cha

d)

Nút con

47.

Đặc điểm nào mô tả cây nhị phân hoàn chỉnh?

a)

Mỗi nút có tối đa một nút con trái và một nút con phải

b)

Mỗi nút có thể có nhiều hơn một nút con trái và một nút con phải

c)

Mỗi nút không có nút con trái hoặc phải

d)

Mỗi nút có nhiều hơn hai nút con

48.

Trong quá trình duyệt cây nhị phân theo thứ tự trước (preorder), thứ tự duyệt nút là gì?

a)

Nút cha trước, sau đó là nút con trái và nút con phải

b)

Nút con trái trước, sau đó là nút cha và nút con phải

c)

Nút con phải trước, sau đó là nút cha và nút con trái

d)

Nút cha trước, sau đó là nút con phải và nút con trái

49.

Trong cây nhị phân tìm kiếm, giá trị nào nằm ở nút con phải phải lớn hơn giá trị ở nút cha và giá trị ở nút con trái?

a)

Lớn hơn

b)

Nhỏ hơn

c)

Bằng

d)

Không có quy tắc cụ thể

50.

Cây nhị phân cân bằng là gì?

a)

Cây mà mọi nút đều có hai nút con

b)

Cây mà độ cao của cây là tối thiểu

c)

Cây mà độ chênh lệch giữa cây con trái và cây con phải của mọi nút là nhỏ nhất

d)

Cây mà tỷ lệ giữa số nút lá và số nút trong cây là tối ưu

51.

Trong cây nhị phân tìm kiếm, thao tác chèn một giá trị mới thường được thực hiện ở đâu?

a)

Nút lá đầu tiên mà gặp

b)

Nút gốc

c)

Nút lá cuối cùng

d)

Nút lá gần giá trị cần chèn nhất

52.

Trong cây nhị phân, thứ tự duyệt theo thứ tự giảm dần (inorder) sẽ cho ra kết quả như thế nào?

a)

Giá trị giảm dần

b)

Giá trị tăng dần

c)

Giá trị không theo thứ tự cụ thể

d)

Giá trị không hiển thị

53.

Trong cây nhị phân tìm kiếm, thao tác xóa một nút thường yêu cầu làm gì với các nút con của nút cần xóa?

a)

Chuyển tất cả các nút con sang cây con trái

b)

Chuyển tất cả các nút con sang cây con phải

c)

Giữ nguyên cấu trúc cây con trái và cây con phải

d)

Xóa tất cả các nút con

54.

Cây nhị phân đầy đủ là gì?

a)

Cây mà mọi nút đều có đúng hai nút con

b)

Cây mà tất cả các nút đều có giá trị tăng dần

c)

Cây mà tất cả các nút lá đều ở mức cuối cùng

d)

Cây mà tất cả các nút đều có giá trị giảm dần

55.

Trong cây nhị phân tìm kiếm, giá trị ở nút con phải luôn lớn hơn giá trị ở nút cha và giá trị ở nút con trái luôn nhỏ hơn giá trị ở nút cha. Điều này đảm bảo gì?

a)

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

b)

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

c)

Thuật toán tìm kiếm hiệu quả

d)

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

56.

Trong cây nhị phân tìm kiếm, thứ tự duyệt theo thứ tự giảm dần (inorder) sẽ cho kết quả nào?

a)

Tăng dần

b)

Giảm dần

c)

Ngẫu nhiên

d)

Không xác định

57.

Đối với một cây nhị phân tìm kiếm, thao tác chèn một giá trị mới sẽ được thực hiện ở đâu?

a)

Nút lá cuối cùng

b)

Nút gốc

c)

Nút lá đầu tiên mà gặp

d)

Nút lá gần giá trị cần chèn nhất

58.

Trong cây nhị phân tìm kiếm, thao tác xóa một nút yêu cầu sự xử lý đặc biệt khi nút cần xóa có bao nhiêu nút con?

a)

0

b)

1

c)

2

d)

3

59.

Cây nhị phân cân bằng là gì?

a)

Cây mà tất cả các nút đều có đúng hai nút con

b)

Cây mà độ chênh lệch giữa chiều cao của cây con trái và cây con phải của mọi nút là nhỏ nhất

c)

Cây mà độ chênh lệch giữa số nút lá và số nút trong cây là nhỏ nhất

d)

Cây mà độ chênh lệch giữa chiều cao của cây con trái và cây con phải của mọi nút là lớn nhất

60.

Trong cây nhị phân tìm kiếm, thao tác tìm kiếm một giá trị cụ thể có độ phức tạp thời gian là bao nhiêu trong trường hợp trung bình?

a)

O(1)

b)

O(log n)

c)

O(n)

d)

O(n2)O(n^2)

61.

Khi xóa một nút trong cây nhị phân tìm kiếm, nếu nút đó có hai nút con, nút thay thế sẽ được chọn như thế nào?

a)

Nút con trái của nút cần xóa

b)

Nút con phải của nút cần xóa

c)

Nút lá cuối cùng ở cây con trái của nút cần xóa

d)

Nút lá đầu tiên ở cây con phải của nút cần xóa

62.

Trong cây nhị phân tìm kiếm, nếu thực hiện thao tác tìm kiếm và giá trị không tồn tại trong cây, kết quả sẽ là gì?

a)

Giá trị gần nhất

b)

Null

c)

Giá trị 0

d)

Giá trị lớn nhất trong cây

63.

Trong cây nhị phân tìm kiếm, việc sắp xếp các nút theo thứ tự giảm dần (inorder) được thực hiện bằng cách nào?

a)

Sử dụng thuật toán sắp xếp nổi bọt

b)

Sử dụng thuật toán quicksort

c)

Sử dụng thuật toán mergesort

d)

Thực hiện thao tác duyệt theo thứ tự giảm dần trên cây

64.

Đồ thị là gì?

a)

Tập hợp các điểm và cạnh

b)

Phương trình toán học

c)

Tập hợp các hình học

d)

Bảng số liệu

65.

Trong đồ thị vô hướng, mỗi cạnh nối:

a)

2 đỉnh

b)

3 đỉnh

c)

4 đỉnh

d)

5 đỉnh

66.

Một đồ thị có hướng có bao nhiêu đỉnh có thể kết nối với một đỉnh cụ thể?

a)

0

b)

1

c)

Nhiều hơn 1

67.

Trong đồ thị có hướng, đỉnh có bậc là gì?

a)

Số cạnh kết nối với đỉnh đó

b)

Độ dài của đỉnh

c)

Màu sắc của đỉnh

d)

Tên của đỉnh

68.

Một chu trình trong đồ thị là gì?

a)

Đỉnh không có cạnh

b)

Tập hợp các đỉnh không kết nối

c)

Đường đi đóng thành vòng

d)

Các đỉnh có màu sắc giống nhau

69.

Đồ thị không chu trình được gọi là gì?

a)

Đồ thị đầy đủ

b)

Đồ thị vô hướng

c)

Đồ thị cây

d)

Đồ thị đồng dạng

70.

Trong đồ thị, đỉnh có bậc vào và ra là bao nhiêu?

a)

Bậc vào và bậc ra không liên quan

b)

Chúng luôn bằng nhau

c)

Chúng có thể bằng nhau hoặc khác nhau

d)

Không có khái niệm bậc vào và ra

71.

Một đồ thị được gọi là đồ thị đầy đủ nếu:

a)

Có nhiều đỉnh nhất

b)

Mọi đỉnh đều kết nối với tất cả các đỉnh khác

c)

Không có chu trình

d)

Đỉnh và cạnh có màu sắc đẹp

72.

Trong đồ thị, đường đi ngắn nhất giữa hai đỉnh được gọi là:

a)

Đường đi tối ưu

b)

Đường đi ngắn nhất

c)

Đường đi đẹp nhất

d)

Đường đi tiện ích

73.

Đồ thị có trọng số là gì?

a)

Mỗi đỉnh có một trọng số

b)

Mỗi cạnh có một trọng số

c)

Cả đỉnh và cạnh đều có trọng số

d)

Không có trọng số

74.

Trong đồ thị, liên thông có nghĩa là gì?

a)

Tất cả các đỉnh đều kết nối

b)

Một số đỉnh không kết nối

c)

Tất cả các cạnh đều kết nối

d)

Không có đỉnh nào kết nối

75.

Một đồ thị được gọi là đồ thị cây nếu:

a)

Có nhiều nhánh nhất

b)

Không có chu trình và liên thông

c)

Có nhiều chu trình

d)

Có nhiều đỉnh nhất

76.

Trong thuật toán DFS, các đỉnh được thăm theo thứ tự nào?

a)

Theo thứ tự bậc tăng dần

b)

Theo thứ tự bậc giảm dần

c)

Theo thứ tự tìm thấy đầu tiên

d)

Theo thứ tự tìm thấy cuối cùng

77.

Tìm mô tả đúng nhất cho hàm TinhTong sau: int TinhTong(int N) { int so = 2; int tong = 0; int dem = 0; while (dem < N) { if (KiemTra(so) == 1) { tong = tong + so; dem ++; } so = so + 1; } return tong; } Trong đó int KiemTra(int so) { for (int i = 2; i < so; i++) if (so % i == 0) return 0; return 1; }

a)

Hàm tính tổng N số nguyên đầu tiên

b)

Hàm tính tổng N số nguyên tố nhỏ hơn N

c)

Cả a, b đều sai

d)

Cả a, b đều đúng

78.

Đoạn mã giả dưới đây mô tả thuật toán gì? 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, c đều sai

79.

Lựa chọn định nghĩa về danh sách đúng nhất?

a)

Danh sách là tập hợp các phần tử có kiểu dữ liệu xác định và giữa chúng có một mối liên hệ nào đó

b)

Số phần tử của danh sách gọi là chiều dài của danh sách

c)

Một danh sách có chiều dài bằng 0 là một danh sách rỗng

d)

Cả a, b, c đều đúng

80.

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

a)

Việc thêm, bớt các phần tử trong danh sách đặc có nhiều khó khăn do phải di dời các phần tử khác đi qua chỗ khác

b)

Việc truy xuất và tìm kiếm các phần tử của mảng là dễ dàng vì các phần tử đứng liên nhau nên chúng ta chỉ cần sử dụng chỉ số để định vị vị trí các phần tử trong danh sách (định vị địa chỉ các phần tử)

c)

Mật độ sử dụng bộ nhớ của mảng là tối ưu tuyệt đối

d)

Cả a, b, c đúng

81.

Lựa chọn câu đúng nhất về danh sách liên kết đôi (Doubly Linked List):

a)

Vùng liên kết của một phần tử trong danh sách liên đôi có 02 mối liên kết với 01 phần tử khác trong danh sách

b)

Vùng liên kết của một phần tử trong danh sách liên đôi có 01 mối liên kết với 02 phần tử khác trong danh sách

c)

Vùng liên kết của một phần tử trong danh sách liên đôi có 02 mối liên kết với 02 trước và sau nó trong danh sách

d)

Vùng liên kết của một phần tử trong danh sách liên đôi có 02 mối liên kết với phần tử đầu và cuối của danh sách

82.

Cho thuật toán tìm nhị phân không đệ quy sau: int NRecBinarySearch (int M[], int N, int X) { int First = 0; int Last = N - 1; while (First <= Last) { int Mid = (First + Last)/2; if (X == M[Mid]) return(Mid); if (X < M[Mid]) Last = Mid - 1; else First = Mid + 1; } return(-1); } Chọn câu đúng nhất trong trường hợp tốt nhất khi phần tử ở giữa của mảng có giá trị bằng X:

a)

Số phép gán: Gmin = 3 Số phép so sánh: Smin = 2

b)

Số phép gán: Gmin = 2 Số phép so sánh: Smin = 3

c)

Số phép gán: Gmin = 2 Số phép so sánh: Smin = 2

d)

Số phép gán: Gmin = 0 Số phép so sánh: Smin = 2