wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Page 1

Total questions: 99

Worksheet time: 50mins

Name
Class
Date
1.

Giải thuật đệ quy là gì?

a)

Trong giải thuật có lời gọi tới chính nó nhưng với phạm vi nhỏ hơn.

b)

Trong giải thuật có lời gọi tới chính nó nhưng với phạm vi lớn hơn.

c)

Trong giải thuật có lời gọi tới một giải thuật khác đã biết kết quả.

d)

Trong giải thuật có lời gọi tới chính nó.

2.

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

a)

Nếu lời giải của một bài toán T được giải bằng lời giải của một bài toán T1 khác T, thì lời giải đó được gọi là lời giải đệ quy.

b)

Nếu lời giải của một bài toán T được giải bằng lời giải của một bài toán T1, có dạng giống như T, thì lời giải đó được gọi là lời giải đệ quy.

c)

Nếu lời giải của một bài toán T được giải bằng lời giải của một bài toán T1 mà T1 giải được thì lời giải đó được gọi là lời giải đệ quy.

d)

Nếu lời giải của một bài toán T được giải bằng lời giải của một bài toán T1 mà T1 có độ phức tạp khác T, thì lời giải đó được gọi là lời giải đệ quy.

3.

Đặc điểm của giải thuật đệ quy là gì?

a)

Trong thủ tục đệ quy có lời gọi đến chính thủ tục đó.

b)

Sau mỗi lần có lời gọi đệ quy thì kích thước của bài toán được thu nhỏ hơn trước.

c)

Có một trường hợp đặc biệt, trường hợp suy biến; khi trường hợp này xảy ra thì bài toán còn lại sẽ được giải quyết theo một cách khác.

d)

Tất cả đều đúng.

4.

Danh sách tuyến tính là gì?

a)

Danh sách mà quan hệ lân cận giữa các phần tử được xác định.

b)

Danh sách dạng được lưu dưới dạng mảng.

c)

Danh sách tuyến tính là một danh sách rỗng.

d)

Danh sách tuyến tính là một danh sách có dạng (a1, a2, ... an).

5.

Ưu điểm của việc cài đặt danh sách bằng mảng là gì?

a)

Có thể bổ sung hoặc xóa một phần tử bất kỳ trong mảng.

b)

Việc truy nhập vào phần tử của mảng được thực hiện trực tiếp dựa vào địa chỉ tính được (chỉ số), nên tốc độ nhanh và đồng đều đối với mọi phần tử.

c)

Có thể thay đổi số lượng phần tử theo ý muốn của người dùng.

d)

Tất cả các ý trên đều đúng.

6.

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

a)

Là một danh sách tuyến tính trong đó phép bổ sung một phần tử vào ngăn xếp được thực hiện ở một đầu, và phép loại bỏ được thực hiện ở đầu kia.

b)

Là một danh sách tuyến tính trong đó phép bổ sung một phần tử vào ngăn xếp và phép loại bỏ một phần tử khỏi ngăn xếp luôn luôn thực hiện ở một đầu gọi là đỉnh.

c)

Là một danh sách tuyến tính trong đó phép bổ sung một phần tử vào ngăn xếp thực hiện ở đầu, còn phép loại bỏ thực hiện ở giữa.

d)

Là một danh sách tuyến tính trong đó việc bổ sung và loại bỏ phần tử luôn thực hiện tại nhiều đầu khác nhau.

7.

Danh sách tuyến tính dạng ngăn xếp làm việc theo nguyên tắc:

a)

FIFO (first in first out)

b)

LILO (last in last out)

c)

LIFO (last in first out)

d)

FOLO (first out last out)

8.

Khi đổi một số nguyên từ hệ thập phân sang hệ nhị phân, người ta dùng phép chia liên tiếp cho 2 và lấy các số dư 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)

Hàng đợi (Queue)

b)

Mảng (Array)

c)

Bản ghi (Record)

d)

Ngăn xếp (Stack)

9.

Định nghĩa danh sách tuyến tính Hàng đợi (Queue) là:

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 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).

c)

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).

d)

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.

10.

Hàng đợi còn được gọi là danh sách kiểu:

a)

FIFO (first in first out)

b)

LILO (last in last out)

c)

LIFO (last in first out)

d)

FOLO (first out last out)

11.

Để thêm một đối tượng x bất kỳ vào Stack, thao tác thường dùng là:

a)

POP(x)

b)

EMPTY(x)

c)

TOP(x)

d)

PUSH(x)

12.

Để loại bỏ một đối tượng ra khỏi Stack, thao tác thường dùng là:

a)

POP(x)

b)

PUSH(x)

c)

TOP(x)

d)

EMPTY(x)

13.

Để biểu diễn Stack, ta thường sử dụng kiểu dữ liệu nào sau đây?

