wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

CTDLGT_01

Total questions: 106

Worksheet time: 3hrs 39mins

Name
Class
Date
1.

Cho hàm sau:
int M(int n) {
if(n<3) return 7;
if(n%21) return n + M(n-4);
return n + M(n-5);
Kết quả của M(10) là.........

a)

A. 22

b)

B. 23

c)

C. 18

d)

D. 25

2.

Cho ngăn xếp cài đặt trên C char S[4] chỉ số định T = - 1 (ngăn xếp rỗng), giải thuật PUSH(S, char) đẩy vào đỉnh ngăn xếp 1 ký tự, Print((POP(S, char)) lấy 1 ký tự từ đỉnh ngăn xếp và in lên màn hình. Sau các câu lệnh : PUSH(S,'A'); PUSH(S,'B'); PUSH(S,'C'); Print((POP(S,char)); PUSH(S,'D'); PUSH(S, 'E'); PUSH(S, 'F'); Giá trị của T sẽ là:

a)

A. 1

b)

B. 2

c)

C. 3

d)

D. 4

3.

Dạng hậu tố của biểu thức a+b*c là.....

a)

A. a+bc*

b)

B. abc+*

c)

C. abc*+

d)

D. a(bc*)+

4.

Giải thuật sắp xếp kiểu lựa chọn luôn thực hiện thao tác gì?

a)

A. Tìm số bé nhất

b)

B. Duyệt từng phần tử của dãy khóa

c)

C. Đưa khóa có giá trị lớn nhất xuống cuối dãy

d)

D. Tìm sô lớn nhất

5.

Cho giải thuật đếm số nút trên cây nhị phân T: DemNut(T, int &SoNut) { if(T!=NULL) { SoNut++; DemNut(T.lptr); DemNut(T.rptr); } }. Để đếm số nút trên cây nhị phân T vào biến int n, trước khi gọi giải thuật DemNut(T, n); Giá trị của n Phải bằng bao nhiêu thì đúng?

a)

A. -1

b)

B. 1

c)

C. 2

d)

D. 0

6.

Trong thuật toán chuyển đổi một số nguyên từ hệ thập phân sang hệ nhị phân, người ta sẽ dùng cấu trúc dữ liệu nào dưới đây để lưu số dư của các phép chia.

a)

Queue

b)

Stack

c)

Array

d)

Tree

7.

Ngăn xếp được ứng dụng trong thuật toán “chuyển đổi một biểu thức toán học ở dạng Trung tố sang Hậu tố”. Hãy cho biết biểu thức hậu tố nhận được sau khi chúng ta cho chạy giải thuật “chuyển biểu thức từ trung tố sang hậu tố” với input là: 2 + 3 * 4 - 5

a)

2 3 + * 4 5 -

b)

2 3 4 5 * + -

c)

2 3 4 * 5 + -

d)

2 3 4 * + 5 -

8.

Thứ tự nào sau đây cho phép duyệt đệ quy cây nhị phân theo thứ tự trước

a)

Duyệt cây con trái theo thứ tự trước -> thăm gốc -> duyệt cây con phải theo thứ tự trước

b)

Duyệt cây con trái theo thứ tự trước -> duyệt cây con phải theo thứ tự trước -> thăm gốc

c)

Thăm gốc -> duyệt cây con trái theo thứ tự trước -> duyệt cây con phải theo thứ tự trước

d)

Thăm gốc -> duyệt cây con phải theo thứ tự trước -> duyệt cây con trái theo thứ tự trước

9.

Thuật toán sau đây sắp xếp dãy a gồm n phần tử thành dãy mới có thứ tự tăng dần.

for (int i = 0; i < n - 1; i++) {

int vt = i;

for (int j = i + 1; j < n; j++)

if (a[vt] > a[j])

vt = j;

if (vt != i) {

tg = a[vt];

a[vt] = a[i];

a[i] = tg; }

}

Thuật toán trên được gọi là

a)

Sắp xếp chọn

b)

Sắp xếp nổi bọt

c)

Sắp xếp chèn

d)

Sắp xếp trộn

10.

Bạn phải sắp xếp một danh sách L bao gồm: một danh sách đã sắp xếp và một vài phần tử ngẫu nhiên nào đó. Phương pháp sắp xếp nào sau đây sẽ đặc biệt phù hợp cho một nhiệm vụ như vậy?

a)

Sắp xếp nổi bọt

b)

