wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Untitled Quiz

Total questions: 23

Worksheet time: 12mins

Name
Class
Date
1.

Trong linked list đơn (singly-linked list), mỗi node chứa những phần tử gì?

a)

Giá trị dữ liệu

b)

Địa chỉ của node tiếp theo

c)

Địa chỉ của node trước đó

d)

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

2.

Trong linked list đôi (double-linked list), node cuối cùng thường có con trỏ đến đâu?

a)

NULL

b)

Node đầu tiên

c)

Địa chỉ của chính nó

d)

Tất cả đều sai

3.

Loại linked list nào trong đó node cuối cùng sẽ trỏ đến node đầu tiên?

a)

Singly linked list

b)

Double linked list

c)

Circular linked list

d)

Tất cả đều sai.

4.

Chèn một phần tử vào giữa một danh sách liên kết yêu cầu sửa đổi bao nhiêu con trỏ?

a)

1.

b)

2.

c)

3.

d)

4.

5.

Chèn một phần tử vào cuối một danh sách liên kết yêu cầu sửa đổi bao nhiêu con trỏ?

a)

1.

b)

2.

c)

3.

d)

4.

6.

Trong trường hợp xóa node đầu tiên của linked list, chúng ta cần làm gì?

a)

Giải phóng bộ nhớ của node đó.

b)

Đặt con trỏ của node tiếp theo là NULL

c)

Cả a) và b).

d)

Tất cả đều sai.

7.

Để xóa một node khỏi linked list, cần phải thực hiện?

a)

Đặt con trỏ của node sau nó trỏ đến node trước nó

b)

Đặt con trỏ của node trước nó trỏ đến node sau nó

c)

Cả a) và b)

d)

Tất cả đều sai.

8.

Thao tác nào sau đây cần phải xét đến số lượng phần tử của linked list?

a)

Xóa phần tử đầu tiên.

b)

Xóa phần tử cuối cùng.

c)

Chèn phần tử mới vào vị trí đầu tiên.

d)

Tất cả đều sai.

9.

Để chèn thêm node mới vào danh sách liên kết vòng, cần thay đổi giá trị của bao nhiêu con trỏ?

a)

1

b)

2

c)

3

d)

4

10.

Cho biết kết quả in ra màn hình khi chạy đoạn mã sau với danh sách liên kết đơn chứa giá trị lần lượt 1->2->3->4: void display(struct node* start) { if(start == NULL) return; else printf("%d ", start->data); display(start->next); }

a)

1 2 3 4

b)

1 3 1 3

c)

1 3 3 1

d)

Tất cả đều sai

11.

Cho biết kết quả in ra màn hình khi chạy đoạn mã sau với danh sách liên kết đơn chứa giá trị lần lượt 1->2->3->4->5: void display(struct node* start) { if(start == NULL) return; else printf("%d ", start->data); display(start->next); }

a)

1 2 3 4 5

b)

1 3 5 5 3 1

c)

1 3 5 3 5

d)

Tất cả đều sai

12.

Cho biết kết quả của danh sách liên kết khi gọi hàm insert(head, 10) với danh sách liên kết đơn chứa giá trị lần lượt 1->2->3->4, sử dụng đoạn mã sau: void insert(struct node* start, int value) { if(start == NULL) return; if (start->value % 2 == 0) { struct node* new_node = (struct node*)malloc(sizeof(struct node)); new_node->value = value; new_node->next = start->next; start->next = new_node; } else insert(start->next, value); }

a)

1->2->10->3->4

b)

1->10->2->3->4

c)

1->2->3->10->4

d)

Tất cả đều sai

13.

Cho biết kết quả của danh sách liên kết khi gọi hàm insert(head,10) với danh sách liên kết đơn chứa giá trị lần lượt 2->4->6.

a)

2->4->6

b)

2->4->6->10

c)

2->10->4->6

d)

Tất cả đều sai.

14.

Bài 1 mô tả: Viết chương trình tạo một danh sách liên kết đơn chứa các giá trị số nguyên. Cho phép người sử dụng nhập vào giá trị (10 giá trị) cho danh sách liên kết. Hiển thị giá trị các phần tử của danh sách ra màn hình. Theo mô tả này, chương trình cần thực hiện hành động nào?

a)

Tạo danh sách liên kết đơn từ 10 giá trị do người dùng nhập và hiển thị tất cả phần tử.

b)

Tạo mảng tĩnh 10 phần tử và không cần hiển thị.

c)

Chỉ thêm phần tử vào cuối danh sách mà không có nhập từ người dùng.

d)

Sắp xếp danh sách tăng dần mà không nhận dữ liệu từ người dùng.

15.

Bài 2 mô tả: Viết chương trình tạo một danh sách liên kết đơn chứa 10 giá trị số nguyên (SV tự cho các giá trị phần tử). Cho phép người sử dụng nhập vào 1 số nguyên x. Yêu cầu chính của bài là gì?

a)

Tìm và in ra vị trí các phần tử trong danh sách có giá trị bằng x.

b)

Chèn giá trị x vào đầu danh sách.

c)

Sắp xếp danh sách theo thứ tự tăng dần.

d)

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

16.

Bài 3 mô tả: Viết chương trình tạo một danh sách liên kết đơn chứa 10 giá trị số nguyên (SV tự cho các giá trị phần tử). Cho phép người sử dụng nhập vào 1 số nguyên x. Theo mô tả, chương trình phải làm gì với các phần tử có giá trị bằng x?

a)

Tìm và xóa tất cả các phần tử trong danh sách có giá trị bằng x.

b)

Chèn x sau mỗi phần tử trong danh sách.

c)

Chỉ đếm số lần xuất hiện của x mà không xóa.

d)

Sắp xếp danh sách rồi in ra vị trí của x.

17.

Bài 4 mô tả: Viết câu lệnh định nghĩa hàm Append() có chức năng thêm phần tử mới vào cuối 1 danh sách liên kết đơn. Theo mô tả, hàm Append() thực hiện thao tác nào?

a)

Thêm phần tử mới vào cuối danh sách liên kết đơn.

b)

Thêm phần tử mới vào đầu danh sách liên kết đơn.

c)

Xóa phần tử cuối của danh sách liên kết đơn.

d)

Đảo ngược toàn bộ danh sách liên kết đơn.

18.

Bài 5 mô tả: Viết câu lệnh định nghĩa hàm Insert() có chức năng thêm phần tử mới vào đầu 1 danh sách liên kết đơn. Theo mô tả, hàm Insert() thực hiện thao tác nào?

a)

Thêm phần tử mới vào đầu danh sách liên kết đơn.

b)

Thêm phần tử mới vào cuối danh sách liên kết đơn.

c)

Chèn phần tử sau một giá trị x trong danh sách.

d)

Chèn phần tử trước một giá trị x trong danh sách.

19.

Bài 6 mô tả: Viết chương trình tạo một danh sách liên kết đơn 10 phần tử với các giá trị tăng dần (danh sách liên kết sắp xếp tăng dần). Tìm và xóa các phần tử trùng lặp có trong danh sách (phần tử trùng lặp là phần tử có giá trị bằng với 1 phần tử khác trong danh sách). Cho danh sách ban đầu: Linked_list = 10 -> 11 -> 11 -> 12 -> 12 -> 21 -> 43. Danh sách sau khi xóa các phần tử trùng lặp là gì?

a)

Linked_list = 10 -> 11 -> 11 -> 12 -> 12 -> 21 -> 43

b)

Linked_list = 10 -> 11 -> 12 -> 21 -> 43

c)

Linked_list = 10 -> 10 -> 11 -> 12 -> 21 -> 43

d)

Linked_list = 11 -> 12 -> 21 -> 43

20.

Bài 7 mô tả: Viết chương trình tạo một danh sách liên kết đơn 10 phần tử với giá trị ngẫu nhiên (danh sách liên kết sắp xếp không được sắp xếp). Theo yêu cầu bài, chương trình phải làm gì?

a)

Tìm và xóa các phần tử trùng lặp có trong danh sách.

b)

Sắp xếp danh sách theo thứ tự tăng dần.

c)

Tìm vị trí của một giá trị x do người dùng nhập.

d)

Chèn một phần tử mới vào đầu danh sách.

21.

Viết câu lệnh định nghĩa hàm Max() có chức năng tìm giá trị phần tử lớn nhất trong một danh sách liên kết đơn. Chọn mô tả đúng về chức năng của Max().

a)

Trả về tổng tất cả giá trị trong danh sách liên kết đơn

b)

Trả về giá trị lớn nhất của một phần tử trong danh sách liên kết đơn

c)

Trả về số lượng nút trong danh sách liên kết đơn

d)

Trả về giá trị nhỏ nhất trong danh sách liên kết đơn

22.

Viết câu lệnh định nghĩa hàm void Print() có chức năng in ra màn hình giá trị của n phần tử đầu tiên trong một danh sách liên kết. Chọn mô tả đúng về chức năng của Print().

a)

In giá trị của n phần tử đầu tiên trong danh sách liên kết

b)

In toàn bộ danh sách liên kết bất kể n

c)

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

d)

Thêm n phần tử mới vào đầu danh sách liên kết

23.

Viết câu lệnh định nghĩa hàm void Copy() có chức năng sao chép giá trị phần tử từ một mảng sang một danh sách liên kết. Chọn mô tả đúng về chức năng của Copy().

a)

Sao chép các giá trị từ mảng sang danh sách liên kết theo cùng thứ tự

b)

Sao chép các giá trị từ danh sách liên kết sang mảng

c)

Nối hai danh sách liên kết thành một danh sách

d)

Sắp xếp lại các phần tử trong mảng theo thứ tự tăng dần