Trang chủ Đề thi & kiểm tra Khác 220 câu trắc nghiệm Cấu trúc dữ liệu và giải thuật có đáp án !!

220 câu trắc nghiệm Cấu trúc dữ liệu và giải thuật có đáp án !!

Câu hỏi 2 :

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:

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

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

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

D. Cấu trúc dữ liệu = Chương trình

Câu hỏi 3 :

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 tiết kiệm tài nguyên (bộ nhớ trong)

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

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

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

Câu hỏi 4 :

Đoạn mã giả dưới đây mô tả thuật toán gì?
Thuật toán:
B1: k = 1
B2: IF M[k] == X AND k != N
B2.1: k++
B2.2: Lặp lại B2
B3: IF k < N Thông báo tìm thấy tại vị trí k
B4: ELSE Không tìm thấy.
B5: Kết thúc

A. Tìm nhị phân phần tử có giá trị X

B. Tìm phần tử nhỏ nhất của mảng M bao gồm N phần tử

C. Tìm tuyến tính phần tử có giá trị X

D. Cả a, b, c đều sai

Câu hỏi 5 :

Cho hàm tìm kiếm tuyến tính như sau:
int TimKiem (int M[], int N, int X)
{ int k = 0;
M[N] = X;
while (M[k] != X)
k++;
if (k < N)
return (k);
return (-1);
}
Chọn câu đúng nhất:

A. Hàm sẽ trả về 0 nếu không tìm thấy phần tử có giá trị là X

B. Hàm sẽ trả về 1 nếu tìm thấy phần tử có giá trị là X

C. Hàm sẽ trả về -1 nếu không tìm thấy phần tử có giá trị là X

D. Hàm sẽ trả về 1 nếu không tìm thấy phần tử có giá trị là X

Câu hỏi 6 :

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 hỏi 7 :

Chọn câu đúng nhất để mô tả thuật toán sắp xếp nổi bọt (Bubble Sort) trên mảng M có N phần tử:

A. Đi từ cuối mảng về đầu mảng, trong quá trình đi nếu phần tử ở dưới (đứng phía sau) nhỏ hơn phần tử đứng ngay trên (trước) nó thì hai phần tử này sẽ được đổi chỗ cho nhau. Sau mỗi lần đi chúng ta đưa được một phần
tử trồi lên đúng chỗ. Sau N–1 lần đi thì tất cả các phần tử trong mảng M sẽ có thứ tự tăng

B. Đi từ đầu mảng về cuối mảng, trong quá trình đi nếu phần tử ở dưới (đứng phía sau) nhỏ hơn phần tử đứng ngay trên (trước) nó thì hai phần tử này sẽ được đổi chỗ cho nhau. Sau mỗi lần đi chúng ta đưa được một phần tử trồi lên đúng chỗ. Sau N lần đi thì tất cả các phần tử trong mảng M sẽ có thứ tự tăng.

C. Đi từ cuối mảng về đầu mảng, trong quá trình đi nếu phần tử ở dưới (đứng phía sau) nhỏ hơn phần tử đứng ngay trên (trước) nó thì hai phần tử này sẽ được đổi chỗ cho nhau. Sau mỗi lần đi chúng ta đưa được một phần tử trồi lên đúng chỗ. Sau N lần đi thì tất cả các phần tử trong mảng M sẽ có thứ tự tăng

D. Cả a, b, c đều sai

Câu hỏi 11 :

Thuật toán sắp xếp chèn trực tiếp (Straight Insertion Sort) được mô tả bằng đoạn mã giả như sau:
B1: K = 1
B2: IF (K = N) Thực hiện BKT
B3: X = M[K+1]
B4: Pos = 1
B5: IF (Pos > K) Thực hiện B7
B6: ELSE // Tìm vị trí chèn
B6.1: If (X <= M[Pos]) Thực hiện B7
B6.2: Pos++
B6.3: Lặp lại B6.1
B7: I = K+1 B8: IF (I > Pos)
B8.1: M[I] = M[I-1]
B8.2: I--
B8.3: Lặp lại B8
B9: ELSE
B9.1: M[Pos] = X
B9.2: K++
B9.3: Lặp lại B2
BKT: Kết thúc Trong đó B8 mô tả trường hợp

A. Nếu còn phải dời các phần tử từ Pos->I về phía sau 1 vị trí

B. Nếu còn phải dời các phần tử từ Pos->K+1 về phía sau 1 vị trí

C. Nếu còn phải dời các phần tử từ Pos->K về phía sau 1 vị trí

D. Nếu còn phải dời các phần tử từ Pos->I+1 về phía sau 1 vị trí

Câu hỏi 13 :

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. Một danh sách có chiều dài bằng 0 là một danh sách rỗng

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

Câu hỏi 14 :

Tìm mô tả đúng cho hàm sau:
int SC (int M[], int Len, int CM[])
{ for (int i = 0; i < Len; i++)
CM[i] = M[i];
return (Len);
}

A. Hàm thực hiện việc sao chép nội dung mảng CM có chiều dài Len về
mảng M có cùng chiều dài. Hàm trả về chiều dài của mảng M sau khi sao
chép

B. Hàm thực hiện việc sao chép nội dung mảng M có chiều dài Len -1 về
mảng CM có cùng chiều dài. Hàm trả về chiều dài của mảng CM sau khi
sao chép

C. Hàm thực hiện việc sao chép nội dung mảng CM có chiều dài Len -1 về
mảng M có cùng chiều dài. Hàm trả về chiều dài của mảng M sau khi sao
chép

D. Hàm thực hiện việc sao chép nội dung mảng M có chiều dài Len về
mảng CM có cùng chiều dài. Hàm trả về chiều dài của mảng CM sau khi
sao chép

Câu hỏi 15 :