Sắp xếp lựa chọn

c)

Sắp xếp nhanh

d)

Sắp xếp chèn

11.

Một phần tử chốt để phân chia dãy chưa sắp xếp được sử dụng trong …

a)

Sắp xếp trộn

b)

Sắp xếp lựa chọn

c)

Sắp xếp chèn

d)

Sắp xếp nhanh

12.

Thuật toán sắp xếp nào sau đây có độ phức tạp trong trường hợp xấu nhất thấp nhất?

a)

Merge Sort

b)

Quick Sort

c)

Selection Sort

d)

Bubble Sort

13.

Thuật toán sắp xếp nào là tốt nhất nếu danh sách đã có thứ tự?

a)

Sắp xếp nhanh (Quick Sort)

b)

Sắp xếp chèn (Insertion Sort)

c)

Không có

d)

Sắp kiểu trộn (Merge Sort)

14.

Trong SELECTION SORT, dãy A[5] ={ 16, 14, 12, 10, 8}

Cần thực hiện bao nhiêu lần chọn phần tử nhỏ nhất để sắp xếp mảng tăng dần?

a)

3 lần

b)

4 lần

c)

2 lần

d)

1 lần

15.

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 (Selection sort)?

a)

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

b)

Lần lượt lấy từng phần tử trong dãy và chèn vào vị trí thích hợp

c)

Chọn phần tử bé nhất xếp vào vị trí thứ 1, tương tự với phần tử nhỏ thứ 2 cho đến phần tử cuối cùng

d)

Bắt đầu từ cuối dãy đến đầu dãy, lấy 2 phần tử kế nhau và so sánh với nhau, phần tử nào bé đứng trên

16.

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 (Insertion sort)?

a)

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

b)

Lần lượt lấy từng phần tử trong danh sách chèn vào vị trí thích hợp của nó trong dãy bằng cách đẩy các phần tử lớn hơn xuống

c)

Chọn phần tử bé nhất xếp vào vị trí thứ 1, tương tự với phần tử nhỏ thứ 2 cho đến phần tử cuối cùng

d)

Bắt đầu từ cuối dãy đến đầu dãy, lấy 2 phần tử kế nhau và so sánh với nhau, phần tử nào bé đứng trên

17.

Theo thuật toán sắp xếp chọn, sau bước thứ i thì các phần tử A[0]. A[1]..... A[i] đã được sắp xếp đúng. Đúng hay sai?

a)

Đúng

b)

Sai

18.

Đánh giá độ phức tạp của giải thuật sau:

int KiemTra(int n) {

iint i;

for (i = 2; i<n; i++)

if (n%i == 0) return 0;

return1;

}

a)

O(n3)

b)

O(n2)

c)

O(n)

d)

O(log2n)

19.

Độ phức tạp của giải thuật không đệ quy tính n! (n giai thừa) là bao nhiêu ?

a)

O(n)

b)

O(log2n)

c)

O(n2)

d)

O(n3)

20.

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 nào dưới đây?

a)

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

b)

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

c)

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

d)

Giải thuật = Chương trinh

21.

Cho thời gian thực hiện một giải thuật T(n) = 10n2 + 100n + c (c là hằng số, n kích thước dữ liệu đầu vào). Cho biết độ phức tạp của giải thuật với thời gian thực hiện đã cho

a)

O(log2n)

b)

O(1)

c)

O(n2)

d)

O(n)

22.

Với khai báo nguyên mẫu hàm void hoanvi (int a, int b) là hàm hoàn vị hai giá trị của a, b cho nhau. Đoạn chương trình sau cho kết quả như thế nào ?

int main () {

int a = 8;

int b = 10;

hoanvi(a,b);

printf("a = %d, b = %d", a, b);

}

a)

a = 10, b = 10

b)

a = 8, b = 8

c)

a = 10, b = 8

d)

a = 8, b = 10

23.

Cho biết độ phức tạp của giải thuật sau:

(1) sum = 0;

(2) for (i=0;i<n;i++)

(3) sum = sum + i*i;

a)

O(n)

b)

O(n2)

c)

O(n3)

d)

O(n4)

24.

Nếu thời gian thực hiện lần lượt của hai đoạn chương trình P1 và P2 là: T1(n) = O(n), T2(n) = O(n) thì thời gian thực hiện P1 và lồng nhau sẽ T(n). Cho biết phương án đúng với T(n).

a)

O(n)