a)

Danh sách móc nối và mảng dữ liệu

b)

Kiểu bản ghi

c)

Mảng dữ liệu

d)

Danh sách móc nối

14.

Thao tác POP(x) dùng trong Stack là để:

a)

Xóa bỏ một dãy các phần tử ra khỏi Stack

b)

Xóa bỏ một phần tử bất kì khỏi Stack

c)

Lấy phần tử đầu tiên ra khỏi Stack

d)

Lấy một phần tử cuối cùng ra khỏi đỉnh Stack

15.

Thao tác PUSH(x) dùng trong Stack là để:

a)

Bổ sung một phần tử vào đầu Stack

b)

Bổ sung một dãy các phần tử vào đỉnh Stack

c)

Bổ sung một phần tử vào đỉnh Stack

d)

Bổ sung một phần tử bất kì vào Stack

16.

Cho Stack gồm 5 phần tử {12, 5, 20, 23, 25}, trong đó 25 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(25), POP(23), POP(20)

b)

POP(25), POP(23), POP(20), PUSH(23), PUSH(25)

c)

POP(25), POP(23), POP(20), PUSH(25), PUSH(23)

d)

POP(25), POP(23), PUSH(20), PUSH(25), PUSH(23)

17.

Trong lưu trữ dữ liệu kiểu Queue (Q) dưới dạng mảng nối vòng, giả sử F là con trỏ tới lối trước của Q, R là con trỏ tới lối sau của Q. Điều kiện F=R=0 nghĩa là:

a)

Queue rỗng

b)

Kiểm tra chỉ số trước và chỉ số sau của Queue có bằng nhau không

c)

Queue tràn

d)

Đặt phần tử đầu và phần tử cuối của Queue bằng 0

18.

Trong lưu trữ dữ liệu kiểu Queue (Q), giả sử F là con trỏ tới lối trước của Q, R là con trỏ tới lối sau của Q. Khi thêm một phần tử vào Queue, thì R và F thay đổi thế nào?

a)

F=F-1, R không thay đổi

b)

F không thay đổi, R=R-1

c)

F=F+1, R không thay đổi

d)

F không thay đổi, R=R+1

19.

Trong lưu trữ dữ liệu kiểu Queue (Q), giả sử F là con trỏ trỏ tới lối trước của Q, R là con trỏ trỏ tới lối sau của Q. Khi loại bỏ một phần tử vào Queue, thì R và F thay đổi thế nào?

a)

F=F-1, R không thay đổi

b)

F không thay đổi, R=R-1

c)

F không thay đổi, R=R+1

d)

F=F+1, R không thay đổi

20.

Trong biểu diễn dữ liệu dưới dạng cây, cấp của cây chính là:

a)

Cấp cao nhất của nút lá

b)

Cấp cao nhất của một nút trên cây

c)

Tổng số nút trên cây

d)

Cấp cao nhất của nút gốc

21.

Trong biểu diễn dữ liệu dưới dạng cây, nút có cấp bằng 0 gọi là:

a)

b)

Phần tử cuối cùng trong cây

c)

Không có đáp án nào đúng

d)

Gốc

22.

Mỗi nút trong cây có thể có tối đa:

a)

1 nút con

b)

Nhiều nút con

c)

3 nút con

d)

2 nút con

23.

Khi lưu trữ cây nhị phân dưới dạng mảng, nếu vị trí của nút cha trong mảng là i thì vị trí của nút con trái là:

a)

i1i-1

b)

2i2*i

c)

i+1i+1

d)

2i+12*i+1

24.

Khi lưu trữ cây nhị phân dưới dạng mảng, nếu vị trí của nút cha trong mảng là i thì vị trí của nút con phải là:

a)

i+1i+1

b)

2i2*i

c)

2i+12*i+1

d)

i1i-1

25.

Khi lưu trữ cây nhị phân dưới dạng mảng, nếu vị trí của nút cha trong mảng là 3 thì vị trí tương ứng của nút con sẽ là:

a)

6

b)

6 và 7

c)

4

d)

7

26.

Khi lưu trữ cây nhị phân dưới dạng mảng, nếu vị trí của nút cha trong mảng là 3 thì vị trí tương ứng của nút con trái sẽ là:

a)

2

b)

4

c)

7

d)

6

27.

Khi lưu trữ cây nhị phân dưới dạng mảng, nếu vị trí của nút cha trong mảng là 3 thì vị trí tương ứng của nút con phải sẽ là:

a)

2

b)

4

c)

6

d)

7

28.

Duyệt cây nhị phân theo thứ tự trước được thực hiện theo thứ tự:

a)

Duyệt cây con trái theo thứ tự trước, thăm gốc giữa, duyệt cây con phải theo thứ tự sau.

