1. Trang chủ
  2. » Công Nghệ Thông Tin

Cấu trúc dữ liệu và giải thuật_Mở Hà Nội Phan3

39 234 4
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 39
Dung lượng 301,04 KB
File đính kèm CauTrucDLGTphan3.rar (276 KB)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài tập trắc nghiệm cấu trúc dữ liệu và giải thuật Đai học Mở Hà Nội , tổng hợp tất cả câu hỏi đúng giúp bạn làm bài đạt kết quả, ôn tập cho kỳ thi cuối kỳ. Liên kết đơnliên kết đôiliên kết vòngtrăc nghiệm cấu trúc dữ liệu và giải thuật

Trang 1

Bài luyện tập trắc nghiệm 03 - LTTN03

1.Cho đoạn chương trình như sau:

void RemoveHead( DLIST &DQ )

a DQ.Head -> pre = NULL;

DQ.Head -> next= NULL;

Câu trả lời không đúng

b DQ.Head -> next = NULL;

c DQ.Head -> pre = NULL;

Trang 3

c In đầy đủ thông tin tất cả các cán bộ đang chứa trong danh sách Q

d In danh sách tên các cán bộ đang có trong danh sách Q lần lượt từ cuối danh sách về đầudanh sách

4.Cho khai báo CTDL như sau:

struct CB{ int mcb; char hoten[20]; char ns[12]; float hsl,pc;};struct Node{ CB info; struct Node *next, *pre;};

struct List{ Node *head, *tail;};

Đâu là đoạn mã để in ra màn hình thông tin đầy đủ của các Cán Bộ có trong danh sách liên kết lần lượt từ cuối trở về đầu

Trang 4

6.Cho đoạn mã sau, cho biết kết quả của x?

Queue Q; Hàng đợi, ptu vô trước thì ra trước

InitQueue(Q); khởi tạo hàng rỗng

Put(Q, “Green”); thêm ptu vào hàng đợi

c Cả hai đáp án đều đúng Câu trả lời đúng

d Cả hai đáp án đều sai

8.Cho khai báo cấu trúc:

Trang 5

struct NodeQueue *pre;

a Khởi tạo hàng đợi rỗng Câu trả lời đúng

b Khởi tạo danh sách rỗng

c Khởi tạo mảng rỗng

d Khởi tạo Stack rỗng

9.Cho đoạn mã sau

stack <int> s; for (int i = 1; i <= 4; i++)

10.Cho đoạn mã sau

stack <int> s; for (int i = 1; i <= 5; i++)

s.push(i);

s.pop();

Trang 6

Kết quả các phần tử của Stack sau khi thực hiện các đoạn mã trên là gì?

Lần lượt bổ sung các phần tử 1, 2, 3, 4, 5 vào stack

Sau đó lấy phần tử đầu tiên và hủy khỏi stack

Câu trả lời đúng là:

11.Cho đoạn chương trình như sau:

void AddAfter(DLIST &DQ, DNode *q, DNode *new_element)

Trang 7

c p -> pre = NULL; Câu trả lời không đúng

d p -> next = new_element;

12.Cho khai báo cấu trúc dữ liệu như sau:

struct CB{ int mcb; char hoten[20]; char ns[12]; float hsl,pc,tt;};struct Node{ CB info; struct Node *next, *pre;};

struct List{ Node *head, *tail;};

Đoạn mã sau đây thực hiện yêu cầu gì?

Node *TimCBMa(List Q,char k[]){ Node *p; for(p=Q.Head; p!=NULL; p=p->next)

if(strcmp(p->info.hoten,k)==0) break; return p;}

Chọn một câu trả lời:

a Thực hiện tìm kiếm Cán bộ theo tên cán bộ

b Thực hiện tìm kiếm trong DSLK đơn chứa các CanBo xem có CanBo nào có mã là k hay không? Trả lại thông tin nút chứa cán bộ nếu tìm thấy ngược lại trả lại giá trị NULL Câu trả lời không đúng

c Thực hiện tìm kiếm trong DSLK đôi có chứa Cán bộ với tên là k nào đó hay không?

d Thực hiện tìm kiếm trong DSLK kép chứa các CanBo xem có CanBo nào có tên là k hay không? Trả lại thông tin nút chứa cán bộ nếu tìm thấy ngược lại trả lại giá trị NULL

13.Cho đoạn mã sau:

struct CB{ int mcb; char hoten[20]; char ns[12]; float hsl,pc,tt;};struct Node{ CB info; struct Node *next, *pre;};

struct List{ Node *head, *tail;};