b)

O(log2n)

c)

O(n2)

d)

O(n3)

25.

Trong ứng dụng quản lý danh sách bệnh nhân đang chờ tại một phòng khám X. Hãy lựa chọn cấu trúc dữ liệu phù hợp nhất để lưu danh sách bệnh nhân này; biết rằng các bệnh nhân đến đăng ký trước sẽ được vào khám trước.

a)

Queue

b)

Stack

c)

Array

d)

Tree

26.

Ngăn xếp được ứng dụng trong thuật toán “Tính giá trị của một biểu thức hậu tố”. Hãy cho biết giá trị tại đỉnh của ngăn xếp sau khi thực hiện thuật toán “Tính giá trị của một biểu thức hậu tố” với input là: 2 9 4 *  + 5  -

a)

30

b)

31

c)

32

d)

33

27.

Cho Stack có các phép toán:

push(X): Thêm phần tử X vào Stack

pop() : Lấy 1 phần tử ra khỏi Stack

Hãy cho biết phần tử ở đỉnh của Stack có giá trị bằng bao nhiêu sau khi thực hiện lần lượt các phép toán sau: push(5); push(3); pop(); push(4); push(6); pop()

a)

3

b)

4

c)

5

d)

6

28.

Cho Queue có các phép toán:

EnQueue(X): Thêm phần tử X vào Queue

DeQueue() : Lấy 1 phần tử ra khỏi Queue

Hãy cho biết phần tử ở đầu của Queue có giá trị bằng bao nhiêu sau khi thực hiện lần lượt các phép toán sau: EnQueue(5); EnQueue(3); DeQueue(); EnQueue(4); EnQueue(6);

a)

A.    3

b)

4

c)

5

d)

6

29.

Cho Queue có các phép toán:

EnQueue(X): Thêm phần tử X vào Queue

DeQueue() : Lấy 1 phần tử ra khỏi Queue

Hãy cho biết phần tử ở đầu của Queue có giá trị là ký tự nào, sau khi thực hiện thuật toán dưới đây với input là: “This**is***Queue*”

Thuật toán

Input: Xâu S

Đọc lần lượt từng ký tự từ trái qua phải của xâu S; Nếu ký tự đọc được là ‘*’ thì lấy 1 phần tử ra khỏi Queue. Ngược lại thì thêm phần tử đọc được vào Queue.

a)

T

b)

h

c)

u

d)

Q

30.

Cho Stack có các phép toán:

push(X): Thêm phần tử X vào Stack

pop() : Lấy 1 phần tử ra khỏi Stack

Hãy cho biết phần tử ở đỉnh của Stack có giá trị là ký tự nào, sau khi thực hiện thuật toán dưới đây với input là: “This**is***Stack*”

Thuật toán

Input: Xâu S

Đọc lần lượt từng ký tự từ trái qua phải của xâu S; Nếu ký tự đọc được là ‘*’ thì lấy 1 phần tử ra khỏi Stack. Ngược lại thì thêm phần tử đọc được vào Stack.

a)

T

b)

S

c)

c

d)

k

31.

Thứ tự nào sau đây cho phép duyệt đệ quy cây nhị phân theo thứ tự trước

a)

Duyệt cây con trái theo thứ tự trước -> thăm gốc -> duyệt cây con phải theo thứ tự trước

b)

Duyệt cây con trái theo thứ tự trước -> duyệt cây con phải theo thứ tự trước -> thăm gốc

c)

Thăm gốc -> duyệt cây con trái theo thứ tự trước -> duyệt cây con phải theo thứ tự trước

d)

Thăm gốc -> duyệt cây con phải theo thứ tự trước -> duyệt cây con trái theo thứ tự trước

32.

Trong phép duyệt một cây nhị phân có 24 nút theo thứ tự sau, nút gốc có thứ tự duyệt thứ mấy ?

a)

Thứ 1

b)

Thứ 2

c)

Thứ 23

d)

Thứ 24

33.

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

a)

A.     Nút gốc

b)

A.     Tất cả các nút

c)

A.     Nút con bên phải nhất

d)

A.     Nút con bên trái nhất

34.

Thứ tự các nút được duyệt trong phép duyệt thứ tự TRƯỚC của cây này là gì?

a)

A, B, C, D, E, F, G, H, I, J

b)

E, B, A, C, D, G, F, I, H, J

c)

A, D, C, B, F, H, J, I, G, E

