thumbnail

Tổng Hợp Câu Hỏi Ôn Tập Môn Cấu Trúc Dữ Liệu HUBT - Miễn Phí, Có Đáp Án

<p>Bộ tài liệu tổng hợp câu hỏi ôn tập môn Cấu trúc dữ liệu dành cho sinh viên Đại học Kinh doanh và Công nghệ Hà Nội (HUBT). Tài liệu bao gồm các câu hỏi trắc nghiệm và bài tập thực hành kèm đáp án chi tiết, giúp sinh viên nắm vững các khái niệm cơ bản, thuật toán tối ưu và cách sử dụng các cấu trúc dữ liệu trong lập trình. Đây là nguồn tài liệu miễn phí, lý tưởng để ôn tập và chuẩn bị cho các kỳ thi môn Cấu trúc dữ liệu tại HUBT.</p>

Từ khoá: câu hỏi ôn tập Cấu trúc dữ liệu HUBTtrắc nghiệm Cấu trúc dữ liệu miễn phítài liệu Cấu trúc dữ liệu có đáp ánôn tập Cấu trúc dữ liệu HUBTbài tập Cấu trúc dữ liệu HUBTthuật toán và Cấu trúc dữ liệu HUBTtài liệu lập trình Cấu trúc dữ liệuôn thi Cấu trúc dữ liệu miễn phícâu hỏi lập trình Cấu trúc dữ liệu có đáp ántài liệu Cấu trúc dữ liệu miễn phí HUBT

Đề thi nằm trong bộ sưu tập: Tuyển Tập Đề Thi Môn Cấu Trúc Dữ Liệu Và Giải Thuật - Miễn Phí, Có Đáp Án - Đại Học Kinh Doanh và Công Nghệ Hà Nội (HUBT)

Số câu hỏi: 121 câuSố mã đề: 5 đềThời gian: 1 giờ

16,465 lượt xem 1,267 lượt làm bài


Chọn mã đề:


Bạn chưa làm Mã đề 1!!!

 

Xem trước nội dung:

Câu 1: 0.4 điểm

Cho dãy số {4 7 0 9 2 5 3 1 8 6}. áp dụng phương pháp sắp xếp nổi bọt (Bubble sort) sau lần lặp đầu tiên của giải thuật ta có kết quả:{0 4 7 1 9 2 5 3 6 8}. Dãy số thu được sau lần lặp thứ ba là:

A.  

{0 1 2 4 7 3 9 5 6 8}

B.  

{0 4 7 1 9 2 5 3 6 8}

C.  

{0 1 4 7 2 9 3 5 6 8}

D.  

{0 1 2 3 4 7 5 9 6 8}

Câu 2: 0.4 điểm

Câu 10.

Cho kết quả của phép phép duyệt trước, duyệt giữa như sau:

     Duyệt trước: A, B, K, E, C

     Duyệt giữa: K, B, E, A, C

Khi đó kết quả phép duyệt sau sẽ là:


A.  

a. Không thể xác định được

B.  

b. K, B, E, C, A

C.  

c. A, B, C, K, E

D.  

d. K, E, B, C, A.

Câu 3: 0.4 điểm

Thủ tục sau áp dụng giải thuật sắp xếp nào?

Procedure F(a, t, s);

Begin

   B:= true;

   if t<s then begin i:=t; j:=s+1; key:=a[t];

                       while b do begin

                            i:=i+1; while a[i]<=key do i:=i+1; 

                                j:=j -1; while a[j]>=key do j:=j-1;

                            if i<j then 

                                 begin   tg:=a[i]; a[i]:=a[j];  a[j]:=tg; end

                            else b:=false;

                            end;

                         tg:=a[t]; a[t]:=a[j]; a[j]:=tg;

                         call F(a, t,j-1);

                         cal F(a, j+1,s);

               end;

   End;

 

A.  

Quick sort

B.  

Merge sort

C.  

Bubble sort

D.  

Insert sort

Câu 4: 0.4 điểm