Khai báo CTDL trên là khai báo CTDL dạng gì?

Chọn một câu trả lời:

a Danh sách liên kết vòng đôi

b Danh sách liên kết đôi Câu trả lời đúng

c Danh sách liên kết đơn

d Danh sách liên kết vòng

14.Cho đoạn chương trình sau:

void RemoveTail ( DLIST &DQ )

Trang 8

if ( DQ.Head == NULL) DQ.Tail = NULL;

else DQ.Head ->pre = NULL;

}

}

Chọn một câu trả lời:

a DQ.Tail = DQ.Tail -> pre;

DQ.Tail -> next = NULL;

b DQ.Tail = DQ.Tail -> next;

DQ.Tail -> next = NULL;

Câu trả lời không đúng

c DQ.Tail -> next = NULL;

d DQ.Head = DQ.Tail -> pre;

DQ.Tail -> next = NULL;

15.Lựa chọn câu đúng nhất về danh sách liên kết đôi

new_element -> next = DQ.Head;

DQ.Head -> pre = new_element;

Trang 9

c Chèn vào cuối danh sách

d Chèn vào đầu danh sách Câu trả lời đúng

17Để sắp xếp các phần tử của danh sách liên kết có mấy phương án sử dụng:Chọn một câu trả lời:

Đoạn mã thực hiện thao tác gì?

void Push( Stack &s, int x)

Trang 10

a Chèn thêm phần tử mới vào đỉnh của Stack Câu trả lời đúng

b Thự chiện xoá phần tử đang có ở đỉnh của Stack

c Thực hiện in lần lượt các phần tử đang có trong Stack

d Trả lại giá trị phần tử đỉnh của Stack

19.Cho khai báo Stack như sau:

a Cả hai đáp án đều sai

b một kiểu danh sách trong đó được trang bị hai phép toán bổ sung một phần tử vào cuối danh sách và loại bỏ một phần tử ở đầu danh sách Câu trả lời đúng

c dạng danh sách đặc biệt trong đó các phép toán thêm vào một phần tử mới hoặc loại bỏ một phần tử trong danh sách chỉ được phép thực hiện ở một đầu của danh sách

Trang 11

24.Cho đoạn mã sau

stack <int> s; for (int i = 1; i <= 5; i++)

s.push(i);

Trang 12

25.Cho đoạn mã sau

stack <int> s; for (int i = 1; i <= 5; i++)

a Dữ liệu (infor) và liên kết với nút trước (previous)

b Dữ liệu (infor), liên kết với nút trước (previous) và liên kết với nút sau (next) Câu trả lời đúng

c Liên kết với nút trước (previous) và liên kết với nút sau (next)

d Dữ liệu (infor) và liên kết với nút sau (next)

27.Đoạn mã để tạo ra nút mới có thành phần là x trong danh sách liên kết đôi với mỗi nút gồm các thành phần (infor, next, pre) sau:

Node* get_node( Data x ){

Trang 14

a Tất cả các phương án đều đúng Câu trả lời không đúng

b Đảo ngược xâu ký dự

c Tất cả các phương án đều sai ssss

d Chuyển đổi cơ số

30.Kết quả của đoạn mã sau là gì?

struct Node *next;

struct Node *pre;

Trang 15

b 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 Con trỏ trở tới phần dữ liệu

d Vùng liên kết quản lý địa chỉ phần tử kế tiếp Câu trả lời đúng

32.Để sắp xếp các phần tử của danh sách liên kết đôi sử dụng phương án nào?

Chọn một câu trả lời:

a Cả hai phương án trên đều đúng Câu trả lời không đúng

b Hoán vị nội dung của phần tử

c Thay đổi mối liên kết của phần tử

d Cả hai phương án trên đều sai

33.Các hàm để cấp phát bộ nhớ là?

Chọn một câu trả lời:

a malloc(), calloc(), new()

b malloc(), calloc(), new(), free() Câu trả lời không đúng

c malloc(), delete(), new(), free()

d calloc(), new(), free()

34.Cho khai báo Stack như sau:

Đoạn mã thực hiện thao tác gì?

int Top(Stack &s)

Trang 16

return tg;

}

Chọn một câu trả lời:

a Trả lại giá trị của phần tử đỉnh hiện tại của Stack

b Thực hiện tính tổng các phần tử đang có trong Staclk

c Duyệt qua lần lượt từng phần tử trong Stack và in thông tin lần lượt ở đỉnh ra Câu trả lời không đúng

d Bổ sung thêm phần tử mới vào đỉnh của Stack

35.Các thao tác được định nghĩa cho hàng đợi một cách tổng quát

