wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Câu hỏi về Giải thuật và Cấu trúc dữ liệu

Total questions: 54

Worksheet time: 27mins

Name
Class
Date
1.

Nhân tố nào là nhân tố chính ảnh hưởng đến thời gian thực hiện của một giải thuật

a)

Kích thước dữ liệu đầu vào

b)

Máy tính

c)

Thuật toán

d)

Chương trình dịch

2.

Theo cách tiếp cận của lập trình có cấu trúc, NiklausWirth đưa ra công thức thể hiện được mối liên hệ giữa cấu trúc dữ liệu và giải thuật như sau:

a)

Thuật toán + dữ liệu đầu vào = chương trình

b)

Thuật toán + cấu trúc dữ liệu = chương trình

c)

Kỹ thuật lập trình + cấu trúc dữ liệu = Kết quả đầu ra.

d)

Tất cả đều đúng

3.

Giải thuật là … câu lênh chặt chẽ, rõ ràng và xác định các thao tác trên các đối tượng dữ liệu

a)

Một

b)

Hai

c)

Nhiều

d)

Dãy

4.

Kiểu dữ liệu trừu tượng là…...

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ữ này.

b)

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

c)

Kiểu dữ liệu mà người lập trình phải tự xây dựng 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 tự xây dựng không dựa trên kiểu dữ liệu cơ bản được cung cấp từ ngôn ngữ lập trình

5.

Hàm đệ quy sau thực hiện công việc gì? int F(int n){if(n==0) return 1;return F(n-1) + F(n-1) + F(n-1);}

a)

3n

b)

n^3

c)

3^n

d)

3n^2

6.

Cho hàm đê quy sau:int F(int n){if(n==0) return 1;return F(n-1) + F(n-1);}Vậy

a)

F(5) = 32

b)

F(5) = 10

c)

F(5) = 25

d)

F(5) = 5

7.

Chọn phát biểu đúng nhất

a)

Một chương trình gọi là đệ quy nếu trong chương trình có lời gọi đến một chương trình đệ quy khác.

b)

Một chương trình đệ quy là chương trình lặp đi lặp lại với số lần lặp không biết trước.

c)

Một đối tượng được gọi là đệ quy nếu nó hoặc một phần của nó được định nghĩa thông qua khái

niệm về chính nó.

d)

Một chương trình đề quy là chương trình có chưa hàm main.

8.

Đá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)

Khoảng thời gian, độ khó

b)

Khoảng thời gian, độ phức tạp

c)

Khoảng thời gian, dung lượng bộ nhớ máy tính

d)

Độ khó, dung lượng bộ nhớ máy tính

9.

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ừ 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ữ tự nhiên

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ữ lập trình

d)

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

10.

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

a)

Sinh viên

b)

float

c)

Hoten

d)

Ngày sinh

11.

Cài đặt danh sách bằng mảng có nghiã là

a)

Dùng bản ghi có hai thành phần để lưu trữ các phần tử của danh sách

b)

Dùng biến con trỏ lưu trữ các phần tử của danh sách.

c)

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

d)

Dùng một mảng (array) để 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.

12.

Tư 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)

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)

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)

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

13.

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

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ì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ử khoá, sau đó thực hiện việc tìm kiếm trên hai đoạn đã chia.

14.

Danh sách Đặc là:

a)

Một tập hợp mà không cần khai báo trước số lượng phần tử khi sử dụng

b)

Một tập hợp có thứ tự gồm một số xác định n phần tử cùng kiểu dữ liệu liên tục trong bộ nhớ và có cùng một tên (với n được gọi là độ dài hay kích thước của mảng).

c)

Một các phần từ được xác định trước, có cùng kiểu dữ liệu và nằm rài rác trong vùng nhớ

d)

Một tập các hợp phần tử có cùng kiểu dữ liệu và được sắp xếp theo thứ tự tăng dần.

15.

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

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ương tự đối với phần tử nhỏ thứ hai, ba...

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)

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.

16.

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

a)

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

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; Tương tự đối với phần tử nhỏ thứ hai, ba...

c)

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.

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 nhỏ hơn được đứng vị trí trên.

17.

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, Bubble sort

b)

Qucick sort, Insert sort

c)

Quick sort, Merge sort

d)

Quick sort, Heap sort

18.