Nếu lưu trữ móc nối thì mỗi nút của cây nhị phân cần 2 khoảng để ghi địa chỉ 2 con. Cây có 72 nút. Vậy lãng phí bao nhiêu khoảng địa chỉ:

A.  

72

B.  

70

C.  

73

D.  

75

Câu 5: 0.4 điểm

Giả sử pHead và pTail là hai con trỏ để trỏ đến phần tử đầu và cuối trong danh sách móc nối đơn. Ban đầu danh sách rỗng. Để tạo danh sách móc nối đơn ta có thể sử dụng cách nào trong các cách sau:

A.  

Chèn liên tiếp phần từ mới vào sau phần tử đang trỏ bởi pTail (chèn liên tiếp vào cuối danh sách)

B.  

Chèn liên tiếp phần tử mới vào đầu danh sách sau nút đang trỏ bởi pHead

C.  

Chèn liên tiếp phần tử mới vào giữa danh sách

D.  

Chèn liên tiếp phần tử mới vào trước nút trỏ bởi bởi pTail

Câu 6: 0.4 điểm

Cho 1 dãy gồm các phần tử như sau:

Hình ảnh

Sử dụng giải thuật Quick sort để sắp xếp dãy số trên. Giả sử chọn phần tử ở giữa làm khoá (phần tử chốt) a[5] thì ở lần đổi chỗ đầu tiên ta phải đổi chỗ như thế nào?

 

A.  

Đổi chỗ A[1] cho A[8]

B.  

Đổi chỗ A[1] cho A[10]

C.  

Đổi chỗ A[4] và A[6]

D.  

Đổi chỗ A[2] cho A[7]

Câu 7: 0.4 điểm

Giải thuật Chèn phần tử có trường thông tin là X vào Cuối danh sách thì thứ tự các thao tác sẽ là:

Hình ảnh

 

Ở đây: Thủ tục cấp phát một biến động và cho con trỏ p trỏ tới: Getnode(x)

            pnext: Thành phần con trỏ dùng để móc nối đến biến động đứng sau trong danh sách

            l: danh sách

A.  

p=Getnode(X); l.PTail->pnext = new_ele; l.Tail = new_ele ;

B.  

l.PTail->pnext = new_ele; l.Tail = new_ele ; p=Getnode(X);

C.  

l.Tail = new_ele; l.PTail->pnext = new_ele ; p=Getnode(X);

D.  

l.PTail->pnext = new_ele ; p=Getnode(X); l.Tail = new_ele;

Câu 8: 0.4 điểm

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 9: 0.4 điểm

Cho cây nhị phân T. Phép duyệt cây theo thứ tự trước cho kết quả ABDEHCFIGJ. Nếu duyệt theo thứ tự giữa ta có kết quả: DBHEAFICGJ. Hãy cho biết các nút của cây con trái:

A.  

BDHE

B.  

FIHE

C.  

DHEG

D.  

DEH

Câu 10: 0.4 điểm

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

}


A.  

1

B.  

2

C.  

3

D.  

4

Câu 11: 0.4 điểm

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 12: 0.4 điểm

Tư tưởng của 1 giải thuật sắp xếp như sau:

 

Giả sử có dãy A[1], A[2],…, A[n], trong đó i phần tử đầu A[1], …, A[i-1] đã được sắp xếp. Tìm vị trí để đưa phần tử A[i] vào vị trí thích hợp của đoạn đã được sắp xếp để được dãy A[1], A[2],…, A[i] có thứ tự.

Hỏi giải thuật trên có tên gọi là gì:

 

A.  

a. Chèn trực tiếp (Insertion Sort)

B.  

b. Chọn trực tiếp (Selection Sort)

C.  

c. Nổi bọt (Bubble Sort)

D.  

d. Sắp xếp nhanh (Quick Sort)

Câu 13: 0.4 điểm

Câu nào đúng nhất trong các câu sau:

A.  

Thuật toán tìm kiếm tuyến tính là thuật toán tiến hành so sánh phần tử cần tìm(x) lần lượt với phần tử thứ nhất, thứ hai…..đến phần tử cuối cùng của mảng cho đến khi gặp được phần tử có khoá cần tìm hoặc đến hết mảng mà không thấy x.

