220 câu trắc nghiệm Cấu trúc dữ liệu và giải thuật
Nhằm giúp các bạn ôn tập và hệ thống lại kiến thức nhanh chóng để đạt kết quả cao trong kì thi sắp tới, tracnghiem.net tổng hợp và chia sẻ đến các bạn 220 câu trắc nghiệm Cấu trúc dữ liệu và giải thuật (có đáp án). Hi vọng sẽ trở thành nguồn tài liệu bổ ích giúp các bạn học tập và nghiên cứu một cách tốt nhất. Để ôn tập hiệu quả các bạn có thể ôn theo từng phần trong bộ câu hỏi này bằng cách trả lời các câu hỏi và xem lại đáp án và lời giải chi tiết. Sau đó các bạn hãy chọn mục "Thi thử" để hệ thống lại kiến thức đã ôn. Chúc các bạn thành công với bộ đề "Cực Hot" này nhé.
Chọn hình thức trắc nghiệm (20 câu/20 phút)
-
Câu 1:
Đối với biến con trỏ Hàm MemAvail: Longint : có nghĩa là gì?
A. Cho biết số bytes được cấp phát / thu hồi bởi biến
B. Hàm cho biết vùng nhớ lớn nhất được cấp phát
C. Hàm cho biết tổng số bytes còn lại trên Heap
D. Hàm cho biết vùng nhớ lớn nhất còn trống trong Heap
-
Câu 2:
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) sau lần lặp đầu tiên của giải thuật ta có kết quả: {(0 1 2) 3 (5 4 8 6 9 7)}. Dãy số thu được sau lần lặp thứ bốn là:
A. {(0) 1 (2 3) 4 (5 6) 7 (8 9)}
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 (5 4) 8 (6 9 7)}
-
Câu 3:
Với định nghĩa cấu trúc dữ liệu cho danh sách liên kết đơn:
typedef struct Node
{
int Data; Node * Link;
} OneNode;
typedef OneNode * SLLPointer;
Hàm dưới đây để thêm một phần tử có giá trị thành phần dữ liệu là NewData vào trong danh sách liên kết đơn SLList vào ngay sau nút có địa chỉ InsNode.
SLLPointer ThemGiua(SLLPointer &SList, int NewData, SLLPointer &InsNode)
{ SLLPointer NewNode = new OneNode;
if (NewNode != NULL)
NewNode ->NextNode = NULL;
NewNode ->Data = NewData;
else
return (NULL);
if (InsNode->Link == NULL)
{
InsNode-> Link = NewNode; return (SList);
}
…………………………………………………………….
…………………………………………………………….
return (SList);
}
Hãy lựa chọn câu đúng nhất:
A. InsNode -> Link = NewNode -> Link; InsNode-> Link = NewNode;
B. NewNode-> Link = InsNode-> Link; InsNode-> Link = NewNode;
C. InsNode -> Link = NewNode -> Link; NewNode = InsNode-> Link;
D. NewNode-> Link = InsNode-> Link; NewNode = InsNode-> Link;
-
Câu 4:
Sau một số … bước thực hiện giải thuật cho chúng ta đạt được kết quả mong muốn:
A. vô hạn
B. giới hạn
C. hữu hạn
D. thao tác
-
Câu 5:
Biểu diễn và tổ chức ngăn xếp (Stack) bằng danh sách liên kết giả sử bề mặt của ngăn xếp là đầu danh sách liên kết:
typedef struct SElement
{ T Key;
SElement *Next;
} SOneElement;
typedef struct SOneElement *SSTACK;
SSTACK SSP;
Thêm 1 phần tử vào ngăn xếp (dùng cấu trúc dữ liệu mô tả ở trên)
B1: NewElement = Khởi tạo nút mới (dùng toán tử new)
B2: if (NewElement == NULL)
Thực hiện BKT
B3: if (SSP == NULL)
B3.1: SSP = NewElement
B3.2: Thực hiện BKT
B4: …………………………………………
B5: …………………………………………
BKT: Kết thúc
Chọn câu lệnh chính xác cho B4 và B5
A. B4: NewElement ->Next = SSP SSP = NewElement
B. B4: SSP = NewElement ->Next B5: SSP = NewElement
C. B4: SSP = NewElement ->Next B5: NewElement = SSP
D. B4: NewElement ->Next = SSP B5: NewElement = SSP
-
Câu 6:
Đối với biến con trỏ hàm Seg (x): Word có chức năng gì?
.
A. Cho biết địa chỉ segment của biến x
B. Cho biết địa chỉ Offset của biến x
C. Cho biết địa chỉ seg: Ofs
D. Cho biết địa chỉ tổng quát của biến x
-
Câu 7:
Thế nào là sắp xếp trong?
A. Sắp xếp trong là sắp xếp dữ liệu không cần đến bộ nhớ trong máy tính, mà chỉ cần các đối tượng được lưu trũ bằng bộ nhớ ngoài
B. Sắp xếp trong là sự sắp xếp được sử dụng khi số lượng đối tượng được sắp xếp lớn. Cụ thể là ta sẽ sắp xếp dữ liệu được lưu trữ trong các tập tin
C. Sắp xếp trong là sắp xếp không phụ thuộc vào độ dài tập tin. Mà chỉ phụ thuộc vào bộ nhớ trong của máy tính
D. Sắp xếp trong là sự sắp xếp dữ liệu được tổ chức trong bộ nhớ trong cuả máy tính, ở đó ta có thể sử dụng khả năng truy nhập ngẫu nhiên của bộ nhớ
-
Câu 8:
Hãy cho biết ý tưởng nào sau đây nói về phương pháp sắp xếp nổi bọt (bubble sort)?
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 cho đến phần tử cuối cùng
-
Câu 9:
Hãy cho biết phương pháp nào sau đây để loại bỏ nút X trên cây nhị phân tìm kiếm, với X là một phần tử bất kỳ?
A. Chỉ việc xoá X, vì X không liên quan đến phần tử nào khác
B. Tìm nút chứa khoá lớn nhất trong cây con trái, đưa giá trị chứa trong đó sang nút X , rồi xoá X
C. Không thể xoá X ra khỏi cây nhị phân tìm kiếm
D. Tìm nút chứa khoá lớn nhất trong cây con phải, đưa giá trị chứa trong đó sang nút X , rồi xoá X
-
Câu 10:
Cấu trúc dữ liệu nào tương ứng với LIFO:
A. Queue
B. Linked List
C. Tree
D. Stack
-
Câu 11:
Với cấu trúc dữ liệu mô tả cho Stack:
typedef struct SElement
{
int Key;
SElement *Next;
} SOneElement;
typedef SOneElement *SSTACK;
Tìm mô tả chính xác cho hàm sau:
void SSDelete (SSTACK &SList)
{
while (SList != NULL)
{ SSTACK TempElement = SList;
SList = SList ->Next;
TempElement ->Next = NULL;
delete TempElement;
}
}
A. Hủy phần tử đầu của Stack
B. Hủy phần tử cuối của Stack
C. Hủy phần tử cuối của Stack và lấy giá trị đó in ra màn hìn
D. Hủy toàn bộ Stack
-
Câu 12:
Danh sách duyệt theo mức của biểu thức đã cho trong câu 3 là:
A. + a * b + * / - e f h c d
B. a b + * + / - c d e f h *
C. + * a + b – c d * e / f h
D. + * a b + * - c d e / f h
-
Câu 13:
Khi cần thêm một phần tử có giá trị thành phần dữ liệu là NewData (là một số nguyên) vào đầu của danh sách liên kết đơn dùng thuật toán có mã giả mô tả như dưới đây?
typedef struct Node
{
int Data; Node * NextNode;
} OneNode; typedef OneNode * SLLPointer;
SLLPointer SSList;
B1: NewNode = new OneNode
B2: IF (NewNode = NULL) Thực hiện BKT
B3: NewNode ->NextNode = NULL
B4: NewNode ->Data = NewData B5: NewNode->NextNode = SLList
B6: SLList = NewNode BKT: Kết thúc
Tìm mô tả chính xác cho B5
A. Chuyển vai trò đứng đầu của NewNode cho SLList
B. Nối NewNode vào sau SLList
C. Chuyển vai trò đứng đầu của SLList cho NewNode
D. Nối SLList vào sau NewNode
-
Câu 14:
Xét thủ tục sau:
int TimKiemNP (int M[], int First, int Last, int X)
{
if (First > Last)
return (-1);
int Mid = (First + Last)/2;
if (X == M[Mid])
return (Mid);
if (X < M[Mid])
return(TimKiemNP (M, First, Mid – 1, X));
else
return(TimKiemNP (M, Mid + 1, Last, X));
}
Lựa chọn câu đúng nhất để mô tả thủ tục trên:
A. Thủ tục hỗ trợ tìm kiếm phần tử có giá trị là X trên mảng các phần tử từ chỉ số từ First đến chỉ số Last
B. Thủ tục hỗ trợ tìm kiếm đệ quy phần tử có giá trị là X trên mảng các phần tử từ chỉ số từ First đến chỉ số Last
C. Thủ tục hỗ trợ tìm kiếm đệ quy phần tử có giá trị là X trên mảng các phần tử từ chỉ số từ Last đến chỉ số First
D. Thủ tục hỗ trợ tìm kiếm không đệ quy phần tử có giá trị là X trên mảng các phần tử từ chỉ số từ Last đến chỉ số First
-
Câu 15:
Trong các phát biểu sau, phát biểu nào đúng?
A. Giá trị hàm EndList(L) và hàm FirstList(L) luôn luôn bằng nhau khi danh sách rỗng
B. Giá trị hàm EndList(L) và hàm FirstList(L) luôn luôn khác nhau
C. Giá trị hàm EndList(L) và hàm FirstList(L) bằng nhau hay không tùy thuộc vào phương pháp cài đặt danh sách
D. Tất cả đều sai
-
Câu 16:
Thời gian chạy chương trình phụ thuộc vào các yếu tố nào?
A. Dữ liệu đầu vào
B. Tôc độ của máy được dùng
C. Tính chất của trình biên dich được dùng
D. Tất cả các yếu tố nêu ra
-
Câu 17:
Thời gian chạy của các lệnh gán, Read, Write là:
A. O(2)
B. O(1)
C. O(n)
D. O(3)
-
Câu 18:
Kết quả nào đúng khi thực hiện giải thuật sau:
long lt(int n)
{if (n==0) return 1;
else return (2*lt(n-1);
}
A. lt(12) = 2010
B. lt(12) = 1024
C. lt(7) = 720
D. lt(6) = 64
-
Câu 19:
Cho cây nhị phân T, nút có địa chỉ 7 có 2 con ở địa chỉ nào:
A. 8 và 9
B. 13 và 14
C. 14 và 15
D. 30 và 31
-
Câu 20:
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ình được cung cấp sẵn từ ngôn ngữ máy