b)

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

c)

Nút 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 trước, duyệt cây con trái theo thứ tự giữa, duyệt cây con phải theo thứ tự sau.

29.

Duyệt cây nhị phân theo thứ tự giữa được thực hiện theo thứ tự:

a)

Thăm gốc trước, duyệt cây con trái theo thứ tự giữa, duyệt cây con phải theo thứ tự sau.

b)

Duyệt cây con trái theo thứ tự trước, thăm gốc giữa, duyệt cây con phải theo thứ tự sau.

c)

Duyệt cây con trái theo thứ tự giữa, thăm gốc, duyệt cây con phải theo thứ tự giữa.

d)

Thăm gốc, duyệt cây con trái theo thứ tự giữa, duyệt cây con phải theo thứ tự giữa.

30.

Duyệt cây nhị phân theo thứ tự sau được thực hiện theo thứ tự:

a)

Thăm gốc, duyệt cây con trái theo thứ tự sau, duyệt cây con phải theo thứ tự sau.

b)

Duyệt cây con trái theo thứ tự sau, duyệt cây con phải theo thứ tự sau, thăm gốc.

c)

Duyệt cây con trái theo thứ tự trước, thăm gốc giữa, duyệt cây con phải theo thứ tự sau.

d)

Thăm gốc trước, duyệt cây con trái theo thứ tự giữa, duyệt cây con phải theo thứ tự sau.

31.

Ý tưởng phương pháp sắp xếp chọn tăng dần (select 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)

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.

c)

Lần lượt lấy phần tử của danh sách chèn vị trí thích hợp của nó trong dãy.

d)

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 bé hơn được đưa lên vị trí trên.

32.

Ý tưởng phương pháp sắp xếp nổi bọt (bubble 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)

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.

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)

Lần lượt lấy phần tử của danh sách chèn vị trí thích hợp của nó trong dãy.

33.

Ý tưởng phương pháp sắp xếp chèn (insertion sort) là:

a)

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.

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 lấy phần tử của danh sách chèn 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.

d)

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...

34.

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

a)

Chọn một phần tử làm chốt (pivot), phân hoạch dãy thành hai phần theo chốt, rồi đệ quy sắp xếp hai phần.

b)

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; tiếp tục với phần tử nhỏ thứ hai, ba...

c)

Lần lượt lấy mỗi phần tử và chèn vào vị trí thích hợp bằng cách dịch các phần tử lớn hơn sang phải.

d)

Trộn dần các dãy con đã được chia thành dãy lớn hơn cho đến khi toàn bộ dãy được sắp xếp.

35.

Phương pháp sắp xếp nhanh (Quick sort) chính là phương pháp:

a)

Phân đoạn

b)

Vun đống

c)

Chèn

d)

Trộn

36.

Ý 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)

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.

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 con lại gồm các phần tử lớn hơn khoá).

d)

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...

37.

Ý tưởng của giải thuật tìm kiếm nhị phân:

a)

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.

b)

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.

c)

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.

d)

Tìm kiếm dựa vào cây nhị tìm kiếm.

38.

Tư tưởng của giải thuật tìm kiếm trên cây nhị phân tìm kiếm

a)

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ó khóa cần tìm.

b)

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.

c)

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.

d)

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

39.

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

a)

Là cây nhị phân đầy đủ.

b)

Cây nhị phân mà mỗi nút trong cây đều thỏa tính chất: giá trị của nút cha nhỏ hơn mọi nút trên cây con trái và lớn hơn mọi nút trên cây con phải của nó.

c)

Cây nhị phân mà mỗi nút trong cây đều thỏa tính chất: giá trị của nút cha lớn hơn giá trị của hai nút con.

d)

Cây nhị phân thỏa tính chất heap

40.

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)

Quick sort, Bubble sort

c)

Quick sort, Insert sort

d)

Quick sort, Merge sort

41.

Cho dãy số {6 1 3 0 5 7 9 2 8 4}\{6\ 1\ 3\ 0\ 5\ 7\ 9\ 2\ 8\ 4\} , áp dụng phương pháp sắp xếp lựa chọn (Select sort). Dãy số thu được sau lần lặp thứ hai là:

a)

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

b)

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

c)

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

d)

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

42.

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). Dãy số thu được sau lần lặp thứ ba là:

a)

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

b)

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

c)

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

d)

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

43.

Cho dãy số {4 0 2 8 5 9 6 1 3 7}, áp dụng phương pháp sắp xếp chèn (Insert sort). Dãy số thu được sau lần lặp thứ bốn là:

a)

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

b)

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

c)

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

d)

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

44.

Cho dãy số {3 1 6 0 5 4 8 2 9 7}, áp dụng phương pháp sắp xếp nhanh (Quick sort). Dãy số thu được sau lần lặp thứ bốn là:

a)

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

b)

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

c)

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

d)

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

45.

Cho dãy số: 12 2 8 5 1 6 4 15 và các bước sắp xếp sau: Bước 1: 1 2 8 5 12 6 4 15 Bước 2: 1 2 8 5 12 6 4 15 Bước 3: 1 2 4 5 12 6 8 15 Bước 4: 1 2 4 5 12 6 8 15 Bước 5: 1 2 4 5 6 12 8 15 Bước 6: 1 2 4 5 6 8 12 15 Các bước trên dựa theo giải thuật sắp xếp nào?

a)

Select sort

b)

Quick sort

c)

Insert sort

d)

Bubble sort

46.

Cho dãy số: "4 7 0 9 2 5 3 1 8 6" và các bước sắp xếp sau: Bước 1: 0 4 7 1 9 2 5 3 6 8 Bước 2: 0 1 4 7 2 9 3 5 6 8 Bước 3: 0 1 2 4 7 3 9 5 6 8 Bước 4: 0 1 2 3 4 7 5 9 6 8 Bước 5: 0 1 2 3 4 5 7 6 9 8 Bước 6: 0 1 2 3 4 5 6 7 8 9 Các bước trên dựa theo giải thuật sắp xếp nào?

a)

Select sort

b)

Quick sort

c)

Insert sort

d)

Bubble sort

47.

Các bước trên dựa theo giải thuật sắp xếp nào?

a)

Bubble sort

b)

Select sort

c)

Quick sort

d)

Insert sort

48.

Cho dãy số: "5 1 4 2 7 3" và các bước sắp xếp sau: Bước 1: 1 5 4 2 7 3 Bước 2: 1 4 5 2 7 3 Bước 3: 1 2 4 5 7 3 Bước 4: 1 2 4 5 7 3 Bước 5: 1 2 3 4 5 7 Các bước trên dựa theo giải thuật sắp xếp nào?

a)

Select sort

b)

Insert sort

c)

Quick sort

d)

Bubble sort

49.

Cho dãy số: 3 1 6 0 5 4 8 2 9 7 và các bước sắp xếp sau: Bước 1: 1 3 6 0 5 4 8 2 9 7 Bước 2: 1 3 6 0 5 4 8 2 9 7 Bước 3: 1 3 6 0 5 4 8 2 9 7 Bước 4: 0 1 3 5 6 4 8 2 9 7 Bước 5: 0 1 3 5 6 4 8 2 9 7 Bước 6: 0 1 3 5 6 2 4 8 9 7 Bước 7: 0 1 3 5 6 2 4 8 7 9 Bước 8: 0 1 3 5 6 2 4 7 8 9 Bước 9: 0 1 2 3 4 5 6 7 8 9 Các bước trên dựa theo giải thuật sắp xếp nào?

a)

Quick sort

b)

Select sort

c)

Merge sort

d)

Insert sort

50.

Cho dãy số sau: 10 11 14 32 36 43 55 57 87 97. Áp dụng phương pháp tìm kiếm nhị phân, sau bao nhiêu lần phân đoạn ta sẽ tìm thấy số 43?

a)

2 lần

b)

4 lần

51.

Tính chất nào sau đây là tính chất của cây nhị phân tìm kiếm:

a)

Mọi khóa thuộc cây con trái nút đó đều lớn hơn khóa ứng với nút đó.

b)

Đáp án A và C.

c)

Mọi khóa thuộc cây con trái nút đó đều nhỏ hơn khóa ứng với nút đó.

d)

Mọi khóa thuộc cây con trái nút đó đều lớn hơn khóa cây con phải nút đó.

52.

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

a)

Thuật toán là một dãy hữu hạn các bước, mỗi bước mô tả chính xác các phép toán hoặc hành động cần thực hiện để giải quyết vấn đề đặt ra.

b)

Thuật toán là một dãy hữu hạn các bước, tất cả các phép toán có mặt trong các bước của thuật toán phải đủ đơn giản.

c)

Thuật toán là nòng cốt của chương trình.

d)

Thuật toán cần có một hoặc nhiều dữ liệu ra (output), dữ liệu vào (input).

53.

Sắp xếp theo thứ tự tăng dần của cấp thời gian thực hiện chương trình Chú ý: (log2n) = Log cơ số 2 của n

a)

O(nlog2n), O(n), O(log2n), O(1)

b)

O(log2n), O(n), O(nlog2n), O(1)

c)

O(1), O(nlog2n), O(n), O(log2n)

d)

O(1), O(log2n), O(n), O(nlog2n)

54.

Định nghĩa cấu trúc dữ liệu Stack:

a)