B.  

Thuật toán tìm kiếm tuyến tính là thuật toán rất đơn giản và cổ điển.

C.  

Thuật toán tìm kiếm tuyến tính là thuật toán tiến hành so sánh phần tử cần tìm(x) với các phần tử của mảng cho đến khi gặp phần tử có khoá cần tìm hoặc đến hết mảng mà không thấy x.

Câu 14: 0.4 điểm

Để truy nhập vào từng phần tử trong danh sách móc nối đơn ta phải bắt đầu từ:

A.  

Phần tử đầu tiên của danh sách

B.  

Truy nhập trực tiếp vào phần tử đó giống mảng 1 chiều

C.  

Thực hiện tìm kiếm nhị phân trên danh sách móc nối đơn

D.  

Thực hiện tìm kiếm tuần tự từ phần tử cuối dãy

Câu 15: 0.4 điểm

Kích thước lưu trữ kiểu số nguyên là

A.  

2 byte

B.  

4 byte

C.  

1 byte

D.  

6 byte

Câu 16: 0.4 điểm

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 17: 0.4 điểm

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

Int timkiemtuantu(int a[], int N, int x)

{

Int i=0;

a[N]=x;

while (a[i]!=x) i++;

if (i= = N )

     return -1;

else

     return i ;

}

Với tham số thực như sau a={4,4,6,7,8,9}; N=6; x= 4. Chương trình trên sẽ cho lại giá trị là:


A.  

-1

B.  

1

C.  

4

D.  

2

Câu 18: 0.4 điểm

Đặc trưng của thuật toán:

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.  

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.  

Tất cả ý nêu ra

Câu 19: 0.4 điểm

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 20: 0.4 điểm

Cho Hàm sau:

function Euclid (m, n : integer) :integer;

var r : integer ;

begin

r := m mod n;                 (1) 

while r<> 0 do                (2)

begin

 m := n;               (3)

 n :=r;                  (4)

 r := m mod n;  (5)

end;

Euclid := n;                      (6)

end;

 

 lệnh (6) có thời gian thực hiện là

 

A.  

O(1)

B.  

O(n)

C.  

O(2)

D.  

d.      O(m)

Câu 21: 0.4 điểm

Trong các giải thuật sau, thì nhóm các giải thuật nào có cùng độ phức tạp tính toán trung bình là O(n2)

A.  

Quick Sort, Heap Sort và Merge Sort

B.  

Quick Sort, Heap Sort và Bubble Sort

C.  

Selection Sort, Heap Sort và Merge Sort

D.  

Insertion Sort, Bubble Sort và Selection Sort

Câu 22: 0.4 điểm

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

Int timkiem_NP(int a[], int N, int x)

{

Int left=0, right=N-1, mid;

Do

     {         mid = (eft+right)/2;

               if(x=a[mid]) return mid;

               else if(x<a[mid]) right= mid- 1;

               else left= mid+1;

     } while (left<=right);

Return -1

}

Với tham số thực truyền vào hàm trên như sau: a={20,85, 90, 68, 78, 90}; x= 90 đoạn chương trình trên sẽ trả lại giá trị mid bằng bao nhiêu?


A.  

-1

B.  

2

C.  

5

D.  

6

Câu 23: 0.4 điểm

ý tưởng phương pháp sắp xếp vun đống (Heap sort) là:

A.  

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.

B.  

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

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

Câu 24: 0.4 điểm

Tên kiểu nguyên trong hệ kiểu pascal là:

A.  

Integer

B.  

Byte

C.  

Real

D.  

Boolean

Câu 25: 0.4 điểm

Một cây nhị phân có chiều cao là 7, cây đó chỉ có 50 nút. Nếu lưu trữ kế tiếp thì lãng phí bao nhiêu ô ( nút gốc có mức 1, mỗi nút chiếm 1 ô ):

A.  

15 ô

B.  

70 ô

C.  

25 ô

D.  

77 ô

Đề thi tương tự