wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Bộ câu hỏi trắc nghiệm từ worksheet (lớp 13)

Total questions: 77

Worksheet time: 39mins

Name
Class
Date
1.

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

a)

p = x;

b)

p = &x;

c)

p = *x;

d)

p = x[0];

2.

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

a)

FIFO (first in first out)

b)

FOLO (first out last out)

c)

LIFO (last in first out)

d)

FILO (first in last out)

3.

Cho hàm xóa phần tử khỏi ngăn xếp S như sau: ElementType Pop(Stack &S) { Position Temp = S→Next; if( Temp != NULL) { ElementType T = Temp→Element; (1) S→Next = Temp→Next; (2) Delete Temp; (3) return T; (4) } } Phát biểu nào sau đây đúng?

a)

Câu lệnh 2 có thể thực hiện trước câu lệnh 1

b)

Thứ tự các câu lệnh 1, 2, 3, 4 không thể thay đổi

c)

Câu lệnh 2 có thể thực hiện trước câu lệnh 3

d)

Câu lệnh 3 có thể thực hiện trước câu lệnh 1

4.

Cho khai báo sau: Struct Date{ int ngay, thang, nam; }; Struct SinhVien{ char hoten[40]; Date ngaysinh; }; Sinhvien *sv; Để in ra năm sinh (nam) của sinh viên (sv) ta viết:

a)

cout << sv→ngaysinh.nam;

b)

cout << sv→ngaysinh→nam;

c)

sv.ngaysinh→nam;

d)

cout << sv.ngaysinh.nam;

5.

Đối với lớp có hàm là N2N^2 , phát biểu nào sau đây là đúng?

a)

Thời gian chạy không phụ thuộc vào kích thước đầu vào

b)

Ít các thuật toán sắp xếp sử dụng 2 vòng lặp

c)

Khi N được nhân đôi, thời gian chạy sẽ tăng gấp 4

d)

Thời gian chạy của thuật toán là hằng số

6.

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)

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

d)

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

7.

Thao tác nào dưới đây thực hiện trên hàng đợi (queue):

a)

Loại bỏ phần tử ở lối sau

b)

Thêm phần tử vào lối sau

c)

Thêm phần tử vào lối trước

d)

Thêm và loại bỏ phần tử tại vị trí bất kỳ

8.

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

a)

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

b)

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

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

9.

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

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ữ má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 các 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 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 cơ bản được cung cấp từ ngôn ngữ lập trình.

10.

Hãy cho biết hàm sau dùng để làm gì? void ham3 (ElementType X, List &L) { Position P,Q; P=L; while (P→Next!=NULL) { if (P→Next→Element==X) Q=P→Next; P=P→Next; } while (L→Next!=Q→Next) { cout < L→Next; } }

a)

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

b)

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

c)

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

d)

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

11.

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

a)

delete p;

b)

delete []p;

c)

free p;

d)

p = free;

12.

Đoạn code sau làm gì? Position Func (List L) { Position P; P=L→Next; return P; }

a)

Xác định phần tử ở mid list

b)

Xác định số lượng danh sách

c)

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

d)

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

13.

Nguyên tắc làm việc của ngăn xếp là:

a)

LILO (last in – last out)

b)

FILO (first in - last out)

c)

Câu a và c cùng đúng

d)

FIFO (first in - first out)

14.

Đối với lớp có hàm là 2N2^N , phát biểu nào sau đây là đúng?

a)

Lớp số mũ: N! (giai thừa) là cùng loại độ phức tạp

b)

Thời gian chạy là hằng số

c)

Độ phức tạp O(2N)O(2^N) không ảnh hưởng đến kích thước đầu vào

d)

Khi N tăng gấp đôi, thời gian chạy sẽ tăng lên lũy thừa 2

15.

Cho hàm Func được cài đặt trên danh sách liên kết, nội dung các phần tử kiểu số nguyên như sau. Để 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à. Select one

a)

Temp→Next = T→Next;

b)

P→Next = T→Next;

c)

P→Next = Temp→Next;

d)

Temp→Next = P→Next;

16.