d)

B, A, C, D, G, F, I, H, J, E

35.

Thứ tự các nút được duyệt trong phép duyệt sau của cây này là gì?

a)

A, B, C, D, E, F, G, H, I, J

b)

E, B, A, C, D, G, F, I, H, J

c)

A, D, C, B, F, H, J, I, G, E

d)

B, A, C, D, G, F, I, H, J, E

36.

Khi duyệt cây này, biểu thức số học thu được là + ×ab ÷ cd. Đã thực hiện loại duyệt nào?

a)

In-order

b)

Pre-order

c)

Post-order

d)

Breadth-first

37.

Đây có phải là Cây tìm kiếm nhị phân không?

Độ phức tạp là gì?

a)

Yes, O(log(n))

b)

No, O(n)

c)

Yes, O(n)

d)

No, O(log(n))

38.

Trong các cây sau, cây nào là Cây tìm kiếm nhị phân?

a)

b)

c)

39.

Hình nào dưới đây biểu diễn cây tìm kiếm nhị phân của các giá trị sau: { 18, 6, 12, 22, 25, 30, 20, 2 }

a)

b)

c)

d)

40.

Cho cây nhị phân có thứ tự duyệt là:

Duyệt theo thứ tự sau: 1 3 5 4 2

Duyệt theo thứ tự trong: 1 2 3 4 5

Kết quả duyệt theo thứ tự trước là?

Lưu ý: dãy số viết ngăn cách bởi khoảng trắng, ví dụ: 1 2 3 4 5

(a)  

41.

Kết quả duyệt theo thứ tự sau của cây?

a)

9 8 4 2 3 5 1

b)

4 9 8 5 2 3 1

c)

8 9 4 2 3 5 1

d)

8 9 4 3 2 5 1

42.

Kết quả duyệt theo thứ tự trước của cây?

a)

1 4 9 5 2 8 3

b)

1 4 9 5 2 3 8

c)

1 4 9 8 5 2 3

d)

1 4 9 8 5 2 3

43.

Duyệt cây tìm kiếm nhị phân theo thứ tự nào sẽ trả về một danh sách có thứ tự tăng dần?

a)

Pre-order

b)

In-order

c)

Post-order

d)

Level-order

44.

Duyệt cây nhị phân theo thứ tự giữa (in-order) là gì?

a)

Duyệt gốc, trái, phải

b)

Duyệt trái, gốc, phải

c)

Duyệt phải, trái, gốc

d)

Duyệt trái, phải, gốc

45.

Để xóa một nút có hai con trong cây tìm kiếm nhị phân, thao tác phổ biến nhất là gì?

a)

Thay thế bằng nút lá trái cùng

b)

Thay thế bằng nút lá phải cùng

c)

Thay thế bằng nút có giá trị nhỏ nhất ở cây con bên phải

d)

Thay thế bằng nút có giá trị lớn nhất ở cây con bên trái

46.

Khi chèn một giá trị vào cây tìm kiếm nhị phân, giá trị này sẽ được chèn vào đâu nếu nó nhỏ hơn giá trị của nút gốc?

a)

Con bên trái của nút gốc

b)

Con bên phải của nút gốc

c)

Trên nút gốc

d)

Không chèn được

47.

Cây tìm kiếm nhị phân (Binary Search Tree) là gì?

a)

Cây mà mỗi nút có giá trị lớn hơn các nút con bên trái và nhỏ hơn các nút con bên phải

b)

Cây mà mỗi nút có giá trị nhỏ hơn các nút con bên trái và lớn hơn các nút con bên phải

c)

Cây mà mỗi nút có giá trị bằng nhau

d)

Cây mà mỗi nút chỉ có một con

48.

Chiều cao của cây (height of the tree) là gì?

a)

Số nút trong cây

b)

Số cạnh từ nút gốc đến nút lá xa nhất

c)

Số nút từ gốc đến nút lá gần nhất

d)

Số nút ở tầng cuối cùng

49.

Cây nhị phân hoàn chỉnh (complete binary tree) là gì?

a)

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

b)

Cây mà tất cả các tầng đều đầy đủ trừ tầng cuối cùng

c)

Cây mà tất cả các nút lá đều ở cùng một tầng

d)

Cây mà tất cả các nút chỉ có một con

50.

Có thể tìm kiếm phần tử nhỏ nhất trong cây nhị phân không? Nếu có, làm thế nào?

a)