Stack là một danh sách đặc biệt mà phép thêm vào được thực hiện ở một đầu, và phép loại bỏ được thực hiện ở phần kia của stack.

b)

Stack là một danh sách đặc biệt mà phép thêm vào hoặc loại bỏ một phần tử chỉ thực hiện tại một đầu gọi là đỉnh (Top) của Stack.

c)

Stack là danh sách kết nối.

d)

Stack là cấu trúc dữ liệu được cài đặt bằng con trỏ.

55.

Để cài đặt Stack ta có thể dùng phương pháp nào sau đây:

a)

Bằng con trỏ và bằng mảng

b)

Bằng con trỏ

c)

Bằng mảng

d)

Tất cả đều sai

56.

Hãy cho biết hàm sau dùng để làm gì Position ham (List L) { Position P; P=L; while (P->Next!=NULL) P=P->Next; return P; }

a)

Xác định phần tử đầu tiên.

b)

Xác định phần tử cuối cùng.

c)

Xác định phần tử đứng sau P.

d)

Xác định phần tử đứng trước P.

57.

Hãy cho biết hàm sau dùng để làm gì? Position ham2 (ElementType X, List L) { Position P; int f=0; P=L; while (P->Next!=NULL&&f==0) if (P->Next->Element==X) f=1; else P=P->Next; return P->Next; }

a)

Xác định vị trí phần tử đứng sau X.

b)

Xác định vị trí của phần tử có nội dung là X.

c)

Xác định phần tử đứng sau X.

d)

Xác định vị trí phần tử đứng trước X.

58.

Hãy cho biết đoạn chương trình sau dùng để làm gì? cout<Next->Element<<" "; I=L->Next; } Chọn một đáp án đúng.

a)

In từ đầu danh sách đến X.

b)

In từ đầu danh sách đến X xuất hiện đầu tiên.

c)

In từ đầu danh sách đến X xuất hiện cuối cùng.

d)

In từ đầu danh sách đến X xuất hiện lần 2.

59.

Câu 59: Hãy cho biết hàm sau dùng để làm gì? void them (ElementType X, ElementType Y, List &L) { Position P,Q; P=L; while (P->Next!=NULL) { if (P->Next->Element==Y) Q=P->Next; P=P->Next; } InsertList(X,Q,L); } Chọn một đáp án đúng.

a)

Thêm X vào sau Y xuất hiện sau cùng.

b)

Thêm X vào trước Y xuất hiện sau cùng.

c)

Thêm X vào sau Y xuất hiện đầu tiên.

d)

Thêm X vào trước Y xuất hiện đầu tiên.

60.

Câu 60: Hãy cho biết hàm sau dùng để làm gì? void xoa (ElementType X, List &L) { Position P; P=L; while (P->Next!=NULL) { if (P->Next->Element==X) DeleteList(P,L); else P=P->Next; } PrintList(L); } Chọn một đáp án đúng.

a)

Xóa phần tử có nội dung là X đầu tiên.

b)

Xóa phần tử có nội dung là X cuối cùng.

61.

Đá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. Chọn một đáp án đúng.

a)

thời gian, dung lượng bộ nhớ

b)

tính đơn giản, thời gian

c)

độ khó, thời gian

d)

dung lượng bộ nhớ, độ khó

62.

Cho mô hình minh họa việc thêm một phần tử có nội dung là X vào danh sách liên kết đơn; các bước (1)–(4) được đánh số trong hình. Hỏi câu lệnh nào sau đây tương ứng với bước (3) trong mô hình?

a)

P->Next = Temp;

b)

Position Temp = new Node;

c)

Temp->Element = X;

d)

Temp->Next = P->Next;

63.

Lời gọi hàm Swap(5, 10) sẽ không báo lỗi đối với hàm nào sau đây?

a)

void Swap(int a, int b) { int t = a; b = t; a = b; }

b)

void Swap(int &a, int &b) { int t = a; a = b; b = t; }

64.

Quá trình khử đệ quy bằng cách sử dụng ngăn xếp được thực hiện qua bao nhiêu bước? Chọn một.

a)

4 bước

b)

5 bước

c)

2 bước

d)

3 bước

65.

Trong ngôn ngữ lập trình C/C++ có các cấu trúc điều khiển sau. Chọn một.

a)

Tuần tự và lặp

b)

Tuần tự, rẽ nhánh và lặp

c)

Tuần tự và rẽ nhánh

d)

Rẽ nhánh và lặp

66.

Cho hàm dưới đây. Lời gọi Func(5, 4, 3) sẽ trả về kết quả là gì? Chọn một.

a)

9

b)

8

c)

12

d)

7

67.

Phát biểu nào mô tả đúng cách lưu trữ dữ liệu trong bộ nhớ máy tính sao cho nó có thể được sử dụng một cách hiệu quả?