Cho dãy số {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) sau lần lặp đầu tiên của giải thuật ta có kết quả: {0 1 3 6 5 7 9 2 8 4}. Dãy số thu được sau lần lặp thứ năm là:

a)

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

b)

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

c)

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

d)

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

19.

Trong thuật toán sắp xếp nổi bọt kết thúc khi nào?

a)

Khi các phần tử đã nằm đúng thứ tự mong muốn.

b)

Không còn bất kì cặp liền kề trái thứ tự mong muốn

c)

Không còn xảy ra đổi chỗ lần nào nữa

d)

Cả A, B và C đều đúng

20.

Định nghĩa đúng nhất về danh sách liên kết

a)

Danh sách liên kết là tập hợp các phần từ mà giữa chúng có sự nối kết với nhau thông qua vùng liên kết của chúng

b)

Danh sách liên kế là cấu trúc dữ liệu dạng cây

c)

Danh sách liên kết là cấu trúc dữ liệu tự định nghĩa

d)

Danh sách liên kết là tập hợp các phần từ liên tục trong vùng nhớ

21.

Dấu hiệu nào dưới đây cho biết danh sách liên kết đơn rỗng:

a)

(p->right==NULL);

b)

(p->info==NULL);

c)

(p==NULL);

d)

(p->next==NULL);

22.

Chọn câu nói đúng nhất về danh sách liên kết đôi

a)

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

b)

Vùng liên kết của 1 phần từ trong danh sách liên kết có 2 mối liên kết với 1 phần tử khác

c)

Vùng liên kết của 1 phần từ trong danh sách liên kết có 1 mối liên kết với 2 phần tử khác

d)

Vùng liên kết của 1 phần từ trong danh sách liên kết có 2 mối liên kết với 2 phần tử khác trong danh sách

23.

Định nghĩa cấu trúc dữ liệu dạng danh sách(LIST)

a)

danh sách là kiểu con trỏ

b)

danh sách là tập hợp các phần tử khác kiểu

c)

danh sách là kiểu dữ liệu mảng

d)

danh sách là một tập hợp các phần tử có cùng một kiểu mà ta gọi là kiểu phần tử (ElementType).

24.

Dấu hiệu nào dưới đây cho biết node p của một danh sách liên kết đơn là node cuối cùng bên phải:

a)

(p->info!=NULL);

b)

(p->info==NULL);

c)

(p->next!=NULL);

d)

(p->next==NULL);

25.

Cho p trỏ vào nút giữa của một DSLK đôi trỏ bởi con trỏ đầu pHead và con trỏ cuối pTail, danh

sách chỉ gồm 3 nút. Để tách p ra khỏi danh sách mà danh sách vẫn nối đúng. Thực thiện những câu

lệnh nào sau đây.

a)

p->Next->Pre=p->Next; p->Pre->Next=p->Pre.

b)

p->Pre->Next=p->Pre; p->Next->Pre=p->Next

c)

pHead->Next=pTail; pTail->Pre=pHead;

d)

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

26.

Để xóa con trỏ p đang trỏ vào một nút không phải là vị trí đầu trong danh sách liên kết đơn có nhiều hơn một nút. Ta cần xác định con trỏ q trỏ vào vị trí nào sau đây:

a)

Trỏ vào vị trí đầu danh sách.

b)

Trỏ vào vị trí cuối danh sách.

c)

Trỏ vào nút bên trái của p và gần p nhất.

d)

Trỏ vào nút bên phải của p và gần p nhất.

27.

Để nối 1 node vào danh sách liên kết đơn thì các câu lệnh cần thực hiện là gì?

a)

q = (listnode) malloc(sizeof(struct node)); q->item = x; q->next=*p;

b)

q->next=*p; q = (listnode) malloc(sizeof(struct node)); q->item = x;

c)

q = (listnode) malloc(sizeof(struct node)); q->next=*p; q->item = x;

d)

q->item = x;

28.

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

a)

Mỗi nút trong DSLK đơn chứa thành phần kết nối và một số nguyên hoặc dữ liệu của nút đó

b)

Thành phần kết nối của một nút trong DSLK đơn luôn chứa địa chỉ của nút kết tiếp.

c)

Trong DSLK đơn nối vòng thành phần kết nối của mỗi nút luôn trỏ vào nó.

d)