Có thể tìm kiếm phần tử nhỏ nhất trong cây nhị phân bằng cách đi theo hướng bên trái cho đến khi không còn nút con nào nữa.

b)

Có thể tìm kiếm phần tử nhỏ nhất trong cây nhị phân bằng cách đi theo hướng bên phải

c)

Có thể tìm kiếm phần tử nhỏ nhất trong cây nhị phân bằng cách sử dụng thuật toán tìm kiếm nhị phân

d)

Không thể tìm kiếm phần tử nhỏ nhất trong cây nhị phân

51.

Trong thuật toán chuyển đổi một số nguyên từ hệ thập phân sang hệ nhị phân, người ta sẽ dùng cấu trúc dữ liệu nào dưới đây để lưu số dư của các phép chia.

a)

Queue

b)

Stack

c)

Array

d)

Tree

52.

Ngăn xếp được ứng dụng trong thuật toán “chuyển đổi một biểu thức toán học ở dạng Trung tố sang Hậu tố”. Hãy cho biết biểu thức hậu tố nhận được sau khi chúng ta cho chạy giải thuật “chuyển biểu thức từ trung tố sang hậu tố” với input là: 2 + 3 * 4 - 5

a)

2 3 + * 4 5 -

b)

2 3 4 5 * + -

c)

2 3 4 * 5 + -

d)

2 3 4 * + 5 -

53.

Nhà logic học Balan Lukasiewicz đã đưa ra dạng biểu thức số học theo ký pháp hậu tố (postfix notation). Và ứng dụng ngăn xếp để thực hiện phép toán. Giả sử có biểu thức sau:(1 + 5) * ( 8 - (4 - 1)) Chuyển biểu thức này về dạng hậu tố cách nào sau đây là đúng

a)

1 5 + * 8 4 1 - -

b)

1 5 8 4 1- -+ *

c)

1 5 8 4 1+ - - *

d)

1 5 + 8 4 1 - - *

54.

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

a)

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

b)

Hàng đợi là kiểu danh sách tuyến tính trong đó, phép bổ sung một phần tử vào hàng đợiđượ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.

c)

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

d)

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

55.

Khi đổi một số nguyên từ hệ thập phân sang hệ nhị phân thì người ta dùng phép chia liên tiếp cho 2 và lấy các số dư (là các chữ số nhị phân) theo chiều ngược lại. Cơ chế sắp xếp này chính là cơ chế hoạt động của cấu trúc dữ liệu.

a)

Mảng (array)

b)

Bản ghi( Record)

c)

Hàng đợi(Queue)

d)

Ngăn xếp (stack)

56.

Cho Stack gồm 5 phần tử {12, 15, 18, 25, 30}, trong đó 30 là phần tử ở đỉnh Stack. Để thay số 18 bằng số 23 vào trong Stack ta phải làm thế nào?

a)

Pop(12), Pop(15), Pop(18)

b)

Pop(30), Pop(25), Pop(18), Push(23), Push(25), Push(30)

c)

Pop(30), Pop(25), Pop(18), Push(23), Push(15), Push(12)

d)

Pop(12), Pop(15), Pop(18), Push(23), Push(15), Push(12)

57.

Cho Stack gồm 5 phần tử {2, 10, 12, 15, 20}, trong đó 20 là phần tử ở đỉnh Stack. Để lấy ra phần tử thứ 3 trong Stack ta phải làm thế nào?

a)

Pop(2), Pop(10), Pop(12)

b)

Pop(20), Pop(15), Pop(12)

c)

Pop(2), Pop(10), Pop(12), Push(10), Push(2)

d)

Pop(20), Pop(15), Pop(12), Push(10), Push(2)

58.

Tính giá trị các biểu thức hậu tố sau 2 3 5 + * 1 2 + 4 *+

a)

42

b)

52

c)

28

d)

-28

59.

a)

Không có lỗi

b)

Stack không được khởi tạo đúng cách

c)

Phương thức Peek() không trả về giá trị

d)

Phương thức Pop() cần có tham số

60.

Giả sử có một Stack S chứa lần lượt 3 phần tử [1,2,3] với phần tử có giá trị là 1 ở đáy của Stack S . Sau khi thực hiện lần lượt các lệnh sau : S.Pop() ; S.Pop() ; và S.Push (4) ; Stack S sẽ chứa các phần tử là :

a)

1,2,4

b)

1,4

c)

4,2,1