Đoạn code sau làm gì? void Func(ElementType X, Position P, List &L) { Position Temp; Temp = new Node; Temp→Element = X; Temp→Next = P→Next; P→Next = Temp; }

a)

Thêm một phần tử vào đầu danh sách

b)

Thêm phần tử vào vị trí ngẫu nhiên

c)

Thêm một phần tử vào sau vị trí P

d)

Thêm một phần tử vào cuối danh sách

17.

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); }

a)

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

b)

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

c)

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

d)

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

18.

Ý nghĩa của đoạn code sau? void Func(Position P, List &L) { Position Temp; if (P→Next != NULL) { Temp = P→Next; P→Next = Temp→Next; delete Temp; } }

a)

Xóa phần tử cuối danh sách

b)

Xóa phần tử ngay sau P

c)

Xóa phần tử trước P

d)

Xóa phần tử đầu danh sách

19.

Đặc trưng nào sau đây không phải của hàm?

a)

Không lồng nhau

b)

Chỉ được gọi 1 lần trong chương trình có chứa hàm

c)

Được gọi từ hàm main(), từ hàm khác hoặc từ chính nó

d)

Nằm trong hoặc ngoài văn bản có chương trình gọi đến hàm đó

20.

Phát biểu nào sau đây sai:

a)

Đa số các bài toán có thời gian thực thi tiệm cận tới một trong các hàm NN , N2N^2 , 2N2^N

b)

Đa số các bài toán có thời gian thực thi tiệm cận tới một trong các hàm NN , NlogNN\log N , 2N2^N

c)

Đa số các bài toán có thời gian thực thi tiệm cận tới một trong các hàm NN , N2+2N^2+2 , logN\log N

d)

Đa số các bài toán có thời gian thực thi tiệm cận tới một trong các hàm NN , N3N^3 , logN\log N

21.

Ý nghĩa của đoạn code? typedef int ElementType; typedef struct Node { ElementType Element; Node* Next; }; typedef Node* Position; typedef Node* List;

a)

Khai báo cấu trúc dữ liệu

b)

Khai báo kiểu dữ liệu của danh sách

c)

Khai báo Node

d)

Khai báo List

22.

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)

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

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)

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

23.

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

a)

2, 4, 3, 1

b)

1, 3, 4, 2

c)

1, 2, 3, 4

d)

4, 3, 2, 1

24.

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à dequeue

b)

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

c)

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

d)

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

25.

Cho khai báo như sau (xem mô tả mã): Các trường ngày, tháng và năm của biến dob sẽ có giá trị lần lượt là. Select one:

a)

8, 7, 9

b)

8, 9, 7

c)

9, 7, 8

d)

7, 8, 9

26.

Cho hàm như sau (xem mô tả mã): Void Func(ElementType X, List &L) { Position Temp = new Node; Temp → Element = X; Temp → Next = L → Next; L → Next = Temp; } Hàm trên thực hiện chức năng gì?

a)

Thêm phần tử X vào cuối danh sách L

b)

Xóa phần tử X ở cuối danh sách L

c)

Xóa phần tử X ở đầu danh sách L

d)

Thêm phần tử X vào đầu danh sách L

27.

Hãy cho biết hàm sau dùng để làm gì (xem mô tả mã): void Func (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); }

a)

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

b)

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

c)

Xóa phần tử tại vị trí X

d)

Xóa tất cả phần tử có nội dung là X

28.

Khai báo nào sau đây đú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)

List Split(List L1, List &L2);

c)

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

d)

List Split(List L1, List & L3);

29.

Đặc điểm nào sau đây không phải của hàm có tính đệ quy. Select one:

a)

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

b)

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

c)

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

d)

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 vào

30.

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

a)

FULL(x)

b)

POP(x)

c)

EMPTY(x)

d)

PUSH(x)

31.

Giả sử cần sắp xếp mảng M có NN phần tử bằng thuật toán sắp xếp nổi bọt (Bubble Sort), thì cần thực hiện bao nhiêu lần? Select one:

a)

N2N^2 lần

b)

N1N-1 lần

c)

N+1N+1 lần

d)

NN lần

32.

Đối với lớp có hàm là NN , phát biểu nào sau đây là đúng? Select one:

a)

Thời gian chạy của chương trình tăng theo hàm logarit khi NN tăng

b)

Thời gian chạy của chương trình không phụ thuộc vào kích thước đầu vào

c)

Thời gian chạy của chương trình là hằng số

d)

Thời gian chạy của chương trình là tuyến tính, NN tăng gấp đôi thì thời gian chạy nhân gấp đôi

33.

Ý nghĩa của đoạn code (xem mô tả mã)? bool Func(List &L) { return L→Next==NULL; } Select one:

a)

Kiểm tra ds rỗng

b)

Trả về phần tử cuối ds

c)

Trả về phần tử NULL

d)

Kiểm tra độ dài ds

34.

Thao tác Push(x) dùng trong Stack là để. Select one:

a)

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

b)

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

c)

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

d)

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

35.

Khi in (xuất) danh sách liên kết thì phát biểu nào sau đây là đúng? Select one:

a)

Không thể xuất danh sách liên kết khi nó rỗng

b)

Danh sách liên kết luôn luôn không thay đổi

c)

Danh sách liên kết luôn luôn thay đổi

d)

Danh sách liên kết có thể thay đổi tùy thuộc vào nội dung của nó

36.

Đối với lớp có hàm là N3N^3 , phát biểu nào sau đây là đúng? Select one:

a)

Thời gian chạy không phụ thuộc vào kích thước đầu vào

b)

Khi NN tăng gấp đôi, thời gian chạy sẽ tăng gấp 8

c)

Thời gian chạy của thuật toán là hằng số

d)

Đa số các thuật toán sắp xếp sử dụng 3 vòng lặp

37.

Các kiểu dữ liệu cơ bản là .... * Select one:

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

38.

Danh sách (DS) thường được phân thành mấy loại? Select one:

a)

1 loại: danh sách đặc

b)

2 loại: danh sách đặc (mảng) và danh sách liên kết (con trỏ)

c)

4 loại: danh sách đặc, danh sách liên kết, danh sách cây và danh sách đồ thị

d)

3 loại: danh sách đặc, danh sách liên kết và danh sách cây

39.

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 tuyến tính là một danh sách rỗng.

c)

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

d)

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

40.

Nếu trong hàm có nhiều đối số hình thức thì chúng cách nhau bởi dấu gì?

a)

Chấm phẩy (;)

b)

Hai chấm (:)

c)

Chấm (.)

d)

Phẩy (,)

41.

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

a)

2 bước

b)

4 bước

c)

5 bước

d)

3 bước

42.

Ý nghĩa của đoạn mã sau đối với danh sách liên kết đơn là gì? Position Func (Position P, List L) { Position Temp; if (P==L) return NULL; else { Temp=L; while (Temp→Next!=P) Temp=Temp→Next; return Temp; } }

a)

Xác định phần tử ngay sau P

b)

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

c)

Xác định phần tử đầu danh sách

d)

Xác định phần tử cuối danh sách

43.

Chọn phát biểu đúng: Bằng cách chạy thử một thuật toán với một bộ dữ liệu, ta có thể làm gì?

a)

Khẳng định thuật toán sai nếu chạy chậm

b)

Khẳng định thuật toán sai nếu cho kết quả sai

c)

Khẳng định thuật toán đúng nếu cho kết quả đúng

d)

Khẳng định thuật toán đúng nếu chạy nhanh

44.

Khi danh sách rỗng, phát biểu nào sau đây là đúng?

a)

Giá trị của cả hai hàm đều là giá trị hợp lệ.

b)

Danh sách không có phần tử nào.

c)

Giá trị hàm EndList(L) là NULL và hàm FirstList(L) là một vị trí hợp lệ.

d)

Giá trị hàm EndList(L) và hàm FirstList(L) luôn luôn bằng nhau.

45.

Cho hàm Func được cài đặt trên danh sách liên kết đơn: void Func(List &L) { Position Temp=L, P; while(Temp→Next!=NULL){ P=Temp; Temp=Temp→Next; } P→Next=NULL; delete Temp; } Hàm Func trên thực hiện chức năng gì?

a)

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

b)

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

c)

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

d)

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

46.

Cho hàm: 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); } Phát biểu nào sau đây là sai?

a)

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.

b)

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

c)

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

d)

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

47.

Nguyên tắc làm việc của hàng đợi là gì?

a)

Câu a và c cùng đúng

b)

FILO (… – last out)

c)

FIFO (first in – first out)

d)

LILO (last in – last out)

48.

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

a)

TOP(x)

b)

POP(x)

c)

PUSH(x)

d)

EMPTY(x)

49.

Ý nghĩa của đoạn mã sau là gì? void Func(List L) { if (EmptyList(L) != 0) cout << "Danh sach rong" << endl; else while (L→Next!=NULL){ cout << L→Next→Element << '\t'; L=L→Next; } }

a)

Hàm xuất phần tử đầu tiên danh sách

b)

Hàm nhập danh sách

c)

Hàm kiểm tra danh sách

d)

Hàm xuất danh sách

50.

Để tạo danh sách rỗng, chọn đoạn mã đúng:

a)

Void MakeNullList(List &L){ L = new Node; L→Next = NULL; }

b)

Void MakeNullList(List &L){ Node new L; L→Next = NULL; }

51.

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

a)

Cấu trúc for chỉ áp dụng với khối lệnh lặp xác định

b)

Cấu trúc switch luôn có case

c)

Trong cấu trúc if có thể có else hoặc không

d)

Cấu trúc while chỉ áp dụng với khối lệnh lặp không xác định

52.

Hãy cho biết hàm sau dùng để làm gì? Position ham2(ElementType X, List L) { Position P = L; int f = 0; 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.

53.

Để 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

54.

Trong ngôn ngữ lập trình C/C++ có các cấu trúc điều khiển sau:

a)

Rẽ nhánh và lặp.

b)

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

c)

Tuần tự và lặp.

d)

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

55.

Hãy cho biết thao tác nào không được phép dùng trên cấu trúc ngăn xếp (stack)

a)

Thêm một phần tử vào vị trí bất kì trong ngăn xếp

b)

Xóa một phần tử ở vị trí bất kì khỏi ngăn xếp

c)

Cả b và c

d)

Thêm một phần tử vào đỉnh ngăn xếp

56.

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

Ngăn xếp (stack)

c)

Mảng (array)

d)

Bảng Câu (Record)

57.

Ý nghĩa của đoạn code sau: Position Func (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ử ở mid list

c)

Xác định số lượng danh sách

d)

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

58.

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

a)

Trong giải thuật của nó 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ủa nó có lời gọi tới chính nó.

c)

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

d)

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

59.

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, có dạng giống như 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 khác 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.

60.

Chọ hàm thêm một phần tử X vào vị trí P trong danh sách S như sau: 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) } Câu lệnh nào sẽ bị báo lỗi khi biên dịch? Select one:

a)

(1)

b)

(3)

c)

(4)

d)

(2)

61.

Các loại danh sách hạn chế là Select one:

a)

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

b)

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

c)

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

d)

Chồng và hàng đợi

62.

Danh sách thường được phân thành bao nhiêu loại? Select one:

a)

4 loại

b)

3 loại

c)

5 loại

d)

2 loại

63.

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?

a)

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

b)

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

c)

Cấu trúc dữ liệu + Giải thuật = Độ phức tạp

d)

Giải thuật + Bộ nhớ = Cấu trúc dữ liệu

64.

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; }

c)

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

d)

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

65.

Các tiêu chuẩn đánh giá cấu trúc dữ liệu. Để đánh giá một cấu trúc dữ liệu chúng ta thường dựa vào một số tiêu chí:

a)

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

b)

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

c)

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

d)

Cấu trúc dữ liệu phải tiết kiệm tài nguyên (bộ nhớ trong)

66.

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

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 và cho 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.

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 được thực hiện ở một đầu, và phép loại bỏ không thực hiện được.

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 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 ở tại một vị trí bất kì trong danh sách.

d)

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.

67.

Trong số các phép toán sau đây, phép toán nào không được dùng đối với mảng:

a)

Tìm kiếm trên mảng

b)

Tạo mảng

c)

Lưu trữ mảng

d)