Cấu trúc dữ liệu mảng có các ưu điểm nào?

A. Việc thêm, bớt các phần tử trong danh sách đặc có nhiều khó khăn do
phải di dời các phần tử khác đi qua chỗ khác

B. Việc truy xuất và tìm kiếm các phần tử của mảng là dễ dàng vì các phần
tử đứng liền nhau nên chúng ta chỉ cần sử dụng chỉ số để định vị vị trí các
phần tử trong danh sách (định vị địa chỉ các phần tử)

C. Mật độ sử dụng bộ nhớ của mảng là tối ưu tuyệt đối

D. Câu a, b, c đúng

Câu hỏi 16 :

Định nghĩa nào là đúng với danh sách liên kết?

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

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

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

D. Danh sách liên kết là tập hợp các phần tử mà đặt kề cận với nhau trong
vùng nhớ

Câu hỏi 17 :

Định nghĩa cấu trúc dữ liệu của danh sách liên kết đơn được mô tả như sau:
typedef struct Node
{ int Key;
Node * NextNode;
} OneNode;
Trong đó, khai báo Node * NextNode; dùng để mô tả:

A. Con trỏ trỏ tới phần dữ liệu

B. Vùng liên kết quản lý địa chỉ phần tử kế tiếp

C. Con trỏ trỏ tới địa chỉ vùng nhớ của phần tử trước đó trong danh sách
liên kết đơn

D. Con trỏ trỏ tới địa chỉ vùng nhớ của phần tử đầu tiên trong danh sách
liên kết đơn

Câu hỏi 18 :

Với cấu trúc dữ liệu của danh sách liên kết đơn lưu trữ thông tin về phòng máy:
typedef struct PM
{
int maPM; int tongsoMay;
} PHONGMAY;
typedef struct Node { PHONGMAY Data; Node * NextNode;
} OneNode;
typedef OneNode * SLLPointer;
Để quản lý danh sách liên kết đơn bằng phần tử đầu và phần tử cuối, cần định nghĩa kiểu dữ liệu:

A. SLLPointer DanhSach;

B. typedef struct SSLLIST { SLLPointer First; SLLPointer Last; } LIST; LIST DanhSach;

C. typedef struct SSLLIST { SLLPointer First; SLLPointer Last; int total; }LIST; LIST DanhSach;

D. typedef struct SSLLIST { SLLPointer First; int total; } LIST; LIST DanhSach;

Câu hỏi 21 :

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 hỏi 22 :

Lựa chọn câu đúng nhất về danh sách liên kết đôi (Doubly Linked List):

A. Vùng liên kết của một phần tử trong danh sách liên đôi có 02 mối liên kết với 01 phần tử khác trong danh sách

B. Vùng liên kết của một phần tử trong danh sách liên đôi có 01 mối liên kết với 02 phần tử khác trong danh sách

C. Vùng liên kết của một phần tử trong danh sách liên đôi có 02 mối liên kết với 02 trước và sau nó trong danh sách

D. Vùng liên kết của một phần tử trong danh sách liên đôi có 02 mối liên kết với phần tử đầu và cuối của danh sách

Câu hỏi 24 :

Cho thuật toán sắp xếp Bubble Sort như sau:
void BubbleSort(int M[], int N)
{
for (int I = 0; I < N-1; I++)
for (int J = N-1; J > I; J--)
if (M[J] < M[J-1])
Swap(M[J], M[J-1]);
return;
}
Chọn câu đúng nhất cho hàm Swap

A. void Swap(int &X, int &Y) { int Temp = X; X = Y; Y = Temp; return; }

B. void Swap(float X, floatY) { int Temp = X; X = Y; Y = Temp; return; }

C. void Swap(int *X, int *Y) { int Temp = X; X = Y; Y = Temp; return; }

D. void Swap(int X, intY) { int Temp = X; X = Y; Y = Temp; return; }

Câu hỏi 25 :

Cho cây biểu thức sau:
Cho cây biểu thức sau: Chọn biểu thức tương ứng với cây (ảnh 1)
Chọn biểu thức tương ứng với cây

A. (2 * (4 + (5 + 3)))

B. (4 * (2+ (5 + 3)))

C. (2 * (3 + (5 +4)))

D. (2 * (5 + (4+ 3)))

Câu hỏi 26 :

Cho thuật toán sau:
int LinearSearch (int M[], int N, int X)
{ int k = 0;
while (M[k] != X k < N )
k++;
if (k < N )
return (k);
return (-1);
}
Chọn câu đúng nhất trong trường hợp xấu nhất khi không tìm thấy phần tử nào có giá trị bằng X:

A. Số phép gán: Gmax = 1 Số phép so sánh: Smax = 2N+1

B. Số phép gán: Gmax = 2 Số phép so sánh: Smax = 2N+1

C. Số phép gán: Gmax = 1 Số phép so sánh: Smax = 2N+2

D. Số phép gán: Gmax = 1 Số phép so sánh: Smax = N+2

Câu hỏi 27 :

Cho thuật toán sau:
int LinearSearch (float M[], int N, float X)
{
int k = 0;
M[N] = X;
while (M[k] != X) //n+1 lan
(M[k] != X) //n+1 lan k++;
if (k < N)
return (k);
return (-1);
}
Chọn câu đúng nhất trong trường hợp xấu nhất khi không tìm thấy phần tử nào có giá trị bằng X:

A. Số phép gán: Gmax = 1 Số phép so sánh: Smax = N + 2

B. Số phép gán: Gmax = 2 Số phép so sánh: Smax = N + 2

C. Số phép gán: Gmax = 2 Số phép so sánh: Smax = N + 1

D. Số phép gán: Gmax = 2 Số phép so sánh: Smax =2 N + 2

Câu hỏi 28 :