Mỗi nút trong DSLK đôi chứa hai thành phần kết nối và thành phần dữ liệu.

29.

Cơ chế nào dưới đây được cài đặt cho Stack:

a)

LIFO

b)

Tuần tự

c)

Round Robin

d)

FIFO

30.

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

a)

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

b)

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.

c)

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.

d)

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

31.

Trong việc xây dựng các hàm cho danh sách hạn chế hàm sau viết ra để làm gì bool FunctionEmpty(Queue pHead){return (pHead==NULL);}

a)

Khởi tạo hàng đợi rỗng

b)

Khởi tạo ngăn xếp rỗng

c)

Kiểm tra ngăn xếp hoặc hàng đợi đầy

d)

Kiểm tra hàng đợi hoặc ngăn xếp rỗng.

32.

Cơ chế nào dưới đây được cài đặt cho hàng đợi:

a)

FIFO

b)

Round Robin

c)

Tuần tự

d)

FILO

33.

Cho biểu thức sau: A + B - C * D + F thì biểu thức hậu tố là:

a)

AB+CD*-F+

b)

AB+CD-*F+

c)

ABCD+*-F+

d)

AB+CDF*-+

34.

Cho biểu thức trung tố sau P=a*(b+c), biểu thức nào sau đây là biểu thức hậu tố P

a)

ab+c*

b)

a*bc+

c)

ab*c+

d)

abc+*

35.

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

a)

Bằng con trỏ

b)

Bằng mảng

c)

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

d)

Các phương án khác đều sai

36.

Tính chất của hàng đợi

a)

Vào trước - ra trước" - FIFO: First In First Out.

b)

Vào sau - ra trước" - LIFO: Last In Fist Out.

c)

Vào trước - ra sau" - FILO: First In last Out.

d)

Các phương án khác đều sai

37.

Chọn định nghĩa đúng nhât về hàng đợi (Queue)

a)

Hàng đợi là 1 danh sách, trong đó việc thêm và bớt phần tử được thực hiện ở 2 đầu khác nhau

b)

Hàng đợi là 1 danh sách, trong đó việc thêm và bớt phần tử được thực hiện ở cùng 1 đầu

c)

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

d)

Hàng đợi là 1 danh sách họat động theo cơ chế FILO(First In Last Out)

38.

Cho biểu thức tiền tố sau P=(a+b)^2+c, biểu thức hậu tố (Q) nào sau đây là kết quả của biểu thức P.

a)

ab+2^c+

b)

ab2+^c+

c)

ab+2^+c

d)

ab+2c^+

39.

biểu thức tiền tố sau P=(a+b)^2+c, biểu thức hậu tố (Q) nào sau đây là kết quả của biểu thức P.

a)

ab+2^c+

b)

ab2+^c+

c)

ab+2^+c

d)

ab+2c^+

40.

Một cây nhị phân được gọi là đúng nếu:

a)

Node gốc và tất cả các node trung gian đều có 2 node con

b)

Giá trị khóa của node gốc bao giờ cũng lớn hơn giá trị các khóa của nhánh cây con bên phải

c)

Giá trị khóa của node gốc bao giờ cũng lớn hơn giá trị các khóa của nhánh cây con bên trái

d)

Node gốc và các node trung gian đều có 2 node con và các node lá đều có mức giống nhau

41.

Chọn định nghĩa đúng nhất về cây nhị phân tìm kiếm (BST: Binary Search Tree)

a)

BST là cây mà với mọi nút không phải là Lá có giá trị lớn hơn mọi giá trị của các nút trên cây con trái và nhỏ hơn mọi giá trị của các nút trên cây con phải

b)

BST là cây mà với mọi nút không phải là Lá có giá trị lớn hơn giá trị của nút trên cây con trái và nhỏ hơn giá trị của nút con phải

c)

BST là cây mà với mọi nút không phải là Lá có giá trị lớn hơn mọi giá trị của các nút trên cây con phải và nhỏ hơn mọi giá trị của các nút trên cây con trái

d)

BST là cây nhị phân mà giá trị các nút trên cây khác nhau từng đôi một

42.

Chọn phát biểu đúng

a)

Cây nhị phân là cây phải có hai nhánh con

b)

Cây nhị phân là cây mà các cây con của nó phải có hai nút

c)

C.Cây nhị phân là cây mà mọi nút trên cây chỉ có tối đa hai nhánh con

d)

Tất cả đều đúng

43.

Một cây nhị phân được gọi là đúng nếu:

a)

Node gốc và các node trung gian đều có 2 node con và các node lá đều có mức giống nhau

b)

Giá trị khóa của node gốc bao giờ cũng lớn hơn giá trị các khóa của nhánh cây con bên trái

c)

Giá trị khóa của node gốc bao giờ cũng lớn hơn giá trị các khóa của nhánh cây con bên phải

d)

Node gốc và tất cả các node trung gian đều có tối đa 2 node con

44.

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

a)

Cấp lớn nhất của nút

b)

Mức lớn nhất của cây

c)

Số cây con của cây

d)

Số lượng nút của cây

45.

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

a)

Là cây nhị phân mà nút gốc và các nút con có tối đa hai cây con.

b)

Là cây nhị phân mà nút gốc và tất cả các node trung gian có đúng hai node con.

c)

Là cây nhị phân mà nút gốc có đúng hai cây con.

d)

Là cây nhị phân mà tất cả các nút trung gian có đúng hai node con.

46.

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

a)

Cây rỗng.

b)

Cây có một nút gốc

c)

Với mọi Node: Node có tối đa hai cây con. Nội dung node cha lớn hơn nội dung node con bên trái và nhỏ hơn nội dung node con bên phải.

d)

Tất cả đêu đúng

47.

Chọn phát biểu đúng

a)

Cây nhị phân là cây phải có hai nhánh con

b)

Cây nhị phân là cây mà các cây con của nó phải có hai nút

c)

Cây nhị phân là cây mà mọi nút trên cây chỉ có tối đa hai nhánh con

d)

Tất cả đều đúng

48.

Cây nhị phân cân bằng (AVL Tree) là:

a)

Là cây nhị phân có số node thuộc nhánh cây con trái và số node thuộc nhánh cây con phải cân bằng nhau

b)

Cây nhị phân có số node thuộc nhánh cây con trái và số node thuộc nhánh cây con phải chênh lệch nhau không quá 1.

c)

Cây nhị phân có số node thuộc nhánh cây con trái và số node thuộc nhánh cây con phải không được chênh lệch nhau.

d)

Là cây nhị phân mà nút gốc và tất cả các node trung gian có đúng hai node con

49.

Cho cây bên dưới, cho biết kết quả duyệt cây theo thứ tự trước (NLR)

a)

A. 40, 30, 25, 20, 28, 35, 32, 38, 60, 50, 70, 65, 90

b)

B. 20, 25, 28, 30, 32, 35, 38, 40, 50, 60, 65, 70, 90

c)

C. 20, 28, 25, 32, 38, 35, 30, 50, 65, 90, 70, 60, 40

d)

D. 40, 30, 25, 20, 28, 35, 32, 38, 60, 90, 65, 70, 50

50.

Cho cây bên dưới. Nếu ta muốn xóa nút mang số 30 thì giá trị của nút nào có chọn thế mạng là…

a)

A. 20 hoặc số 28

b)

B. 35 hoặc 25

c)

C. 28 hoặc 32

d)

D. 20 hoặc 38

51.

Cho cây bên dưới. Nếu ta muốn xóa nút mang số 40 thì giá trị của nút nào có chọn thế mạng

a)

A. 20

b)

B. 35

c)

C. 38

d)

D. 65

52.

Cho cây biểu thức sau. Duyệt cây theo thứ tự trước (NLR) ta được biểu thức nào sau đây:

a)

A. - * + a b c /d e

b)

B. a b + c * d e / -

c)

C. - * a+ b c d/ e

d)

D. + a b - * c /d e

53.

Cho cây biểu thức sau. Duyệt cây theo thứ tự giữa (LNR) ta được biểu thức nào sau đây:

a)

A. (a + b)* c – d/e

b)

B. a b + c * d e / -

c)

C. (a + b) * d – c/e

d)

D. + a b - * c /d e

54.

Cho cây biểu thức sau. Duyệt cây theo thứ tự sau (LRN) ta được biểu thức nào sau đây:

a)

A. a b + c * d e / -

b)

B. a b + dc * e- /

c)

C. (a + b) * d – c/e

d)

D. + a b - * c /d e