
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
Xem trước nội dung:
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à:
{0 1 2 4 7 3 9 5 6 8}
{0 4 7 1 9 2 5 3 6 8}
{0 1 4 7 2 9 3 5 6 8}
{0 1 2 3 4 7 5 9 6 8}
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. Không thể xác định được
b. K, B, E, C, A
c. A, B, C, K, E
d. K, E, B, C, A.
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;
Quick sort
Merge sort
Bubble sort
Insert sort
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ỉ:
72
70
73
75
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:
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)
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
Chèn liên tiếp phần tử mới vào giữa danh sách
Chèn liên tiếp phần tử mới vào trước nút trỏ bởi bởi pTail
Cho 1 dãy gồm các phần tử như sau:
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?
Đổi chỗ A[1] cho A[8]
Đổi chỗ A[1] cho A[10]
Đổi chỗ A[4] và A[6]
Đổi chỗ A[2] cho A[7]
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à:
Ở đâ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
p=Getnode(X); l.PTail->pnext = new_ele; l.Tail = new_ele ;
l.PTail->pnext = new_ele; l.Tail = new_ele ; p=Getnode(X);
l.Tail = new_ele; l.PTail->pnext = new_ele ; p=Getnode(X);
l.PTail->pnext = new_ele ; p=Getnode(X); l.Tail = new_ele;
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ử:
Đ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.
Đ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.
Đ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.
Cả a, b, c đều sai
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:
BDHE
FIHE
DHEG
DEH
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);
}
1
2
3
4
Thao tác nào dưới đây thực hiện trên hàng đợi (queue):
Thêm phần tử vào lối sau
Loại bỏ phần tử ở lối sau
Thêm phần tử vào lối trước
Thêm và loại bỏ phần tử tại vị trí bất kỳ
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. Chèn trực tiếp (Insertion Sort)
b. Chọn trực tiếp (Selection Sort)
c. Nổi bọt (Bubble Sort)
d. Sắp xếp nhanh (Quick Sort)
Câu nào đúng nhất trong các câu sau:
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.
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.
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.
Để 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ừ:
Phần tử đầu tiên của danh sách
Truy nhập trực tiếp vào phần tử đó giống mảng 1 chiều
Thực hiện tìm kiếm nhị phân trên danh sách móc nối đơn
Thực hiện tìm kiếm tuần tự từ phần tử cuối dãy
Kích thước lưu trữ kiểu số nguyên là
2 byte
4 byte
1 byte
6 byte
Dấu hiệu nào dưới đây cho biết danh sách liên kết đơn L là rỗng:
(L->left == NULL)
(L->ìnfor == NULL)
(L->next == NULL)
(L == NULL)
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à:
-1
1
4
2
Đặc trưng của thuật toán:
Mỗi thuật toán có bộ dữ liệu vào ,ra tương ứng
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
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
Tất cả ý nêu ra
Miền giá trị của Kiểu số nguyên là:
-32767 .. 32768
0..32768
-32768 .. 32767
0..32767
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à
O(1)
O(n)
O(2)
d. O(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)
Quick Sort, Heap Sort và Merge Sort
Quick Sort, Heap Sort và Bubble Sort
Selection Sort, Heap Sort và Merge Sort
Insertion Sort, Bubble Sort và Selection Sort
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?
-1
2
5
6
ý tưởng phương pháp sắp xếp vun đống (Heap sort) là:
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.
Tạo đống cho cây nhị phân (cây nhị phân đã được sắp xếp giảm dần).
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.
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
Tên kiểu nguyên trong hệ kiểu pascal là:
Integer
Byte
Real
Boolean
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 ô ):
15 ô
70 ô
25 ô
77 ô
Đề thi tương tự
6 mã đề 224 câu hỏi 1 giờ
51,739 xem3,997 thi
2 mã đề 97 câu hỏi 1 giờ
86,908 xem6,679 thi
3 mã đề 108 câu hỏi 1 giờ
15,579 xem1,194 thi
6 mã đề 294 câu hỏi 1 giờ
83,934 xem6,435 thi
6 mã đề 229 câu hỏi 1 giờ
82,560 xem6,346 thi
3 mã đề 110 câu hỏi 1 giờ
21,016 xem1,612 thi
1 mã đề 35 câu hỏi 1 giờ
84,158 xem6,464 thi
6 mã đề 223 câu hỏi 1 giờ
10,655 xem812 thi
7 mã đề 167 câu hỏi 1 giờ
84,142 xem6,472 thi