Cấu trúc dữ liệu cho kiểu dữ liệu sinh viên như sau:
typedef struct tagSV{
char MSSV[8];
char Ten[30];
char NgaySinh[11];
float DTB;
}SV;
Khai báo
SV sv1, *sv2;
Lựa chọn các câu đúng nhất để gán giá trị cho mã sinh viên của sv1 và sv2:

A. sv1.MSSV = “Nguyen Van A”; sv2.MSSV = “Nguyen Van B”;

B. sv1.MSSV = “Nguyen Van A”; sv2->MSSV = “Nguyen Van B”;

C. sv1->MSSV = “Nguyen Van A”; sv2->MSSV = “Nguyen Van B”;

D. sv1->MSSV = “Nguyen Van A”; sv2.MSSV = “Nguyen Van B”;

Câu hỏi 29 :

Với thủ tục như sau:
void operation()
{
int x,a[10],n;
int x,m,l,h,flag=0;
cout<<"Enter the element to be searched:";
cin>>x;
l=0; h=n-1;
while(l<=h)
{
m=(l+h)/2;
if(x==a[m]) {
lag=1; break;
}
else if(x>a[m])
l=m+1;
else if(x<a[m])
h=m-1;
}
if(flag==0)
cout<<"ABSENT";
else
cout<<"PRESENT";
}
Lựa chọn câu đúng nhất để mô tả thủ tục trên

A. Thủ tục tìm nhị phân phần tử được nhập từ bàn phím, nếu tìm thấy sẽ thông báo ABSENT

B. Thủ tục tìm nhị phân phần tử được nhập từ bàn phím, nếu không tìm thấy sẽ thông báo ABSENT

C. Thủ tục tìm tuyến tính phần tử được nhập từ bàn phím, nếu tìm thấy sẽ thông báo ABSENT

D. Thủ tục tìm tuyến tính phần tử được nhập từ bàn phím, nếu không tìm thấy sẽ thông báo ABSENT

Câu hỏi 32 :

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

A. Hàng đợi còn được gọi là danh sách FILO và cấu trúc dữ liệu này còn được gọi cấu trúc FILO (First In Last Out)

B. Hàng đợi là một danh sách mà trong đó thao tác thêm 1 phần tử vào trong danh sách được thực hiện 1 đầu này và lấy 1 phần tử trong danh sách lại thực hiện bởi đầu kia

C. Hàng đợi là một danh sách mà trong đó thao tác thêm 1 phần tử hay hủy một phần tử trong danh sách được thực hiện 1 đầu

D. Hàng đợi phải là một danh sách liên kết đơn

Câu hỏi 33 :

Chiều dài đường đi của một cây (path’s length of the tree) được định nghĩa là tổng tất cả các chiều dài đường đi của tất cả các nút trên cây. Xét cây sau:
Chiều dài đường đi của một cây (path’s length of the tree) được định nghĩa là tổng tất cả các chiều dài đường đi của tất cả các nút trên cây. Xét cây sau: (ảnh 1)

A. Chiều dài đường của cây trên là 63

B. Chiều dài đường của cây trên là 64

C. Chiều dài đường của cây trên là 65

D. Chiều dài đường của cây trên là 66

Câu hỏi 34 :

Chọn định nghĩa đúng nhất đối với cây nhị phân tìm kiếm:

A. Cây nhị phân tìm kiếm là cây nhị phân có thành phần khóa của mọi nút lớn hơn thành phần khóa của tất cả các nút trong cây con trái của nó và nhỏ hơn thành phần khóa của tất cả các nút trong cây con phải của nó

B. Cây nhị phân tìm kiếm là cây nhị phân có thành phần khóa của mọi nút nhỏ hơn thành phần khóa của tất cả các nút trong cây con trái của nó và nhỏ hơn thành phần khóa của tất cả các nút trong cây con phải của nó

C. Cây nhị phân tìm kiếm là cây nhị phân có thành phần khóa của mọi nút lớn hơn thành phần khóa của tất cả các nút trong cây con trái của nó và lớn hơn thành phần khóa của tất cả các nút trong cây con phải của nó.

D. Cây nhị phân tìm kiếm chính là cây nhị phân

Câu hỏi 35 :

Chọn định nghĩa đúng nhất về cây cân bằng tương đối:

A. Cây cân bằng tương đối là một cây nhị phân thỏa mãn điều kiện là đối với mọi nút của cây thì số nút của cây con trái và số nút của cây con phải của nút đó hơn kém nhau không quá 1. Cây cân bằng tương đối còn được
gọi là cây AVL (AVL tree)

B. Cây cân bằng tương đối là một cây N phân thỏa mãn điều kiện là đối với mọi nút của cây thì chiều cao của cây con trái và chiều cao của cây con phải của nút đó hơn kém nhau không quá 2. Cây cân bằng tương đối còn
được gọi là cây AVL (AVL tree)

C. Cây cân bằng tương đối là một cây nhị phân thỏa mãn điều kiện là đối với mọi nút của cây thì chiều cao của cây con trái và chiều cao của cây con phải của nút đó hơn kém nhau không quá 1. Cây cân bằng tương đối còn
được gọi là cây AVL (AVL tree)

D. Cây cân bằng tương đối cũng là cây cân bằng hoàn toàn

Câu hỏi 36 :

Định nghĩa cấu trúc dữ liệu của danh sách liên kết đơn được mô tả như sau:
struct Node
{
int Key; Node *
NextNode;
} OneNode;
Trong đó, khai báo Node * NextNode; dùng để mô tả

A. Con trỏ trỏ tới phần dữ liệu

B. Vùng liên kết quản lý địa chỉ phần tử kế tiếp

C. Con trỏ trỏ tới phần dữ liệu cuối của danh sách

D. Vùng liên kết quản lý địa chỉ phần tử kế tiếp của phần tử cuối

Câu hỏi 46 :

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

