220 câu trắc nghiệm Cấu trúc dữ liệu và giải thuật có đáp án - Phần 3
-
14349 lượt thi
-
20 câu hỏi
-
20 phút
Danh sách câu hỏi
Câu 1:
Với cấu trúc dữ liệu như sau:
typedef struct DNode
{
typedef struct DNode
{
int Key;
DNode * NextNode;
DNode * PreNode;
} DOneNode;
typedef DOneNode * DPointerType;
typedef struct DLLPairNode
{ DPointerType DLLFirst;
DPointerType DLLLast;
} DLLPType;
Hàm duyệt qua các nút trong danh sách liên kết đôi quản lý bởi hai địa chỉ nút đầu tiên và nút cuối cùng thông qua DList để xem nội dung thành phần dữ liệu của mỗi nút
void DLLTravelling (DLLPType DList)
{
DPointerType CurrNode = DList.DLLFirst;
while (CurrNode != NULL) { cout <<
CurrNode->Key; …………………………………
}
return;
}
Chọn câu chính xác điền vào chỗ trống để mô tả việc di chuyển từ nút này sang nút khác
DNode * NextNode;
DNode * PreNode;
} DOneNode;
typedef DOneNode * DPointerType;
typedef struct DLLPairNode
{ DPointerType DLLFirst;
DPointerType DLLLast;
} DLLPType;
Hàm duyệt qua các nút trong danh sách liên kết đôi quản lý bởi hai địa chỉ nút đầu tiên và nút cuối cùng thông qua DList để xem nội dung thành phần dữ liệu của mỗi nút
void DLLTravelling (DLLPType DList)
{
DPointerType CurrNode = DList.DLLFirst;
while (CurrNode != NULL) { cout <<
CurrNode->Key; …………………………………
}
return;
}
Chọn câu chính xác điền vào chỗ trống để mô tả việc di chuyển từ nút này sang nút khác
Xem đáp án
Chọn đáp án A
Câu 2:
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;
}
}
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;
}
}
Xem đáp án
Chọn đáp án D
Câu 3:
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);
}
long lt(int n)
{if (n==0) return 1;
else return (2*lt(n-1);
}
Xem đáp án
Chọn đáp án D
Câu 4:
Kết quả nào đúng khi thực hiện giải thuật sau với a[]= {1, 3, 5}; n= 5, k= 3:
Xem đáp án
Chọn đáp án D
Câu 5:
Kết quả nào đúng khi thực hiện giải thuật sau với a[]= {-3, -3, 15, -3}; n= 4; x= -3:
int FindX(int a[], int n, int x)
{int i;
for (i= n; i>= 1; i--) if (a[i]==x) return (i);
return (-1);
}
int FindX(int a[], int n, int x)
{int i;
for (i= n; i>= 1; i--) if (a[i]==x) return (i);
return (-1);
}
Xem đáp án
Chọn đáp án D
Câu 7:
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:
Xem đáp án
Chọn đáp án A
Câu 9:
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:
Xem đáp án
Chọn đáp án A
Câu 11:
Trong phép duyệt cây nhị phân có 24 nút theo thứ tự sau, nút gốc có thứ tự:
Xem đáp án
Chọn đáp án D
Câu 14:
Đồ 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:
Xem đáp án
Chọn đáp án A
Câu 16:
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:
Xem đáp án
Chọn đáp án D
Câu 17:
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ể:
Xem đáp án
Chọn đáp án B