a)

cách lưu trữ dữ liệu trong bộ nhớ máy tính (HDD), sao cho nó có thể được sử dụng một cách hiệu quả.

b)

cách lưu trữ dữ liệu trong bộ nhớ máy tính (ROM), sao cho nó có thể được sử dụng một cách hiệu quả.

c)

cách lưu trữ dữ liệu trong bộ nhớ máy tính (USB), sao cho nó có thể được sử dụng một cách hiệu quả.

d)

cách lưu trữ dữ liệu trong bộ nhớ máy tính (RAM), sao cho nó có thể được sử dụng một cách hiệu quả.

68.

Cho hàm xoá một phần tử khỏi hàng đợi như sau. Ta có thể bỏ câu lệnh nào mà hàm trên vẫn thực hiện đúng chức năng của nó?

a)

Câu lệnh (4).

b)

Câu lệnh (2).

c)

Câu lệnh (3).

d)

Câu lệnh (1).

69.

Phát biểu nào sau đây là đúng?

a)

Ngăn xếp có tính chất "vào trước ra trước".

b)

Ta chỉ có thể cài đặt ngăn xếp bằng con trỏ.

c)

Ngăn xếp là danh sách hạn chế việc thêm vào thực hiện ở một đầu và loại bỏ thực hiện ở đầu còn lại.

d)

Ngăn xếp có tính chất "vào trước ra sau".

70.

Sắp xếp các câu lệnh sau theo thứ tự đúng cho quy trình thêm một phần tử có nội dung X vào sau vị trí P trong danh sách liên kết đơn. Các câu lệnh: (1) Position Temp = new Node; (2) P->Next = Temp; (3) Temp->Element = X; (4) Temp->Next = P->Next. Select one:

a)

(2) (4) (3) (1)

b)

(1) (2) (3) (4)

c)

(4) (3) (2) (1)

d)

(1) (3) (4) (2)

71.

Cho hàm sau (C/C++) và chọn phát biểu sai. Định nghĩa: int Func(int n, int a, int b) { if(n==0) return a*b; else return Func(n-2,a-2,b)*Func(n-2,a,b-2); }. Select one:

a)

Lời gọi hàm Func(5, 6, 7) không trả về kết quả vì không dừng đệ quy được.

b)

Lời gọi hàm Func(4, 5, 6) trả về kết quả là 8640.

c)

Lời gọi hàm Func(5, 6, 7) không trả về kết quả vì giá trị vượt quá miền giá trị kiểu int.

d)

Lời gọi hàm Func(4, 5, 7) và Func(4, 7, 5) trả về kết quả giống nhau.

72.

Phát biểu nào sau đây là đúng? Chọn một đáp án.

a)

Các hàm không thể gọi chính nó.

b)

Ta phải định nghĩa các hàm trước hàm main.

c)

Các hàm chỉ có thể được gọi trong hàm main.

d)

Ta có thể định nghĩa các hàm sau hàm main.

73.

Kiểu dữ liệu trừu tượng là ... Chọn một đáp án.

a)

kiểu dữ liệu mà người lập trình phải tự xây dựng dựa trên các kiểu dữ liệu cơ bản được cung cấp từ ngôn ngữ lập trình.

b)

kiểu dữ liệu mà người lập trình phải tự xây dựng dựa trên các kiểu dữ liệu cơ bản được cung cấp từ ngôn ngữ máy.

c)

kiểu dữ liệu mà người lập trình phải tự xây dựng không dựa trên các kiểu dữ liệu cơ bản được cung cấp từ ngôn ngữ lập trình.

d)

kiểu dữ liệu mà người lập trình phải tự xây dựng dựa trên các kiểu dữ liệu không cơ bản được cung cấp từ ngôn ngữ lập trình.

74.

Mối quan hệ giữa cấu trúc dữ liệu và giải thuật có thể minh hoạ bằng đẳng thức nào? Chọn một đáp án.

a)

Cấu trúc dữ liệu = Giải thuật

b)

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

c)

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

d)

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

75.

Phát biểu nào sau đây là sai? Chọn một đáp án.

a)

Con trỏ là một biến chứa địa chỉ của biến khác.

b)

Biến con trỏ không cho phép chúng ta thâm nhập trực tiếp vào bộ nhớ.

c)

Để con trỏ p trỏ tới x ta phải gán địa chỉ P của x cho p.

76.

Kiểu dữ liệu nào sau đây là kiểu dữ liệu cơ bản? Chọn một đáp án đúng.

a)

pointer

b)

struct

c)

mảng/dãy

d)

chuỗi

77.

Cho hàm Func được cài đặt trên danh sách liên kết đơn lưu các phần tử kiểu số nguyên như hình, hãy cho biết hàm thực hiện chức năng gì. Chọn một đáp án đúng.