A. (L->left == NULL)

B. (L->ìnfor == NULL)

C. (L->next == NULL)

D. (L == NULL)

Câu hỏi 47 :

Kết quả nào đúng khi thực hiện giải thuật sau với a[]= {1, 3, 5, 4, 2}; n= 5:
Kết quả nào đúng khi thực hiện giải thuật sau với a[]= {1, 3, 5, 4, 2}; n= 5: (ảnh 1)

A. 1 4 2 3 5

B. 5 4 3 2 1

C. 1 4 5 3 2

D. 1 3 4 2 5

Câu hỏi 48 :

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

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

B. Loại bỏ phần tử ở 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ỳ

Câu hỏi 49 :

Dấu hiệu nào dưới đây cho biết hàng đợi đã có thao tác thêm và loại bỏ phần tử là rỗng:

A. Lối trước có giá trị > giá trị của lối sau

B. Lối sau nhận giá trị = 0

C. Lối trước có giá trị < giá trị của lối sau

D. Lối trước nhận giá trị = 0

Câu hỏi 50 :

Thao tác nào dưới đây thực hiện trên ngăn xếp (stack):

A. Thêm phần tử vào vị trí bất kỳ

B. Loại bỏ phần tử tại vị trí bất kỳ

C. Thêm và loại bỏ phần tử luôn thực hiện tại vị trí đỉnh (top)

D. Thêm và loại bỏ phần tử có thể thực hiện tại vị trí bất kỳ

Câu hỏi 52 :

Nút có khóa nhỏ nhất trong cây nhị phân tìm kiếm khác rỗng là:

A. Nút gốc

B. Tất cả các nút

C. Nút con bên phải nhất

D. Nút con bên trái nhất

Câu hỏi 53 :

Cây nhị phân khác rỗng là cây:

A. Mỗi nút (trừ nút lá) đều có hai nút con

B. Tất cả các nút đều có nút con

C. Mỗi nút có không quá 2 nút con

D. Tất cả các nút đều có nút cha

Câu hỏi 54 :

Đồ thị G có n đỉnh và m cạnh với m, n thì ma trận kề của G luôn có dạng:

A. là ma trận vuông cấp n

B. là ma trận cấp nxm

C. là ma trận vuông cấp m

D. là ma trận cấp mxn

Câu hỏi 55 :

Đồ thị vô hướng G có chu trình Euler khi và chỉ khi:

A. G liên thông và mọi đỉnh G có bậc chẵn

B. mọi đỉnh G có bậc chẵn

C. G có chu trình Hamilton

D. G có đường đi Euler

Câu hỏi 56 :

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

A. Máy tính

B. Thuật toán được sử dụng

C. Chương trình dịch

D. Kích thước của dữ liệu đầu vào của thuật toán

Câu hỏi 57 :

Chọn phát biểu đúng trong các phát biểu dưới đây: bằng cách chạy thử 1 thuật toán với 1 bộ dữ liệu, ta có thể:

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

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

C. Khẳng định thuật toán tốt nếu cho kết quả nhanh

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

Câu hỏi 58 :

Trong các mệnh đề sau đây, mệnh đề nào sai:

A. Kiểu dữ liệu là một tập hợp nào đó các phần tử dữ liệu cùng chung một thuộc tính

B. kiểu của một ngôn ngữ bao gồm các kiểu dữ liệu đơn và các phương pháp cho phép ta từ các kiểu dữ liệu đã có xây dựng nên các kiểu dữ liệu mới

C. Cấu trúc dữ liệu là các dữ liệu phức tạp, được xây dựng nên từ các kiểu dữ liệu đã có, đơn giản hơn bằng các phương pháp liên kết nào đó

D. Một trong ba mệnh đề trên là sai

Câu hỏi 59 :

Tìm mệnh đề sai trong các mệnh đề sau: Một cấu trúc dữ liệu bao gồm…

A. Một tập hợp nào đó các dữ liệu thành phần

B. Các dữ liệu thành phần đặt sát nhau trong bộ nhớ

Câu hỏi 62 :

Cho biểu thức a+b*((c-d)*e+f/h). Danh sách duyệt tiền tự của biểu thức
đã cho là:

A. + * a b + * - c d e / f h

B. + a * b + * - c d e / f h

C. + a b * * e - c d + / f h

D. + * a + b – c d * e / f h

Câu hỏi 63 :

Danh sách duyệt hậu tự của biểu thức trong câu 3 là:

A. a c d - * e b * + f h / +

B. a b c d - e * + f h / * +

C. a b c d - e * f h / + * +

D. a b e c d * - f h / + * +

Câu hỏi 64 :

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 hỏi 65 :

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ùythuộc vào phương pháp cài đặt danh sách

D. Tất cả đều sai

Câu hỏi 68 :

Đá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, độ khó

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

Câu hỏi 69 :

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

Câu hỏi 70 :

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

A. Sinh viên

B. Float

C. Họtên

D. Ngày sinh

Câu hỏi 71 :

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

A. Char

B. int

C. long

D. struct

Câu hỏi 72 :

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

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 dựa trên các kiểu dữ liệu cơ bản được cung cấp từ ngôn ngữ máy

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

Câu hỏi 73 :

Chỉ ra kiểu dữ liệu trừu tượng:

A. float

B. int

C. char

D. mảng 1 chiều

Câu hỏi 74 :

Cấu trúc dữ liệu là …

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

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

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ả

Câu hỏi 75 :

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:

A. Chương trình = Cấu trúc dữ liệu

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

Câu hỏi 81 :

Chỉ ra khái niệm có tính chất đệ quy?

A. khái niệm tính giai thừa của n (n!)

B. khái niệm hình ảnh

C. khái niệm âm thanh

Câu hỏi 87 :