Chọn một câu trả lời:

a Get

b Put

c Cả hai đáp án đều đúng Câu trả lời đúng

d Cả hai đáp án đều sai

36.Cho s là Stack chứa các giá trị nguyên, Kết quả của đoạn mã sau là gì?

Trang 17

Đoạn mã thực hiện thao tác gì?

void Push( Stack &s, int x)

a Thự chiện xoá phần tử đang có ở đỉnh của Stack

b Chèn thêm phần tử mới vào đỉnh của Stack Câu trả lời đúng

c Thực hiện in lần lượt các phần tử đang có trong Stack

d Trả lại giá trị phần tử đỉnh của Stack

Trang 18

38.Cho đoạn mã sau

stack <int> s; for (int i = 1; i <= 5; i++)

40.Cho đoạn chương trình như sau:

void AddAfter(DLIST &DQ, DNode *q, DNode *new_element)

Trang 19

a malloc(), delete(), free().

b malloc(), delete(), new(), free()

c calloc(), delete(), new(), free()

d delete(),free() Câu trả lời đúng

44.Đoạn mã khởi tạo danh sách rỗng sau:

void init( DList &Q ){

Trang 20

45.Đoạn mã để tạo ra nút mới có thành phần là x trong danh sách liên kết đôi với mỗi nút gồm các thành phần (infor, next, pre) sau:

Node* get_node( Data x ){

a Đảo ngược xâu ký tự

b Chuyển đổi cơ số

c Tính giá trị biểu thức

d Tất cả các phương án đều đúng Câu trả lời đúng

47.Cho đoạn mã sau, cho biết kết quả của x?

Stack S;

InitStack(S);

Push(S, “Green”);

Push(S, “Red”);

Trang 21

d Green Câu trả lời không đúng

Đoạn code thực hiện:

Khởi tạo stack

Đẩy chữ Green vào stack

Đẩy chữ Red vào Stack

Đẩy chữ Yello vào stack

Lấy phần tử đầu tiên và hủy khỏi Stack

Lấy tiếp phần tử đầu stack và hủy đi

48.Cho các phần tử 5, 10, 3, 42 lần lượt được bổ sung vào ngăn xếp (Stack) Phần tử nào được lấy ra cuối cùng

Trang 22

Green Câu trả lời đúng

50.Hàng đợi còn được gọi là danh sách

Chọn một câu trả lời:

a Cả hai đáp án đều đúng

b LIFO

c FIFO Câu trả lời đúng

d Cả hai đáp án đều sai

51.Để sử dụng hàm cấp phát bộ nhớ malloc(), calloc(), new() Ta phải sử dụng thư viện nào?

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à đặt kế cận với nhau trong vùng nhớ Câu trả lời không đúng

d Danh sách liên kết là tập hợp các phần tử mà giữa chúng có sự kết nối với nhau dựa vào liên kết của chúng

Bài 7: Cây - TREE

1.Cho các phần tử sau: 31, 19, 36, 20, 41, 17, 33, 32 Tạo cây NPTK từ các phần tử trên Hãy cho biết sau khi xóa phần tử 33 trên cây sau đó áp dụng phương pháp duyệt RLN thì kết quả thu được thứ tự các phần tử là như thế nào

Chọn một câu trả lời:

a 41, 32, 36, 20, 17, 19, 31

b 31, 19, 36, 20, 41, 17, 32

c 41, 36, 32, 31, 20, 19, 17

d 31, 36, 41, 32, 19, 20, 17 Câu trả lời không đúng

2.Lựa chọn phương án trả lời đúng nhất cho biết hình ảnh sau là gì?

Trang 23

Chọn một câu trả lời:

a Cây nhị phân tìm kiếm

b Cây 2-3-4

c Cây tổng quát

d Cây nhị phân Câu trả lời không đúng

3.Cho cây NPTK, Cho biết kết quả duyệt cây theo thứ tự LNR là:

Chọn một câu trả lời:

a 30, 11, 6, 8, 16, 14, 36, 31, 33, 46

b 6, 8, 11, 14, 16, 30, 31, 33, 36, 46

c 46, 36, 33, 31, 30, 16, 14, 11, 8, 6

d 8, 6, 14, 16, 11, 33, 31, 46, 36, 30 Câu trả lời không đúng

4.Cho dãy số sau: 30, 18, 35, 17, 40, 16, 32, 31, 43, 19 Cho biết kết quả khi duyệt cây đượctạo lần lượt từ các phần tử trên bằng phương pháp duyệt NLR (Node Left Right):

Trang 24

typedef Node *Tree;

và CTC insertNode(Tree &T, item x) để chèn thêm phần tử mới vào cây nhị phân tìm kiếm, nếu chèn thành công trả lại giá trị 0 nếu không chèn thành công trả lại giá trị -1

Đoạn mã nào sau đây để cho phép nhập liên tiếp các số nguyên đến khi bằng 0 thì dừng và tạo cây nhị phân tìm kiếm từ các số nguyên đã nhập đó

Chọn một câu trả lời:

a void LNR(Tree T){ if(T!=NULL) { LNR(T->Left); printf("%7d",T->key); LNR(T->Right); }}

b Node* searchKey(Tree T, int x) { if (T!=NULL) { if (T->key == x)

{ Node *P = T; return P;} if (T->key > x)

return searchKey(T->Left, x); if (T->key < x)

return searchKey(T->Right, x); } return NULL;}

c int insertNode(Tree &T, int x){ if (T != NULL) { if (T->key == x) return -1; if (T->key > x)return insertNode(T->Left, x); else if (T->key < x)

return insertNode(T->Right, x); } T = (Node *) malloc(sizeof(Node)); if (T == NULL) return 0; T->key = x; T->Left = T->Right = NULL; return 1;}

d void CreateTree(Tree &T)

Trang 26

a Là bậc lớn nhất của các nút trong cây

b Là bậc nhỏ nhất của các nút trong cây

c Cả hai phát biểu đều SAI

d Cả hai phát biểu đều đúng Câu trả lời không đúng

11.Cho các phần tử sau: 31, 19, 36, 20, 41, 17, 33, 32 Tạo cây NPTK từ các phần tử trên Hãy cho biết sau khi xóa phần tử 33 trên cây sau đó áp dụng phương pháp duyệt LNR thì kết quả thu được thứ tự các phần tử là như thế nào?

15.Cho biết kết quả khi CTC CreateTree_mang(T) được gọi trong chương trình chính

int insertNode(Tree &T, int x){ if (T != NULL) { if (T->key == x) return -1; if (T->key > x) return insertNode(T->Left, x); else if (T->key < x) return insertNode(T->Right, x); } T = (Node *) malloc(sizeof(Node)); if (T == NULL) return 0; T->key = x; T->Left = T->Right = NULL; return 1;}

void DuyetCay(Tree T){ if(T!=NULL) { LNR(T->Left); printf("%7d",T->key); LNR(T->Right); }}

Trang 27

void CreateTree_mang(Tree &T){ int x; int n=7; int a[] = { 8, 6, 10, 4, 9, 7, 11}; for(int

i=0;i<n;i++) { int check = insertNode(T, a[i]); if (check == -1) printf("\n Node da ton tai!"); else

if (check == 0) printf("\n Khong du bo nho"); }

printf("\n Duyet cay:"); DuyetCay(T);

d Duyet cay : 8 6 10 4 9 7 11 Câu trả lời không đúng

16.Các trường hợp có thể xảy ra khi xóa một phần tử khỏi cây NPTK gồm:

Chọn một câu trả lời:

a Nút xóa là nút lá và nút xóa có một nhánh con

b Nút xóa là nút lá và nút xóa có hai nhánh con Câu trả lời không đúng

c Nút xóa là nút lá, nút xóa có một nhánh con và nút xóa có hai nhánh con

d Nút xóa có một nhánh con và nút xóa có hai nhánh con

17.Cho biết kết quả khi duyệt cây sau bằng phương pháp duyệt LRN (Left-Right-Node)?

18.Cho đoạn mã cài đặt phương pháp duyệt NLR:

void NLR( Tree Root )

Trang 28

a Là số nhánh con của nút đó Câu trả lời đúng

b Là số nhánh con nhỏ nhất của nút con của nút đó

c Là số nhánh con phải của nút đó

d Là số nhánh con trái của nút đó

20.Phương pháp duyệt NLR là phương pháp duyệt gì?

Chọn một câu trả lời:

a Node - Left - Right Câu trả lời đúng

b Cả 3 lựa chọn đều đúng

c Left - Node - Righ

d Left - Right - Node

21.Cho biết kết quả khi duyệt cây sau bằng phương pháp duyệt NLR (Node-Left-Right)?

Trang 29

c (3+4)*(8-(2*6)) Câu trả lời không đúng

24.Cho cây NPTK, Cho biết kết quả duyệt cây theo thứ tự LRN là:

Trang 30

Chọn một câu trả lời:

a 46, 36, 33, 31, 30, 16, 14, 11, 8, 6

b 8, 6, 14, 16, 11, 33, 31, 46, 36, 30

c 6, 8, 11, 14, 16, 30, 31, 33, 36, 46

d 30, 11, 6, 8, 16, 14, 36, 31, 33, 46 Câu trả lời không đúng

26.Thao tác thêm một phần tử vào cây khi so sánh giá trị của phần tử cần thêm vào so với nút đang xét nếu phần tử cần thêm vào lớn hơn thì được thêm vào vị trí nào?

Chọn một câu trả lời:

a Phần tử mới được bổ sung vào nhánh phải của nút đang xét Câu trả lời không đúng

b Cả hai phát biểu trên đều sai

c Cả hai phát biểu trên đều đúng

d Phần tử mới được bổ sung vào nhánh trái của nút đang xét

27.Cho các phần tử sau: 31, 19, 36, 20, 41, 17, 33, 32 Tạo cây NPTK từ các phần tử trên Hãy cho biết sau khi xóa phần tử 33 trên cây sau đó áp dụng phương pháp duyệt NLR thì kết quả thu được thứ tự các phần tử là như thế nào?

a là phần tử nhỏ nhất trong số các phần tử bên nhánh phải

b Cả hai phát biểu đều đúng Câu trả lời đúng

c là phần tử lớn nhất trong số các phần tử bên nhánh trái

d Cả hai phát biểu đều sai

Trang 31

30Cho các phần tử sau: 31, 19, 36, 20, 41, 17, 33, 32 Tạo cây NPTK từ các phần tử trên Hãy cho biết sau khi xóa phần tử 33 trên cây sau đó áp dụng phương pháp duyệt NRL thì kết quả thu được thứ tự các phần tử là như thế nào?

thị -1Ma trận kề nào dưới đây biểu diễn đúng của đồ thị trong số đã cho trong hình vẽ

2 Đồ thị vô hướng G = <V,E> gồm n đỉnh và mỗi đỉnh có số bậc là 6 thì có bao nhiêu cạnhChọn một câu trả lời:

a N cạnh

Trang 32

b 6n cạnh Câu trả lời không đúng

Trang 33

6Cho hàm tìm kiếm tuyến tính trong mảng 1 chiều có n phần tửint Search( int a[], int n, int x)

{

int i;

for(i=0; i<n; i++)

Trang 34

a Hàm trả về vị trí phần tử cuối cùng có giá trị bằng x, ngược lại trả về n

b Hàm trả về vị trí phần tử cuối cùng có giá trị bằng x, ngược lại trả về -1

c Hàm luôn luôn trả về vị trí phần tử cuối cùng có giá trị bằng x

d Hàm trả về vị trí phần tử đầu tiên có giá trị bằng x, ngược lại trả về -1

Câu trả lời đúng

7Danh sách liên kết là gì?

Chọn một câu trả lời:

a Cả hai phát biểu đều đúng Câu trả lời không đúng

b là tập hợp các phần tử liên kết móc nối liên tiếp với nhau, có kiểu truy cập ngẫu nhiên Mỗi phần tử là một nút

c là tập hợp các phần tử liên kết móc nối liên tiếp với nhau, có kiểu truy cập tuần tự Mỗi phần tử là một nút

d Cả hai phát biểu đều sai

8Đoạn mã cài đặt chèn thêm một phần tử mới vào đầu của danh sách liên kết đơn:void insertFirst ( LIST &Q, Node *new_element ){

if ( Q.Head == NULL ) //nếu danh sách rỗng

Trang 35

a Chèn thêm vào cuối danh sách và vào sau một phần tử q đã biết Câu trả lời không đúng

b Chèn thêm vào đầu danh sách và vào sau một phần tử q đã biết

c Chèn thêm vào đầu danh sách, vào cuối danh sách và vào sau một phần tử q đã biết

d Chèn thêm vào đầu danh sách và vào cuối danh sách

10Để tiến hành tìm kiếm một phần tử trong danh sách liên kết đơn sử dụng phương pháp tìm kiếm gì?

Chọn một câu trả lời:

a Tìm kiếm tuyến tính

b Tìm kiếm tuyến tính và tìm kiếm nhị phân

Câu trả lời không đúng

d Một kiểu danh sách trong đó được trang bị hai phép toán bổ sung một phần tử vào cuối danh sách và loại bỏ một phần tử ở đầu danh sách

12Cho biết các nút có bậc bằng 0 trong hình ảnh sau:

Chọn một câu trả lời:

a 45, 47, 50, 55

b 28, 30, 32, 35, 38

Ngày đăng: 18/09/2021, 22:48

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w