a)

Xóa phần tử đầu tiên trong danh sách L.

b)

Xóa phần tử đứng trước phần tử cuối cùng trong danh sách L.

c)

Xóa phần tử tại vị trí P trong danh sách L.

d)

Xóa phần tử cuối cùng trong danh sách L.

78.

Xem đoạn mã chèn phần tử vào danh sách liên kết đơn với các câu lệnh được đánh số như sau: (1) Position Temp; (2) Temp = new Node; (3) Temp->Element = X; (4) Temp->Next = P->Next; (5) P->Next = Temp. Hai câu lệnh nào có thể ghép chung thành một? Chọn một đáp án.

a)

(3) và (4)

b)

(2) và (3)

c)

(1) và (2)

d)

(4) và (5)

79.

Dựa vào đoạn mã trong hình, hàm Func trên thực hiện chức năng gì? Chọn một đáp án.

a)

Ghép danh sách F2 vào chính giữa danh sách L1.

b)

Ghép danh sách F2 vào đầu danh sách L1.

c)

Ghép danh sách F2 vào trước phần tử thứ vt trong danh cách L1

d)

Ghép danh sách F2 vào sau phần tử thứ vt trong danh sách L1

80.

Chọn một đáp án: Đoạn mã sau (các dòng được đánh số) liên quan tới hàm InsertList: void InsertList(ElementType X, Position P, List &L) { Position Temp; Temp = new Node; (1) Temp.Element = X; (2) Temp->Next = P->Next; (3) P->Next = Temp; (4) }

a)

(2)

b)

(1)

c)

(4)

d)

(3)

81.

Xét hàm InsertList(ElementType X, Position P, List &L) cho danh sách liên kết đơn. Hai phiên bản mã nguồn trong hình lần lượt hoán đổi thứ tự các phép gán cho Temp->Element, Temp->Next và P->Next. Chọn thứ tự lệnh tạo và chèn nút Temp ngay sau vị trí P sao cho cấu trúc danh sách còn lại được giữ nguyên.

a)

Khởi tạo Temp; gán Temp->Element = X; gán P->Next = Temp; gán Temp->Next = P->Next

b)

Khởi tạo Temp; gán Temp->Next = P->Next; gán P->Next = Temp; gán Temp->Element = X

82.

Hàm nào sau đây thực hiện đúng chức năng thêm 1 phần tử vào đầu danh sách liên kết? A. void ThemDau(ElementType X, List &L) { Position Temp=new Node; Temp->Element=X; L->Next=Temp->Next; L->Next=Temp; } B. void ThemDau(ElementType X, List &L) { Position Temp=new Node; Temp->Element=X; L=Temp->Next; L->Next=Temp; } C.

a)

Chọn A

b)

Chọn B

83.

Select one: Một danh sách liên kết mà trường liên kết của phần tử cuối giữ địa chỉ của phần tử đầu được gọi là

a)

danh sách liên kết hạn chế

b)

danh sách liên kết vòng

c)

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

d)

danh sách liên kết đơn

84.

Phát biểu nào sau đây là đúng? Chọn một đáp án.

a)

cách 1 luôn tốt hơn cách 2

b)

Cách 2 luôn luôn tốt hơn cách 1,

c)

Dung lượng vùng nhớ của cách 1 không phụ thuộc vào số lượng sinh viên nhưng dung lượng trong vùng nhớ của cách 2 phụ thuộc vào số lượng sinh viên.

d)

Nếu số lượng sinh vien trong một lớp là 65 thì ta nên chọn cách 1 để khai báo

85.

Nếu x là một biến kiểu số nguyên, để con trỏ p trỏ đến biến x ta viết: Chọn một đáp án.

a)

p=x[0];

b)

p=*x;

c)

p=x;

d)

p = &x;

86.

Các loại danh sách hạn chế là Chọn một đáp án.

a)

Hàng đợi và danh sách liên kết

b)

Ngăn xếp và xếp hàng chờ

c)

Chồng và hàng đợi

d)

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

87.

Đặc điểm nào sau đây không phải của hàm có tính đệ qui. Chọn một đáp án đúng.

a)

Chương trình dễ viết và dễ đọc nhưng có thể khó hiểu.

b)

Chương trình viết ngắn gọn.

c)

Việc thực hiện gọi đi gọi lại hàm rất nhiều lần phụ thuộc vào độ lớn của đầu.

d)

Hàm đệ qui sử dụng vùng nhớ HEAP để lưu địa chỉ các lần gọi đệ qui.

88.

Phát biểu nào sau đây là sai. Đa số các thuật toán có thời gian thực thi tiệm cận tới một trong các hàm sau. Chọn một đáp án đúng.

a)