Cho bài toán: cho trước n là một số tự nhiên, tính n!. Chỉ ra trường hợp suy biến

A. với n = 0

B. với n = 1

C. với n =0 hoặc n = 1

Câu hỏi 88 :

Hãy chọn định nghĩa đúng nhất về danh sách kiểu hàng đợi (Queue)?

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

C. Hàng đợi 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

D. 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âu hỏi 91 :

Để loại bỏ một đối tượng ra khỏi Stack, ta dùng hàm nào sau đây?

A. FULL(x)

B. POP(x)

C. EMPTY(x)

D. PUSH(x)

Câu hỏi 92 :

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ỏ trỏ tới lối trước của Q, R là con trỏ trỏ tới lối sau của Q. Điều kiện F=R=0 nghĩa là gì trong các phương án sau?

A. Queue tràn

B. Queue rỗng

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

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

Câu hỏi 99 :

Hãy cho biết quy tắc đúng của phép duyệt cây theo thứ tự trước trong các phương án sau?

A. Duyệt cây con trái theo thứ tự trước; Duyệt cây con phải theo thứ tự trước; Duyệt gốc

B. Duyệ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

C. Duyệt gốc, cây trái, cây phải đồng thời theo thứ tự trước

D. Duyệt cây con trái theo thứ tự trước; Duyệt gốc; Duyệt cây con phảitheo thứ tự trước

Câu hỏi 100 :

Hãy cho biết quy tắc đúng của phép duyệt cây theo thứ tự giữa trong các phương án sau?

A. Duyệt gốc, cây trái, cây phải đồng thời theo thứ tự giữa

B. Duyệt 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

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; Duyệt gốc

D. Duyệt cây con trái theo thứ tự giữa; Duyệt gốc; Duyệt cây con phải theo thứ tự giữa

Câu hỏi 101 :

Hãy cho biết quy tắc đúng của phép duyệt cây theo thứ tự sau trong các phương án sau?

A. Duyệt cây con trái theo thứ tự sau; Duyệt gốc; Duyệt cây con phải theo thứ tự sau

B. Duyệt gốc, cây trái, cây phải đồng thời theo thứ tự sau

C. Duyệt cây con trái theo thứ tự sau; Duyệt cây con phải theo thứ tự sau; Duyệt gốc

D. Duyệt gốc; Duyệt cây con trái theo thứ tự sau; Duyệt cây con phải theo thứ tự sau

Câu hỏi 102 :

Yếu tố nào sau đây để xây dựng nên một chương trình hoàn chỉnh?

A. Dữ liệu tốt, giải thuật đơn giản

B. Giải thuật có thời gian thực hiện nhanh nhất

C. Cấu trúc dữ liệu thích hợp, giải thuật xử lý hiệu quả

D. Cấu trúc dữ liệu tốt

Câu hỏi 104 :

Hãy chọn Câu trả lời đúng nhất về giải thuật?

A. Giải thuật hay còn gọi là thuật toán dùng để chỉ phương pháp hay cách thức giải quyết vấn đề( bao gồm một dãy các bước tính toán rõ ràng và chính xác)

B. Giải thuật là nòng cốt của chương trình

C. Giải thuật 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

D. Giải thuật cần có một hoặc nhiều dữ liệu ra (output), dữ liệu vào (input)

Câu hỏi 105 :

Hãy cho biết đâu là đặc trưng của thuật toán trong các phương án sau?

A. Mỗi thuật toán có bộ dữ liệu vào, ra tương ứng

B. Mỗi bước của thuật toán cần phải được mô tả một các chính xác

C. Thuật toán phải dừng lại sau một số hữu hạn các bước cần thực hiện

D. Tất cả các đặc trưng đã nêu

Câu hỏi 106 :

Dựa vào yếu tố nào sau đây để đánh giá thời gian thực hiện của giải thuật?

A. Thời gian khi chạy chương trình cụ thể

B. Tính xác định

C. Độ phức tạp tính toán của giải thuật

D. Tính dừng

Câu hỏi 107 :

Hãy cho biết phương án đúng của để 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?

A. O(1), O(logn), O(n), O(nlogn)

B. O(1), O(nlogn), O(n), O(logn)

C. O(logn), O(n), O(nlogn), O(1)

D. O(nlogn), O(n), O(logn), O(1)

Câu hỏi 108 :

Hãy cho biết Câu trả lời đúng nhất về đặc điểm của giải thuật đệ quy?

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ả các đáp án đều đúng

Câu hỏi 109 :

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 hỏi 110 :

Với dữ liệu đầu vào (n) đủ nhỏ, ta nên sử dụng phương pháp sắp xếp nào sau đây?

A. Sắp xếp nhanh(quick sort)

B. Sắp xếp vun đống(Heap sort)

C. Sắp xếp lựa chọn(selection sort)

D. Sắp xếp trộn(Merge sort)

Câu hỏi 111 :

Trong các danh sách tuyến tính sau đây, danh sách nào sau đây có dạng ngăn xếp?

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

Câu hỏi 112 :

Danh sách tuyến tính dạng ngăn xếp làm việc theo nguyên tắc nào sau đây?

A. LILO(last in last out)

B. LIFO(last in first out)

C. FIFO( first in first out)

D. FOLO(fisrt out last out)

Câu hỏi 113 :

Với dữ liệu đầu vào (n) lớn, ta nên sử dụng phương pháp sắp xếp nào sau đây?

A. Sắp xếp trộn (Merge sort) hoặc Sắp xếp đống(Heap sort)

B. Sắp xếp đống(Heap sort) hoặc Sắp xếp nhanh(quick sort)

C. Sắp xếp chọn(selection sort), sắp xếp chèn ( Insert sort)

D. Sắp xếp nổi bọt ( bubble sort) hoặc Sắp xếp chọn(selection sort)

