NEW
Font size
Worksheetsmodule 3
Total questions: 70
Worksheet time: 35mins
Điền phần còn thiếu vào chỗ chấm chấm trong phát biểu sau: “Hàng đợi (queue) là một cấu trúc dữ liệu dùng để chứa các đối tượng làm việc theo cơ chế ………..”
FILO
LIFO
ILOL
FIFO
Cho khai báo:
typedef struct ds{
int info;
struct ds next;
}Node;
typedef Node List;
Và hàm tạo một nút mới chứa thông tin x, lệnh nào gán x cho thông tin của con trỏ P?
x = P→next;
P→next = x;
P→info = x;
x = P→info;
Dịch chuyển các phần tử ở vị trí k sang bên phải (về cuối) 1 vị trí.
Loại bỏ phần tử ở vị trí i.
Thêm phần tử vào vị trí Count trong danh sách.
Gán dữ liệu ở vị trí i bằng dữ liệu ở vị trí i-1.
Phát biểu nào sau đây đúng với danh sách đặc?
Danh sách đặc có thể thêm được vô số phần tử.
Danh sách đặc chỉ thêm vào cuối danh sách.
Danh sách đặc có số phần tử hữu hạn
Danh sách đặc chỉ thêm phần tử vào đầu danh sách.
Cho khai báo sau:
typedef struct ds{
int Data[1000];
int Count;
}List;
Trong ngôn ngữ lập trình C, nguyên mẫu nào được khai báo đúng khi khởi tạo danh sách rỗng?
void Init(*L) ;
void Init(List L) ;
void Init(List &L) ;
void Init(List *L) ;
Phát biểu nào sau đây đúng nhất với danh sách đặc?
Danh sách đặc là danh sách thường được biểu diễn dưới dạng con trỏ.
Không phát biểu nào đúng.
Danh sách đặc là danh sách mà không gian bộ nhớ lưu trữ các phần tử được đặt liên tiếp nhau trong bộ nhớ.
Danh sách đặc là danh sách mà không gian bộ nhớ thường được cấp phát động.
Cho danh sách đặc L có kiểu dữ liệu là cấu trúc List, Count là biến nguyên lưu trữ số phần tử hiện tại của L, lệnh nào sau đây được sử dụng trong hàm kiểm tra danh sách rỗng?
return (L.Count =1);
return (L.Count =0);
return (L.Count ==0);
return (L.Count ==1);
Để nhập một dãy gồm n số nguyên ta dùng lệnh nào dưới đây?
Lệnh switch và scanf.
Kết hợp giữa lệnh lặp và scanf.
Lệnh printf.
Lệnh if và scanf.
Cho khai báo sau:
typedef struct Node{
int Data;
struct Node Left;
struct Node Right;
}DNode;
DNode *p;
Trong ngôn ngữ lập trình C, lệnh nào dùng để xin giải phóng bộ nhớ cho con trỏ p?
free(p);
p = NIL;
p = (DNode *) malloc (sizeof (DNode));
p = NULL;
Lựa chọn định nghĩa đúng nhất về danh sách.
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 xác định một mối liên hệ.
Cả 3 phương án đều đúng.
Một danh sách có chiều dài bằng 0 là một danh sách rỗng.
Số phần tử của danh sách gọi là chiều dài của danh sách đó.
Phát biểu nào sau đây phù hợp nhất với danh sách liên kết đơn?
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ớ.
Danh sách liên kết là cấu trúc tự định nghĩa.
Danh sách liên kết là cấu trúc dữ liệu dạng cây.
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
Cho khai báo:
typedef struct ds{
int Data[1000];
int Count;
}List;
Trong ngôn ngữ lập trình C, nguyên mẫu nào được khai báo đúng khi thêm phần tử x vào vị trí thứ k trong danh sách L?
int Insert_k(List *L, int x);
int Insert_k(List **L, int x);
int Insert_k(List L, int x);
int Insert_k(List &L, int x);
Cho khai báo:
typedef struct tagNode{
int Data;
struct tagNode next;
}OneNode;
typedef Node List;
List p, q;
Lệnh nào dưới đây thể hiện q là con trỏ kế tiếp của p?
p→next = q;
p = q;
q→next = p;
q = p;
Cho khai báo :
typedef struct Node{
int Data;
struct Node pNext;
}List;
List L, *p;
Khi thêm p vào đầu danh sách ta luôn có lệnh
p = NULL;
p = 0;
p = L;
p →pNext = L;
Cho một danh sách đặc lưu trữ các số nguyên, khi khai báo cấu trúc dữ liệu của danh sách này thì mỗi danh sách gồm những trường nào?
Mỗi danh sách gồm 2 trường: Một mảng chứa các số nguyên, một phần tử lưu số phần tử hiện tại của danh sách.
Một mảng chứa các số nguyên.
Không có trường nào.
Một số nguyên lưu trữ số phần tử hiện tại của danh sách.
Cho khai báo cấu trúc dữ liệu cho danh sách đặc như sau:
typedef struct list {
int a[100];
int Last;
} List;
List L;
Lệnh nào được dùng để vào dữ liệu cho phần tử i trong danh sách đặc L kiểu List?
gets(a[i]);
scanf("%d", &L.Last);
printf(“%d”, a[i];
scanf("%d", &L.a[i]);
Mỗi phần tử trong danh sách liên kết đơn gồm có mấy trường?
4
2
5
3
Tổ chức cấu trúc dữ liệu của danh sách kép như sau:
typedef struct Node{
int Data;
struct Node Left, Right;
}Dnode;
typedef struct List{
DNode Head, Tail;
}DList;
Dlist L; Dnode *p;
Với khai báo trên, lệnh nào dưới đây cho con trỏ p trỏ đến phần tử cuối cùng của danh sách?
L→Tail = p;
L.Tail = NULL;
p = L.Tail;
L.Head = NULL;
Cho khai báo và hàm KT_List như sau :
typedef struct {
int a[100];
int Last; } List;
int KT_List(List L){
return L.Last==0;
}
Tìm mô tả đúng nhất cho hàm KT_List
Hàm kiểm tra danh sách rỗng.
Hàm kiểm tra danh sách có đúng 1 phần tử.
Hàm kiểm tra danh sách có đúng 2 phần tử
Hàm kiểm tra danh sách đầy.
Điền phần còn thiếu vào chỗ chấm chấm trong phát biểu sau: “Ngăn xếp (stack) là một cấu trúc dữ liệu dùng để chứa các đối tượng làm việc theo cơ chế ………..”
ILOL
LIFO
IFLO
FIFO
Trong ngôn ngữ lập trình C, cho khai báo danh sách kép như sau:
typedef struct node{
int data;
struct node next, prev;
}DNode;
typedef struct list{
DNode Head, Tail; }DList;
Hàm Init(DList *L) là hàm khởi tạo danh sách rỗng, trong thân của hàm này sẽ chứa lệnh nào dưới đây?
L.Head = (*L).Tail = NULL;
L→Head = L→Tail = NULL;
L.Head =L.Tail = NULL;
(*L).Head = L.Tail = NULL;
Cho khai báo sau:
#define MaxLength 1000
typedef struct {
int a[MaxLength];
int Last;
} List;
Cho biết số phần tử tối đa của mảng a.
1
Last
1000
10
Cho khai báo danh sách đặc như sau:
typedef struct list {
int a[100];
int Last;
} List;
List L;
Với điều kiện nào của p thì xóa được phần tử ở vị trí thứ p ra khỏi danh sách đặc L.
0 < p ≤ Last
p > 0
p < 0
p> Last
Với khai báo sau, danh sách L có kiểu List có tối đa bao nhiêu phần tử?
typedef struct list {
int a[100];
int Last;
} List;
Không giới hạn phần tử.
10 phần tử.
100 phần tử
200 phần tử.
Cho khai báo cấu trúc dữ liệu cho danh sách đặc như sau:
typedef struct list {
int a[100];
int Last;
} List;
List L;
Khi xóa một phần tử ra khỏi L thì giá trị của biến Last thay đổi như thế nào?
Last = 0
Last++
Last = 1
Last--
hi thêm một phần tử có nội dung x vào tại vị trí p (0 < p < Last +2) của danh sách đặc L, Last là độ dài hiện tại của danh sách, giải thuật được thực hiện:
+ Dời các phần tử từ vị trí p đến cuối danh sách ra sau (bên phải) 1 vị trí.
+ Độ dài danh sách tăng 1.
+ Đưa phần tử mới vào vị trí p.
+ Đưa phần tử mới vào vị trí p.
+ Độ dài danh sách tăng 1.
+ Dời các phần tử từ vị trí p đến cuối danh sách ra sau 1 vị trí.
+ Độ dài danh sách tăng 1.
+ Dời các phần tử từ vị trí p đến cuối danh sách ra sau 1 vị trí.
+ Đưa phần tử mới vào vị trí p.
+ Độ dài danh sách tăng 1.
+ Đưa phần tử mới vào vị trí p.
+ Dời các phần tử từ vị trí p đến cuối danh sách ra sau 1 vị trí.
Tổ chức cấu trúc dữ liệu cho danh sách liên kết đơn:
typedef struct ds{
int Data;
struct ds next;
}Node;
Node p, *q;
Để nối nút kế sau p vào sau nút q, ta dùng lệnh nào?
q = p→ next;
q→next = p→next;
p→next = q;
p = q→next;
Cho khai báo
typedef struct ds{
int a[100];
int Last;
} List;
int p, q;
List L.
Với khai báo trên, nêu ý nghĩa của lệnh sau:
for(q=p;q<L.Last;q++)
L.a[q]=L.a[q+1];
Dịch chuyển các phần tử từ vị trí p+1 đến cuối danh sách sang trái một vị trí.
Dịch chuyển các phần tử từ đầu danh sách đến cuối danh sách sang trái một vị trí.
Dịch chuyển các phần tử từ vị trí 1 đến vị trí p sang phải một vị trí.
Gán giá trị tại vị trí p trong danh sách cho phần tử ở vị trí p+1.
Danh sách liên kết L có một phần tử, L là loại danh sách nào để phần liên kết của L trỏ tới chính L?
Danh sách liên kết kép.
Danh sách đặc.
Danh sách liên kết vòng.
Danh sách liên kết đơn.
Khai báo sau thường dùng cho khai báo danh sách loại nào?
typedef struct queue{
int Data[1000];
int rear, front;
}Queue;
Danh sách liên kết đơn.
Danh sách đặc kiểu hàng đợi.
Danh sách liên kết vòng.
Danh sách đặc kiểu ngăn xếp.
Trong danh sách liên kết đơn L, hàm khởi tạo danh sách L thuộc kiểu List sẽ được xây dựng như thế nào?
void Init(DList L){ (L).Head = NULL; (*L).Tail = NULL; }
void Init(Listlink L){ L= NULL; }
void Intit(List L){ (L).Count =0;}
void Init(Listlink L){ (L)= NULL; }
Cho biết mô tả của hàm dưới đây:
Hiển thị các số từ 1 đến 10 ra màn hình
Lấy các phần tử trong hàng đợi ra
Đưa các số từ 1 đến 10 vào hàng đợi
Không thực hiện gì
Cho khai báo danh sách đặc như sau:
typedef struct list {
int data[100];
int Last;
} List;
List L;
Với điều kiện nào của p thì không xóa được phần tử ở vị trí thứ p ra khỏi danh sách đặc L.
(p> L. Last)||(p<0)
p > 0
0 < p ≤ L.Last
p ≤ L.Last
Hãy cho biết khai báo trên dành cho danh sách nào?
Danh sách liên kết đặc
Danh sách đặc kép
Danh sách liên kết kép
Danh sách liên kết đơn
Tìm mô tả đúng nhất cho hàm search dưới đây, với khai báo:
typedef struct node{
int info;
struct node next;
}Node;
typedef Node Listlink;
Node search(Listlink L, int x){
Node p = L;
while(p!=NULL && p→info!=x)
p=p→next;
return p;
}
Hàm tìm kiếm số nguyên x trong danh sách liên kết vòng.
Hàm tìm kiếm số nguyên x trong danh sách đặc.
Hàm tìm kiếm số nguyên x trong danh sách liên kết kép.
Hàm tìm kiếm số nguyên x trong danh sách liên kết đơn.
Tìm mô tả đúng nhất cho hàm Len dưới đây, với khai báo:
typedef struct node{
int info;
struct node next;
}Node;
typedef Node Listlink;
int Len(Listlink L){
Node *p= L; int i = 0;
while(p!=NULL){
i++;
p=p→next;
}
return i;
}
Hàm đếm số phần tử trong danh sách liên kết đơn.
Hàm đếm số phần tử trong danh sách liên kết đặc.
Hàm đếm số phần tử trong danh sách liên kết vòng
Hàm đếm số phần tử trong danh sách liên kết kép.
Khai báo dưới đây là khai báo cấu trúc dữ liệu cho 1 phần tử của danh sách nào?
typedef struct node {
item data;
struct node prev, next;
}Node;
Danh sách liên kết kép
Danh sách liên kết đơn
Danh sách đặc
Danh sách liên kết vòng
Cho biết mô tả của hàm dưới đây:
Hiển thị các số từ 1 đến 10 ra màn hình
Đưa các số từ 1 đến 10 vào ngăn xếp
Lấy các phần tử trong ngăn xếp ra
Không thực hiện gì
Queue hoạt động theo cơ chế nào?
FIFO
FILO
LIFO
LILO
Cho biết mô tả của hàm dưới đây:
Hiển thị nội dung của con trỏ it
Thêm phần tử vào cuối danh sách
Nhập tất cả các số chẵn từ 2 đến 20 vào danh sách.
Thêm phần tử vào đầu danh sách
Tìm mô tả đúng nhất cho hàm kRemove dưới đây:
typedef struct node{
int info;
struct node next;
}Node;
typedef Node Listlink;
void kRemove(Listlink L, int k){
if(Empty(L)||k<1||k>Len(*L)) return;
if(k==1){
headRemove(L);
return;
}
else{
Node p = L; int dem =1;
while(p!=NULL && dem<k-1){
p=p→next; dem++;
}
Node *q = p→next;
p→next = q→next; free(q);
}
}
Hàm loại bỏ phần tử ở vị trí k trong danh sách liên kết kép.
Hàm loại bỏ phần tử ở vị trí k trong danh sách đặc.
Hàm loại bỏ phần tử ở vị trí k trong danh sách liên kết vòng.
Hàm loại bỏ phần tử ở vị trí k trong danh sách liên kết đơn.
Cho biết mô tả của hàm dưới đây:
Loại bỏ phần tử đầu tiên ra khỏi danh sách
Hiển thị nội dung của con trỏ it
Kiểm tra danh sách rỗng
Hiển thị các phần tử số nguyên trong danh sách ra màn hình.
Trong danh sách đặc L, hàm khởi tạo danh sách L thuộc kiểu List sẽ được xây dựng như thế nào?
void Init(Listlink L){ (L)= NULL; }
void Intit(List L){ (L).Count =0; //Count so phan tu hien tai cua danh sach}
void Init(DList L){ (L).Head = NULL; (*L).Tail = NULL; }
void Init(Listlink L){ L= NULL; }
Điền phần còn thiếu vào chỗ chấm chấm trong phát biểu sau: “Hàng đợi hoạt động theo cơ chế…., ngăn xếp hoạt động theo cơ chế…..”
FIFO, FIFO
FIFO, LIFO
LIFO, LIFO
LIFO, FIFO
Cho khai báo sau:
#define Max 200
typedef struct {
int data[Max];
int count;
} List;
Cho biết số phần tử tối đa của mảng data.
1
200
count
100
Cho khai báo sau:
Hãy cho biết khai báo trên dành cho danh sách nào?
Danh sách liên kết kép
Danh sách đặc
Danh sách đặc kép
Danh sách liên kết đơn
Cho khai báo sau:
Hãy ngay sau khi gọi hàm Init(&L) thì số phần tử của danh sách L là bao nhiêu?
0
1
3
2
Cho biết kết quả hiển thị của chương trình sau:
25 24
22 21
21 22 24 25
25 24 22 21
Với khai báo sau, danh sách L có kiểu List chứa nhiều nhất bao nhiêu phần tử?
typedef struct list {
int data[200];
int Count;
} List;
Không giới hạn phần tử.
10 phần tử.
200 phần tử
100 phần tử.
Stack được sử dụng trong:
Duyệt theo chiều rộng
Đệ quy
Không có phương án nào đúng
CPU phân phối tài nguyên
Cho biết mô tả của hàm dưới đây:
Lấy phần tử đầu tiên ở ngăn xếp ra
Kiểm tra ngăn xếp rỗng
Hiển thị các phần tử số nguyên trong ngăn xếp ra màn hình
Không thực hiện gì
Tìm mô tả đúng nhất cho hàm dưới đây:
Node Make_Node (item x) {
Node P = (Node *) malloc (sizeof(Node));
if(P!=NULL){
P→data = x; P→next = NULL; P→prev = NULL;
}
return P;
}
Hàm tạo một phần tử trong danh sách liên kết kép có nội dung x.
Hàm tạo một phần tử trong danh sách đặc có nội dung x.
Hàm tạo một phần tử trong danh sách liên kết vòng có nội dung x.
Hàm tạo một phần tử trong danh sách liên kết đơn có nội dung x.
Cho khai báo cấu trúc dữ liệu cho danh sách đặc như sau:
typedef struct list {
float a[100];
int Last;
} List;
List L;
Lệnh nào được dùng để nhập dữ liệu cho phần tử i trong danh sách đặc L kiểu List?
scanf("%d", &L.a[i]);
scanf("%d", &L.Last);
gets(a[i]);
scanf("%f", &L.a[i]);
Cho biết kết quả hiển thị của chương trình sau:
None
3 2 1
1
1 2 3
Trong danh sách liên kết kép L, hàm khởi tạo danh sách L thuộc kiểu List sẽ được xây dựng như thế nào?
void Init(List L){ (L).Head = NULL; (*L).Tail = NULL; }
void Init(Listlink L){ (L)= NULL; }
void Intit(List L){ (L).Count =0;}
void Init(Listlink L){ L= NULL; }
Cho danh sách đặc L có kiểu dữ liệu là cấu trúc List, Count là biến nguyên lưu trữ số phần tử hiện tại của L, lệnh nào sau đây được sử dụng để kiểm tra danh sách khác rỗng?
return (L.Count !=0);
return (L.Count <>0);
return (L.Count ><0);
return (L.Count ==0);
Khi khai báo cấu trúc dữ liệu của danh sách đặc lưu trữ các số thực thì danh sách gồm những trường nào?
Danh sách gồm 2 trường: Một mảng chứa các số thực, một phần tử lưu số phần tử hiện tại của danh sách.
Không có trường nào.
Một mảng chứa các số thực.
Một số thực lưu trữ số phần tử hiện tại của danh sách.
Cho khai báo cấu trúc dữ liệu cho danh sách đặc như sau:
typedef struct list {
int a[100];
int Last;
} List;
List L;
Khi xóa một phần tử ra khỏi L thì được danh sách rỗng. Ban đầu danh sách L có bao nhiêu phần tử?
L.Last = 0
L.Last= 1
L.Last= 2
L.Last = 3
Điền vào chỗ chấm cho phát biểu sau:
“…………..là một mảng động tương tự như vector nhưng lại có khả năng thêm xóa phần tử ở cả đầu lẫn cuối mảng đó với tốc độ cao”
stack
queue
deque
list
Tìm mô tả đúng nhất cho hàm Del_k dưới đây:
#define N 100
typedef int DataT;
typedef struct ds{
DataT Data[N];
int Count;
}List;
int Del_k(List L, int k){
int i;
if (Empty(L)){
printf("\nds rong");
return 0;
}
if ((k<1)|| (k>(*L).Count)){
printf("\nphan tu thu %d khong co trong ds",k);
return 0;
}
for(i=k-1; i<(*L).Count-1;i++)
(*L).Data[i]=(*L).Data[i+1];
(*L).Count --;
return 1;
}
Hàm loại bỏ phần tử ở vị trí k trong danh sách liên kết kép.
Hàm loại bỏ phần tử ở vị trí k trong danh sách liên kết vòng.
Hàm loại bỏ phần tử ở vị trí k trong danh sách liên kết đơn.
Hàm loại bỏ phần tử ở vị trí k trong danh sách đặc.
Khi khai báo cấu trúc dữ liệu cho 1 phần tử của danh sách liên kết kép có mấy con trỏ?
2 con trỏ
3 con trỏ
5 con trỏ
4 con trỏ
Cấu trúc dữ liệu nào được yêu cầu để thực hiện đệ quy?
LinkedList
Graph
Stack
Queue
Cho biết mô tả chính xác nhất của hàm Len(List L) với khai báo dưới đây:
Hàm Len(List L) là hàm kiểm tra danh sách đầy.
Hàm Len(List L) là hàm nhảy đến phần tử cuối cùng của danh sách L.
Hàm Len(List L) là hàm đếm số phần tử trong danh sách L.
Hàm Len(List L) là hàm khởi tạo danh sách L.
Cho biết hàm sau thực hiện chức năng gì?
Không thực hiện gì
Kiểm tra hàng đợi rỗng
Lấy phần tử đầu tiên ở hàng đợi ra
Hiển thị các phần tử số nguyên trong hàng đợi ra màn hình
Cho biết mô tả chính xác nhất của hàm isEmpty(List L) với khai báo dưới đây:
Hàm isEmpty(List L) là hàm kiểm tra danh sách đầy.
Hàm isEmpty(List L) là hàm khởi tạo danh sách L.
Hàm isEmpty(List L) là hàm kiểm tra danh sách L rỗng, nếu đúng trả về 1, sai trả về 0.
Hàm isEmpty(List L) là hàm đếm số phần tử trong danh sách L.
Cho khai báo sau:
typedef struct ds{
int Data[1000];
int Count;
}List;
Trong ngôn ngữ lập trình C, nguyên mẫu nào được khai báo đúng khi kiểm tra danh sách rỗng?
int Empty(List &L);
int Empty(List L);
int Empty(List *L);
int Empty(L);
Để sử dụng cấu trúc dữ liệu deque trong C++ ta phải khai báo thư viện nào dưới đây?
#include<stack>
#include <queue>
#include <list>
#include <deque>
Stack hoạt động theo cơ chế nào?
LILO
FIFO
LIFO
FILO
Cấu trúc dữ liệu nào sau đây có thể được sử dụng để triển khai hàng đợi?
Stack
Mảng
Danh sách liên kết
Ngăn xếp, danh sách liên kết, mảng
Mỗi phần tử trong danh sách liên kết kép gồm có mấy trường?
3
6
5
4