Bổ sung một phần tử vào mảng

68.

Khi thêm hoặc xóa phần tử vào danh sách liên kết thì phát biểu nào sau đây là đúng?

a)

Danh sách liên kết luôn luôn thay đổi.

b)

Chỉ danh sách liên kết đơn mới thay đổi khi thêm hoặc xóa phần tử.

c)

Danh sách liên kết luôn giữ nguyên kích thước.

d)

Không có thay đổi nào xảy ra trong danh sách liên kết.

69.

Đối với lớp có hàm là logarit của N (LogN), phát biểu nào sau đây là đúng?

a)

Thời gian chạy của nó tăng tuyến tính với N

b)

Thời gian chạy của nó giảm khi N tăng

c)

Thời gian chạy của nó tăng theo hàm logarit khi N lớn dần

d)

Thời gian chạy của nó là hằng số

70.

Ý nghĩa của đoạn code? void Func(List &L) { L = new Node; L→Next = NULL; }

a)

Tạo một Node mới

b)

Tạo một nút mới và gán nó là nút đầu danh sách

c)

Xóa tất cả các nút trong danh sách

d)

Khởi tạo một danh sách mảng

71.

Cho hàm xóa một phần tử khỏi hàng đợi như sau: void DeQueue(Queue &Q) { if(!EmptyQueue(Q)) { Position T; T=Q.Front; (1) Q.Front=Q.Front→Next; (2) if(Q.Front==NULL) Q.Rear=NULL; (3) delete T; (4) } } 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ó? Select one:

a)

Câu lệnh (2).

b)

Câu lệnh (3).

c)

Câu lệnh (4).

d)

Câu lệnh (1).

72.

Cho hàm thêm 1 phần tử X vào vị trí P trong danh sách L như sau: Hai câu lệnh nào có thể ghép chung thành một? void InsertList(ElementType X) { Position Temp; (1) Temp = new Node; (2) Temp→Element = X; (3) Temp→Next = P→Next; (4) P→Next = Temp; (5) } Select one:

a)

(4) và (5)

b)

(3) và (4)

c)

(1) và (2)

d)

(2) và (3)

73.

Đị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à cấu trúc dữ liệu được cài đặt bằng con trỏ.

d)

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.

74.

Đối với lớp có hàm là NLogN, phát biểu nào sau đây là đúng?

a)

Đa số các thuật toán sắp xếp một vòng lặp, cơ số 2 và tìm kiếm nhị phân có thứ tự tăng/giảm dần

b)

Thời gian chạy của thuật toán không phụ thuộc vào kích thước đầu vào

c)

Thời gian chạy của thuật toán là hằng số

d)

N tăng gấp đôi thì thời gian chạy nhân lên nhiều hơn gấp đôi

75.

Cho hàm xóa 1 phần tử khỏi hàng đợi như sau: ElementType DeQueue(Queue &Q) { if( !EmptyQueue(Q)) { Position T = Q.Front→Next; (1) Q.Front = Q.Front→Next; (2) return T→Element; (3) Delete T; (4) } } Ta có thể bỏ câu lệnh nào mà hàm trên vẫn thực hiện được và đúng chức năng của nó:

a)

Câu lệnh (3)

b)

Câu lệnh (1)

c)

Câu lệnh (2)

d)

Câu lệnh (4)

76.

Hàng đợi là danh sách hạn chế có tính chất?

a)

FOFO

b)

LIFO

c)

FILO

d)

FIFO

77.

Ý nghĩa của đoạn code sau? void Func (List &L) { ElementType X; do { cin >> X; if (X!=0) InsertList (X, Last (L), L); } } Chọn phương án mô tả đúng nhất về tác dụng của đoạn mã.

a)

Nhập liên tiếp các giá trị khác 0 và chèn mỗi giá trị vào cuối danh sách; dừng khi nhập 0.

b)

Khởi tạo danh sách rỗng và xóa tất cả phần tử khác 0.

c)

Chỉ chèn một giá trị vào đầu danh sách nếu giá trị bằng 0.

d)

Đọc một giá trị rồi thay thế phần tử đầu tiên của danh sách bằng giá trị đó.