Câu hỏi 114 :

Hãy cho biết phát biểu nào đúng nhất về Giải thuật đệ quy?

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

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

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 nhỏ hơn

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

Câu hỏi 117 :

Nếu tương ứng với P1 và P2 là T1(n) = O(f(n)), T2(n) = O(g(n)) thì thời gian thực hiện P1 và P2 lồng nhau sẽ là bao nhiêu trong các phương án sau?

A. T1(n)T2(n) = O(f(n)and g(n))

B. T1(n)T2(n) = O(f(n).g(n))

C. T1(n)T2(n) = O(f(n)+g(n))

D. T1(n)T2(n) = O(f(n)/g(n))

Câu hỏi 119 :

Cho Stack gồm 5 phần tử {12, 5, 20, 23, 72}, trong đó 72 là phần tử ởđỉnh Sta ck. Để lấy ra phần tử thứ 4 trong Stack ta phải thực hiện theo phương án nào?

A. POP(72), POP(23), POP(72)

B. POP(72), POP(23), PUSH(72)

C. POP(23), PUSH(23), POP(72)

D. POP(23), PUSH(72), POP(72)

Câu hỏi 120 :

Trong các giải thuật sắp xếp, giải thuật nào sau đây áp dụng phương pháp Chia để trị?

A. Quick sort, Heap sort

B. Quick sort, Merge sort

C. Quick sort, Bubble sort

D. Quick sort, Insert sort

Câu hỏi 121 :

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 hỏi 122 :