NN , NLogNNLogN , 2N2^N

b)

N, N2N^2 , 2N2^N

c)

N, N2+2logNN^2 + 2 \log N

d)

N^3, LogN

89.

Với p là biến con trỏ trỏ đến mảng, để giải phóng vùng nhớ cho p ta viết. Chọn một đáp án đúng.

a)

free p;

b)

delete p;

c)

delete[] p;

d)

p = free;

90.

Các kiểu dữ liệu cơ bản là .... Chọn một đáp án đúng.

a)

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

b)

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

c)

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

d)

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

91.

Phát biểu nào sau đây là đúng? Select one:

a)

Việc tổ chức để lưu trữ dữ liệu phục vụ cho chương trình không có ý nghĩa gì trong toàn bộ hệ thống chương trình

b)

Việc xây dựng cấu trúc dữ liệu không quyết định đến chất lượng cũng như công sức của người lập trình

c)

Giải thuật dùng để chỉ ra phương pháp hay cách thức giải quyết vấn đề

d)

Giải thuật chỉ có thể được minh hoạ bằng lưu đồ

92.

Cho hàm Func được cài đặt trên danh sách liên kết đơn như mô tả ở hình, trong đó các dòng (1)–(4) đã cho. Hãy chọn câu lệnh phù hợp để điền vào dòng (3) nhằm chèn nút mới Temp chứa giá trị X sau nút có giá trị Y. Select one:

a)

Temp->Next=T->Next;

b)

Temp->Next=NULL;

c)

T->Next=Temp->Next;

d)

P->Next=Temp;

93.

Chọn một đáp án: Để hàm Func thực hiện đúng chức năng thêm phần tử có nội dung X vào sau phần tử có nội dung Y xuất hiện sau cùng vào danh sách L thì câu lệnh (3) phải là ...

a)

Temp->Next-P->Next;

b)

Temp->Next-T->Next;

c)

P->Next=T->Next;

94.

Chọn một đáp án: Để có được chương trình ta cần phải xây dựng được cấu trúc dữ liệu, giải thuật và phải sử dụng được ...

a)

ngôn ngữ lập trình

b)

thuật toán

c)

cấu trúc chương trình

d)

dữ liệu

95.

Chọn một đáp án: Cho ngăn xếp S với kiểu phần tử là char đã có sẵn các phép toán cơ bản MakeNullStack (Tạo 1 ngăn xếp), EriptyStack (Kiểm tra ngăn xếp rỗng T hoặc F), Push (Thêm phần tử X vào đỉnh), Top (Trả về), Pop (Xoá). Hãy cho biết kết quả in trên màn hình sau khi thực hiện xong chuỗi các thao tác: KH#OAI#CON##GNGH#E##. Quy ước: đã khởi tạo ngăn xếp S trước, mỗi chữ cái tượng trưng cho thao tác thêm chữ cái đó vào ngăn xếp S; mỗi dấu # tượng trưng cho thao tác lấy nội dung phần tử ở đỉnh ngăn xếp S, in lên màn hình và xoá phần tử này.

a)

HANOHEG

b)

HAONENG

c)

HANDEHG

d)

HAONHEG

96.

Chọn một đáp án: Danh sách thường được phân thành bao nhiêu loại

a)

4 loại

b)

5 loại

c)

2 loại

d)

3 loại

97.

Giả sử trong danh sách liên kết đơn đã cài đặt các phép toán cơ bản sau: FIRST(List L): xác định phần tử đầu tiên của danh sách, INSERTLIST(ElementType X, Position P, List &L) cho phép thêm một phần tử có nội dung là X vào sau vị trí P trong danh sách liên kết PREVIDUS(Position P, List L), là về phần tử phía trước P. Câu lệnh nào sau đây cho phép thêm một phần tử vào đầu danh sách? Select one:

a)

INSERTLIST(X, L, L)

b)

INSERTLIST(X, PREVIOUS(FIRST(L)), L)

c)

INSERTLISTIX. PREVIOUS(L), L)

d)

INSERTLISTOXX, FIRST(L), LX

98.

Khai báo nào sau đây không đúng cho hàm thực hiện chức năng tách danh sách liên kết L1 thành hai danh sách L2 và L3? Select one:

a)

void Split(List L1, List &L2. List &L3)

b)

void Split(List L1. List &L3)

c)

List Split(List L1. List &L2)

d)

void Split(List &L1, List L2. List L3)

99.

Phát biểu nào sau đây là sai? Select one:

a)

Phép toán cơ bản trên hàng đợi là insertqueue

b)

Phép toán cơ bản trên hàng đợi là dequeue

c)

Phép toán cơ bản trên hàng đợi là emptyqueue

d)

Phép toán cơ bản trên hàng đợi là enqueue