d)

4

61.

Giả sử có một Stack rỗng s. Thực hiện các lệnh sau s.Push(1), s.Push(2) và s.Pop(). Giá trị phần tử Top của Stack s là:

a)

1

b)

2

c)

Không có giá trị

d)

Không xác định được

62.

a)

1

b)

2

c)

3

d)

4

63.

Giả sử có Queue Q ban đầu rỗng. Hãy cho biết giá trị các phần tử trong q sau khi thực hiện đoạn mã sau for (int i = 0; i <= 16; i++) {if (i % 3 == 0) Q.Enqueue(i); else if (i % 4 == 0) Q.Dequeue();}

a)

0,3,6,9,12,15

b)

9,12,15

c)

0,4,8,16

d)

0,3,4,6,8,9,12,15,16

64.

Giả sử có Queue q chứa 3 phần tử [1,2,3] với phần từ có giá trị là 1 ở đầu hàng đợi. Sau khi thực hiện q.Dequeue() ; q.Dequeue() ; và q.Enqueue(4) ; Các phần tử còn lại trong Queue q là ?

a)

1,2,4

b)

1,4

c)

4,2,1

d)

3,4

65.

Nếu các phần tử 'T', 'H', 'E', 'V' và 'A' được thêm lần lượt theo thứ tự vào trong một hàng đợi q và các phần tử này bị xóa lần lượt thì thứ tự khi xóa sẽ như thế nào?

a)

T H E V A

b)

H E V A T

c)

A V E H T

d)

T A H V E

66.

Biểu thức hậu tố nào là đúng từ biểu thức trung tố sau : 3 + 4 * 5

a)

3 4 5 + *

b)

3 4 5 * +

c)

3 4 + 5*

d)

3 4 * 5 +

67.

Giá trị của biểu thức hậu tố: 6 3 2 4 + - * bằng bao nhiêu?

a)

1

b)

40

c)

74

d)

-18

68.

Duyệt theo thứ tự sau cho kết quả là:

a)

1a+b*c+d*e+f*g

b)

1abc*+de*f+g*+

c)

++a*bc*+*defg

d)

abc+*+defg*+*

69.

Số lượng nút TỐI ĐA trong cây tìm kiếm nhị phân có chiều cao = 5 là bao nhiêu?

a)

26-1

b)

25-1

c)

25

d)

26

e)

6

70.

Số lượng nút TỐI THIỂU trong cây tìm kiếm nhị phân có chiều cao = 5 là bao nhiêu?

a)

6

b)

5

c)

26-1

d)

25-1

e)

25

71.

Khi nào cây AVL cần thực hiện xoay?

a)

Khi cây bị mất cân bằng

b)

Khi chèn phần tử vào

c)

Khi xóa phần tử

d)

Tất cả các đáp án trên

72.

Thời gian trung bình để xóa một phần tử khỏi cây AVL là bao nhiêu?

a)

O(n)

b)

O(log n)

c)

O(n^2)

d)

O(1)

73.

Phép xoay nào thực hiện trong cây AVL để cân bằng cây sau khi chèn một phần tử vào cây con phải của cây con trái?

a)

a) Xoay phải

b)

b) Xoay trái

c)

c) Xoay trái kép

d)

d) Xoay phải kép

74.

Phép xoay nào thực hiện trong cây AVL để cân bằng cây sau khi chèn một phần tử vào cây con phải của cây con phải?

a)

a) Xoay phải

b)

b) Xoay trái

c)

c) Xoay trái kép

d)

d) Xoay phải kép

75.

Trong cây AVL, khi chèn một phần tử có thể gây ra bao nhiêu lần xoay tối đa?

a)

1

b)

2

c)

3

d)

4

76.

Phép xoay nào thực hiện trong cây AVL để cân bằng cây sau khi chèn một phần tử vào cây con trái của cây con phải?

a)

a) Xoay phải

b)

b) Xoay trái

c)

c) Xoay trái kép

d)

d) Xoay phải kép

77.

Phép xoay nào thực hiện trong cây AVL để cân bằng cây sau khi chèn một phần tử vào cây con trái của cây con trái?

a)

Xoay phải

b)

Xoay trái

c)

Xoay trái kép

d)

Xoay phải kép

78.

Trong cây AVL, chiều cao của một cây con bên trái là 3 và chiều cao của cây con bên phải là 1. Đây là tình huống gì?

a)

a) Cân bằng

b)

b) Mất cân bằng cần xoay phải

c)

c) Mất cân bằng cần xoay trái

d)

d) Không cần xoay

79.

Cây AVL có thể được sử dụng trong ứng dụng nào sau đây?

a)

a) Hệ thống cơ sở dữ liệu

b)

b) Hệ thống tập tin

c)

c) Trình biên dịch

d)

d) Tất cả các ứng dụng trên

80.

Thao tác xoay trái được sử dụng khi nào trong cây AVL?

a)

  Khi cây con phải cao hơn cây con trái 

b)

   Khi cây con trái cao hơn cây con phải 

c)

   Khi thêm một nút mới vào cây con phải của cây con phải 

d)

   Khi thêm một nút mới vào cây con trái của cây con trái 

81.

Hệ số cân bằng của nút có giá trị 15 là bao nhiêu?

(a)  

82.

Hệ số cân bằng của nút có giá trị 345 là bao nhiêu?

(a)  

83.

Cây sau đây có phải là cây AVL không?

a)

phải

b)

không

84.

Hệ số cân bằng của nút gốc là gì?

(a)  

85.

Cây này bị mất cân bằng. Chúng ta cần thực hiện bao nhiêu vòng quay để cây trở nên cân bằng?

(a)  

86.

u := N;

For i:=1 to N do if T[i] >= 0 then u:=u-1;

Đoạn lệnh trên tính thông tin nào?

a)

Đếm số dương của mảng T

b)

Đếm số âm có trong mảng T

c)

Tổng số lẻ trong mảng T

d)

Tổng số dương trong mảng T

87.

Cho câu lệnh:

FOR i:=1 TO 100 DO A[i]:= Random(50)-Random(50);

Hãy cho biết giá trị của mảng A trong câu lệnh trên nhận giá trị nguyên trong đoạn nào?

a)

Từ -49 đến 49

b)

Từ -49 đến 50

c)

Từ -50 đến 50

d)

Từ -50 đến 49

88.

a)

2

b)

3

c)

6

d)

Chương trình lỗi

89.

Trong lập trình C#, cho biết kết quả của đoạn chương trình sau?

float[,] a = new float[2, 3] { { 1, 2, 3}, { 4, 5, 6} };

Console.Write(a[1,2]);

a)

2

b)

3

c)

5

d)

6

90.

Trong danh sách liên kết đơn, thao tác thêm một phần tử vào đầu danh sách có độ phức tạp thời gian là bao nhiêu?

a)

O(1)

b)

O(n)

c)

O(log n)

d)

O(n^2)

91.

Khi so sánh việc cài đặt dữ liệu bằng mảng (Array) và danh sách liên kết (Linked List), điểm mạnh chính của mảng là gì?

a)

Thêm và xóa phần tử dễ dàng hơn.

b)

Truy xuất phần tử ngẫu nhiên với thời gian truy xuất cố định.

c)

Tiết kiệm không gian lưu trữ.

d)

Có khả năng mở rộng kích thước dữ liệu một cách linh hoạt.

92.

a)

Giá trị của node đầu tiên trong danh sách liên kết.

b)

Giá trị của node cuối cùng trong danh sách liên kết.

c)

Số lần lặp được thực hiện trong vòng lặp.

d)

Trả về "true" nếu danh sách liên kết chứa giá trị value, ngược lại trả về "false".

93.

a)

Chèn một node mới vào đầu danh sách liên kết.

b)

Chèn một node mới vào cuối danh sách liên kết.

c)

Xóa node đầu tiên của danh sách liên kết.

d)

Tạo ra một danh sách liên kết mới.

94.

a)

Chèn một node mới vào danh sách liên kết.

b)

Xóa node đầu tiên của danh sách liên kết.

c)

Xóa node có giá trị bằng 'value' khỏi danh sách liên kết.

d)

Tạo ra một danh sách liên kết mới.

95.

a)

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

b)

Giá trị của node đầu tiên trong danh sách liên kết.

c)

Số lần lặp được thực hiện trong vòng lặp.

d)

Giá trị của node cuối cùng trong danh sách liên kết.

96.

a)

2

b)

3

c)

4

d)

5

97.

định nghĩa cấu trúc dữ liệu

a)

cách thức tổ chức dữ liệu trong bộ nhớ để truy cập và cập nhật thuận tiện

b)

dãy hữu hạn các bước tính toán để thu được đầu ra ứng với đầu vào

c)

trang bị kiến thức để thiết kế và cài đặt các cấu trúc dữ liệu và thuật toán hiệu quả để giải quyết các bài toán tính toán

d)

hệ quản trị dữ liệu,tính toán tối ưu hóa,trí tuệ nhân tạo, hệ điều hành,...

98.

định nghĩa thuật toán

a)

cách thức tổ chức dữ liệu trong bộ nhớ để truy cập và cập nhật thuận tiện

b)

dãy hữu hạn các bước tính toán để thu được đầu ra ứng với đầu vào

c)

trang bị kiến thức để thiết kế và cài đặt các cấu trúc dữ liệu và thuật toán hiệu quả để giải quyết các bài toán tính toán

d)

hệ quản trị dữ liệu,tính toán tối ưu hóa,trí tuệ nhân tạo, hệ điều hành,...

99.

mục tiêu môn học cấu trúc dữ liêu và giải thuật

a)

cách thức tổ chức dữ liệu trong bộ nhớ để truy cập và cập nhật thuận tiện

b)

dãy hữu hạn các bước tính toán để thu được đầu ra ứng với đầu vào

c)

trang bị kiến thức để thiết kế và cài đặt các cấu trúc dữ liệu và thuật toán hiệu quả để giải quyết các bài toán tính toán

d)

hệ quản trị dữ liệu,tính toán tối ưu hóa,trí tuệ nhân tạo, hệ điều hành,...

100.

ứng dụng của cấu trúc dữ liệu và thuật toán

a)

cách thức tổ chức dữ liệu trong bộ nhớ để truy cập và cập nhật thuận tiện

b)

dãy hữu hạn các bước tính toán để thu được đầu ra ứng với đầu vào

c)

trang bị kiến thức để thiết kế và cài đặt các cấu trúc dữ liệu và thuật toán hiệu quả để giải quyết các bài toán tính toán

d)

hệ quản trị dữ liệu,tính toán tối ưu hóa,trí tuệ nhân tạo, hệ điều hành,...

101.

định nghĩa nào đúng về cấu trúc dữ liệu :

a)

cách thức tổ chức dữ liệu trong bộ nhớ để truy cập và cập nhật thuận tiện hơn

b)

cách thức tổ chức dữ liệu trong máy tính để truy cập và cập nhật thuận tiện hơn

c)

cách thức sử dụng dữ liệu trong bộ nhớ để truy cập và cập nhật thuận tiện hơn

d)

cách thức sử dụng dữ liệu trong máy để truy cập và cập nhật thuận tiện hơn

102.

định nghĩa về thuật toán nào sau đây đúng

a)

dãy hữu hạn các bước tính toán để thu được đầu ra ứng với đầu vào

b)

dãy vô hạn các bước tính toán để thu được đầu ra ứng với đầu vào

c)

dãy hữu hạn các bước lập trình để thu được đầu ra ứng với đầu vào

d)

dãy hữu hạn các bước tính toán để thu được đầu vào ứng với đầu ra

103.

nêu một vài ứng dụng của cấu trúc dữ liệu và thuật toán

a)

hệ quản trị cơ sở dữ liệu

b)

tính toán tối ưu hóa

c)

trí tuệ nhân tạo, thị giác máy tính

d)

hệ điều hành

e)

hệ quản trị thông

104.

mã giả là gì

a)

mô tả thuật toán đơn giản , gần gũi ,ngắn gọn và không phụ thuộc vào cú pháp ngôn ngữ lập trình cụ thể

b)

mô tả thuật toán phức tạp, khó hiểu nhưng ngắn gọn và không phụ thuộc vào cú pháp của ngôn ngữ lập trình cụ thể

c)

mô tả thuật toán đơn giản ,gần gũi,ngắn gọn nhưng phụ thuộc vào cú pháp của ngôn ngữ lập trình cụ thể

d)

mô tả thuật toán đơn giản ,gần gũi nhưng dài dòng dù không phụ thuộc vào cú pháp ngôn ngữ lập trình cụ thể

105.

một bài có thể có nhiều thuật toán giải quyết là đúng hay sai

a)

đúng

b)

sai

106.

phân tích độ phức tạp thuật toán , ta xét những yếu tố nào sau đây

a)

thời gian

b)

bộ nhớ sử dụng

c)

độ dài của nguồn lệnh

d)

khoảng thời gian cần để viết chương trình