Hãy cho biết ý tưởng nào sau đây nói về phương pháp sắp xếp chọn tăng dần (select 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. 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

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 cho đến phần tử cuối cù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 bé hơn được cho lên vị trí trên

Câu hỏi 123 :

Hãy cho biết ý tưởng nào sau đây nói về phương pháp sắp xếp chèn (insertion 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. 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

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 cho đến phần tử cuối cù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

Câu hỏi 124 :

Hãy cho biết ý tưởng nào sau đây nói về phương pháp sắp xếp nhanh (Quick sort)?

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 cho đến phần tử cuối cùng

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ếpnh u, nếu phần tử nào nhỏ hơn được đứng vị trí trên

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

Câu hỏi 125 :

Phương pháp nào sau đây chính là phương pháp sắp xếp nhanh (Quick sort)?

A. Phương phap trộn

B. Phương pháp vun đống

C. Phương pháp chèn

D. Phương pháp phân đoạn

Câu hỏi 126 :

Hãy cho biết ý tưởng nào sau đây nói về tưởng phương pháp sắp xếp Trộn (Merge sort)?

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

D. 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âu hỏi 127 :

Hãy cho biết ý tưởng nào sau đây nói về phương pháp sắp xếp vun đống (Heap sort)?

A. Tạo đống cho cây nhị phân (cây nhị phân đã được sắp xếp giảm dần)

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

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

D. Lần lượt tạo đống cho cây nhị phân (phần tử gốc có giá trị lớn nhất) và loại phần tử gốc ra khỏi cây đưa vào dãy sắp xếp

Câu hỏi 129 :

Hãy cho biết tư tưởng nào sau đây nói về của giải thuật tìm kiếm nhị phân?

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

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

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

D. 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âu hỏi 130 :

Hãy cho biết tư tưởng nào sau đây nói về 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. 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ạ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âu hỏi 131 :

Hãy cho biết tư tưởng nào sau đây nói về của giải thuật tìm kiếm trên cây nhị phân tìm kiếm?

A. 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 đã chi

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

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

D. 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âu hỏi 132 :

Hãy cho biết tính chất nào sau đây là của cây nhị phân tìm kiếm?

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

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

C. Cây nhị phân thoả tính chất heap

D. Cây nhị phân mà mỗi nút trong cây đều thoả 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âu hỏi 136 :

Khi lưu trữ cây nhị phân dưới dạng mảng, phần tử ở vị trí số 9 đóng vai trò gì trong các phương án sau?

A. Là nút con phải của nút có vị trí là 4

B. Là nút con trái của nút có vị trí là 5

C. Là nút con trái của nút có vị trí là 4

D. Là nút con phải của nút có vị trí là 5

Câu hỏi 139 :

Trong biểu diễn dữ liệu dưới dạng cây, Khái niệm nào sau đây là cấp của cây?

A. Là tổng số nút trên cây

B. Là cấp cao nhất của nút gố

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

D. Là cấp cao nhất của nút lá

Câu hỏi 140 :

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à nút gì trong các phương án sau?

A. Là nút lá

B. Là phần tử cuối cùng trong cây

C. Là nút gố

D. Là phần tử đầu cùng trong cây

Câu hỏi 142 :

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ó

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

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 nhỏ 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ả

Câu hỏi 143 :

Đặc điểm của giải thuật đệ quy:

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

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

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

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

Câu hỏi 144 :

Danh sách tuyến tính là:

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

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

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

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

Câu hỏi 145 :

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

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

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

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

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

Câu hỏi 146 :

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

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ỏ được thực hiện ở đầu kia

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 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âu hỏi 147 :

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

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

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

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

Câu hỏi 148 :

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

A. LOLO

B. FIFO

C. FILO

D. LIFO

Câu hỏi 155 :

Cho dãy số sau: 40 25 75 15 65 55 90 30 95 85. Áp dụng phương pháp sắp xếp lựa chọn, sau lượt 1 dãy sẽ được sắp xếp lại như thế nào?

A. 15 25 40 75 30 55 65 90 85 95

B. 40 25 75 15 30 65 55 90 85 95

C. 15 25 75 40 65 55 90 30 95 85

D. 15 40 25 30 75 65 55 85 90 95

Câu hỏi 156 :

Cho dãy số sau: 40 25 75 15 65 55 90 30 95 85. Áp dụng phương pháp sắp xếp lựa chọn, sau lượt 2 dãy sẽ được sắp xếp lại như thế nào?

A. 15 25 75 30 40 65 55 90 85 95

B. 15 40 25 75 30 55 65 90 85 95

C. 15 25 75 40 65 55 90 30 95 85

D. 15 40 25 30 75 65 55 85 90 95

Câu hỏi 157 :

Cho dãy số sau: 40 25 75 15 65 55 90 30 95 85. Áp dụng phương pháp sắp xếp hòa nhập (Merge_Sort) trực tiếp, sau lượt 1 dãy sẽ được sắp xếp lại như thế nào?

A. [15 40] [30 25] [55 65] [75 85] [90 95]

B. [40 25] [55 15] [30 65] [75 90] [85 95]

C. [15 25] [40 75] [30 55] [65 90] [85 95]

D. [25 40] [15 75] [55 65] [30 90] [85 95]

Câu hỏi 162 :

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 nhỏ hơn khóa ứng với nút đó

B. 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 đó

C. 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 đó

D. Đáp án A và C

Câu hỏi 163 :

Các thuộc tính của một kiểu dữ liệu?

A. Tên kiểu dữ liệu

B. Tập các toán tử tác động lên kiểu dữ liệu

C. Kích thước lưu trữ

D. Tất cả các thuộc tính đưa ra

Câu hỏi 164 :

Miền giá trị của Kiểu số nguyên là:

A. -32767 .. 32768

B. 0..32768

C. -32768 .. 32767

D. 0..32767

Câu hỏi 165 :

Tập các toán tử kiểu số nguyên là:

A. +, -, , /, %, các phép so sánh, div ,mod

B. +, -, , /, %, các phép so sánh

C. +, -, , /, %

D. +, -, , /, % ,true,false

Câu hỏi 166 :

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

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

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

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)

Câu hỏi 168 :

Để viết chương trình chỉ để sử dụng một số ít lần và cái giá của thời gian viết chương trình vượt xa cái giá của chạy chương trình thì ta chọn thuật toán:

A. Thuật toán sử dụng tiếp kiện nhất nguồn tài nguyên của máy tính, và đặc biệt, chạy nhanh nhất có thể được

B. Thuật toán đơn giản, dễ hiểu, dễ cài đặt (dễ viết chương trình)

C. Cả hai tiêu chí nêu ra

Câu hỏi 169 :

Khi viết các chương trình (thủ tục hoặc hàm) để sử dụng nhiều lần, cho nhiều người sử dụng ta chọn thuật toán:

A. Thuật toán sử dụng tiếp kiện nhất nguồn tài nguyên của máy tính, và đặc biệt, chạy nhanh nhất có thể được

B. Thuật toán đơn giản, dễ hiểu, dễ cài đặt (dễ viết chương trình)

C. Cả hai tiêu chí nêu ra

Câu hỏi 170 :

Cài đặt danh sách bằng con trỏ có nghĩa là

A. Dùng con trỏ để liên kết các phần tử của danh sách theo phương thức ai chỉ đến ai+1. Để một phần tử có thể chỉ đến một phần tử khác ta xem mỗi ô là một Record gồm có 2 trường : Trường Elements để giữ nội dung
của phần tử trong danh sách. Trường Next là một con trỏ giữ địa chỉ của ô kế tiếp

B. 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. Khai báo bản ghi gồm 2 trường:Trường Elements để giữ nội dung của phần tử trong danh sách. Trường Next là
một con trỏ giữ địa chỉ của ô kế tiếp

C. Dùng con trỏ quản lí các phần tử của mảng theo phương thức bất kì. Để một phần tử có thể chỉ đến một phần tử khác ta xem mỗi ô là một Record gồm có 2 trường : Trường Elements để giữ nội dung của phần tử trong
danh sách. Trường Next là một con trỏ giữ địa chỉ của ô kế tiếp.

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

Câu hỏi 171 :

Đối với biến con trỏ Hàm MaxAvail: 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 tổng số bytes còn lại trên Heap

C. Hàm cho biết vùng nhớ lớn nhất còn trống trong Heap

D. Hàm cho biết vùng nhớ lớn nhất được cấp phát

Câu hỏi 172 :

Đố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 hỏi 173 :

Đối với biến con trỏ Hàm SizeOf (Biến ): 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 vùng nhớ lớn nhất còn trống trong Heap.

D. Hàm cho biết tổng số bytes còn lại trên Heap

Câu hỏi 174 :

Đối với biến con trỏ hàm Add (x): Pointer có chức năng gì?

A. Cho biết địa chỉ segment của biến x

B. Cho biết địa chỉ seg: Ofs

C. Cho biết địa chỉ Offset của biến x

D. Cho biết địa chỉ tổng quát của biến x

Câu hỏi 175 :

Đố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 hỏi 176 :

Đối với biến con trỏ hàm Ofs (x): Word có chức năng gì?

A. Cho biết địa chỉ seg: Ofs

B. Cho biết địa chỉ segment của biến x

C. Cho biết địa chỉ tổng quát của biến x

D. Cho biết địa chỉ Offset của biến x

Câu hỏi 177 :

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 hỏi 178 :

Thế nào là sắp xếp ngoài?

A. Sắp xếp ngoài 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

B. Sắp xếp ngoài 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

C. Sắp xếp ngoài 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ớ

D. Sắp xếp ngoài 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

Câu hỏi 179 :

Đâu là phương pháp sắp xếp trong, trong các phương pháp sau:

A. Phương pháp nổi bọt(Bubble sort)

B. Phương pháp sắp xếp chèn (selection sort)

C. Phương pháp sắp xếp chọn (insertion sort)

D. Tất cả đều sai

Câu hỏi 180 :

Đâu là phương pháp sắp xếp ngoài, trong các phương pháp sau:

A. Phương pháp sắp xếp chèn (insertion sort)

B. Phương pháp sắp xếp chọn (selection sort)

C. Phương pháp nổi bọt(Bubble sort)

D. Cả 3 phương pháp đều đúng

Câu hỏi 181 :

Thế nào là ngôn ngữ giả?

A. Ngôn ngữ giả là cấu trúc của môt chuương trình chỉ viết bằng ngôn ngữ Pascal mà tuỳ thuộc vào nguười lập trình

B. Ngôn ngữ giả là ngôn ngữ do ngưuoi lập trình định nghĩa

C. Ngôn ngữ giả là sự kết hợp của ngôn ngữ tự nhiên và các cấu trúc của một ngôn ngữ lập trình nào đó

D. Ngôn ngữ giả là ngôn ngữ lập trình pascal, C, hay một ngôn ngữ bậc cao khác

Câu hỏi 182 :

Bước tổng quát của Phương pháp sắp xếp kiểu chèn (insertion sort):

A. Chọn phần tử có khoá nhỏ nhất trong n-i+1 phần tử từ a[i] đến a[n] và hoán vị nó với a[i]

B. Xen phần tử a[i+1] vào danh sách đã có thứ tự a[1],a[2],..a[i] sao cho a[1], a[2],.. a[i+1] là một danh sách có thứ tự

C. Xét các phần tử từ a[n] đến a[i+1].với mỗi phần tử a[j], so sánh khoá của nó với khoá của phần tử a[j-1] đứng ngay trước nó. Nếu khoá của a[j] nhỏ hơn khoá của a[j-1] thì hoán đổi a[j] và a[j-1] cho nhau

Câu hỏi 183 :

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 hỏi 186 :

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 hỏi 187 :

Thời gian chạy của một chuỗi tuần tự áp dụng quy tắc:

A. Quy tắc Trừ

B. Quy tắc Cộng

C. Quy tắc Nhân

D. Quy tắc Nhân đôi

Câu hỏi 191 :

Cho lệnh lặp: for i:=1 to 4 do y=3i + 6 . Hãy xác định các kết quả thu được:

A. 9,12,15,18

B. 3,6,9,12

C. 7,10,13,16

D. 5,8,11,14

Câu hỏi 192 :

Cho lệnh While B do x^2 + 7, trong đó B là x>3. Khi kiểm tra điều kiện B thì thấy x=3. Kết quả của lệnh này là:

A. =7

B. =15

C. =16

D. Không thực hiện được phép tính nào cả

Câu hỏi 195 :

Trên 1 bàn cờ, những ô nằm trên cùng một đường chéo từ dưói lên với ô (i,j) có hệ thức:

A. (hàng - cột)=i+j

B. (hàng - côt)=i-j

C. (hàng + cột)=i-j

D. (hàng + cột)=i+j

Câu hỏi 196 :

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. Lưu trữ mảng

B. Tạo mảng

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

D. Bổ xung một phần tử vào mảng

Câu hỏi 200 :

Dùng phương pháp lưu trữ liên tiếp để lưu trữ một ma trận ( mảng hai chiều) có nhược điểm lớn nhất là:

A. Cần một lượng ô nhớ lớn

B. Lãng phí ô nhớ khi ma trận thưa

C. Khó tìm kiếm

Câu hỏi 202 :

Cho cây nhị phân T. Phép duyệt thứ tự trước cho kết quả là:

A. ADBCEFG

B. AEBDCGF

C. AEDBCFG

D. ABDECFG

Câu hỏi 203 :

Độ cao của cây là gì?

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

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

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

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

Câu hỏi 204 :

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 hỏi 205 :

Cây 5 phân có nghĩa là gì?

A. Mức có nhiều nút nhất là 5

B. Cây có chiều cao là 5

C. Nút có cấp lớn nhất là 5

D. Cây đó có 5 nút

Câu hỏi 207 :

Cho dãy khoá 42,23,74,11,65,58 . Dùng phương pháp sắp xếp kiểu chọn (selection sort), sau 3 bước dãy có dạng nào?

A. 11,23,74,58,65,42

B. 42,11,74,23,58,65

C. 11,23,42,74,58,65

D. 11,23,42,74,65,58

Câu hỏi 208 :

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

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 bằng cách đẩy các phần tử lớn hơn xuống

Câu hỏi 209 :

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

A. Trộn

B. Phân đoạn

C. Vun đống

D. Chèn

Câu hỏi 210 :

Cơ chế heap trong sắp xếp vun đống là:

A. Cây nhị phân đầy đủ với tính chất giá trị của nút cha luôn lớn hơn giá trị hai nút con

B. Cây nhị phân hoàn chỉnh với tính chất giá trị của nút cha lớn luôn lớn hơn giá trị các nút trong cây con trái và nhỏ hơn giá trị các nút trong cây con phải

C. Cây nhị phân hoàn chỉnh với tính chất giá trị của nút cha luôn lớn hơn giá trị hai nút con

D. Cây nhị phân đầy đủ với tính chất giá trị của nút cha lớn luôn lớn hơn giá trị các nút trong cây con trái và nhỏ hơn giá trị các nút trong cây con phải

Câu hỏi 212 :

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ạ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: 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âu hỏi 213 :

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

A. Tìm kiếm dựa vào cây nhị tìm kiế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. 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

Câu hỏi 216 :

Để dịch chuyển các đĩa từ cọc B sang cọc C với cọc A là trung gian, lệnh gọi hàm nào là đúng?

A. dichuyen(n,"A","C","B");

B. dichuyen(n,"A","B","C");

C. dichuyen(n,"A","B","C")

D. dichuyen(n,"B","A","C")

Lời giải có ở chi tiết câu hỏi nhé! (click chuột vào câu hỏi).

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK