Font size
WorksheetsPage 1
Total questions: 99
Worksheet time: 50mins
Giải thuật đệ quy là gì?
Trong giải thuật có lời gọi tới chính nó nhưng với phạm vi nhỏ hơn.
Trong giải thuật có lời gọi tới chính nó nhưng với phạm vi lớn hơn.
Trong giải thuật có lời gọi tới một giải thuật khác đã biết kết quả.
Trong giải thuật có lời gọi tới chính nó.
Giải thuật đệ quy là:
Nếu lời giải của một bài toán T được giải bằng lời giải của một bài toán T1 khác T, thì lời giải đó được gọi là lời giải đệ quy.
Nếu lời giải của một bài toán T được giải bằng lời giải của một bài toán T1, có dạng giống như T, thì lời giải đó được gọi là lời giải đệ quy.
Nếu lời giải của một bài toán T được giải bằng lời giải của một bài toán T1 mà T1 giải được thì lời giải đó được gọi là lời giải đệ quy.
Nếu lời giải của một bài toán T được giải bằng lời giải của một bài toán T1 mà T1 có độ phức tạp khác T, thì lời giải đó được gọi là lời giải đệ quy.
Đặc điểm của giải thuật đệ quy là gì?
Trong thủ tục đệ quy có lời gọi đến chính thủ tục đó.
Sau mỗi lần có lời gọi đệ quy thì kích thước của bài toán được thu nhỏ hơn trước.
Có một trường hợp đặc biệt, trường hợp suy biến; khi trường hợp này xảy ra thì bài toán còn lại sẽ được giải quyết theo một cách khác.
Tất cả đều đúng.
Danh sách tuyến tính là gì?
Danh sách mà quan hệ lân cận giữa các phần tử được xác định.
Danh sách dạng được lưu dưới dạng mảng.
Danh sách tuyến tính là một danh sách rỗng.
Danh sách tuyến tính là một danh sách có dạng (a1, a2, ... an).
Ưu điểm của việc cài đặt danh sách bằng mảng là gì?
Có thể bổ sung hoặc xóa một phần tử bất kỳ trong mảng.
Việc truy nhập vào phần tử của mảng được thực hiện trực tiếp dựa vào địa chỉ tính được (chỉ số), nên tốc độ nhanh và đồng đều đối với mọi phần tử.
Có thể thay đổi số lượng phần tử theo ý muốn của người dùng.
Tất cả các ý trên đều đúng.
Danh sách tuyến tính dạng ngăn xếp là gì?
Là một danh sách tuyến tính trong đó phép bổ sung một phần tử vào ngăn xếp được thực hiện ở một đầu, và phép loại bỏ được thực hiện ở đầu kia.
Là một danh sách tuyến tính trong đó phép bổ sung một phần tử vào ngăn xếp và phép loại bỏ một phần tử khỏi ngăn xếp luôn luôn thực hiện ở một đầu gọi là đỉnh.
Là một danh sách tuyến tính trong đó phép bổ sung một phần tử vào ngăn xếp thực hiện ở đầu, còn phép loại bỏ thực hiện ở giữa.
Là một danh sách tuyến tính trong đó việc bổ sung và loại bỏ phần tử luôn thực hiện tại nhiều đầu khác nhau.
Danh sách tuyến tính dạng ngăn xếp làm việc theo nguyên tắc:
FIFO (first in first out)
LILO (last in last out)
LIFO (last in first out)
FOLO (first out last out)
Khi đổi một số nguyên từ hệ thập phân sang hệ nhị phân, người ta dùng phép chia liên tiếp cho 2 và lấy các số dư theo chiều ngược lại. Cơ chế sắp xếp này chính là cơ chế hoạt động của cấu trúc dữ liệu:
Hàng đợi (Queue)
Mảng (Array)
Bản ghi (Record)
Ngăn xếp (Stack)
Định nghĩa danh sách tuyến tính Hàng đợi (Queue) là:
Hàng đợi là kiểu danh sách tuyến tính trong đó, phép bổ sung một phần tử được thực hiện ở một đầu, gọi là lối sau (rear) hay lối trước (front). Phép loại bỏ không thực hiện được.
Hàng đợi là kiểu danh sách tuyến tính trong đó, phép bổ sung phần tử ở một đầu, gọi là lối sau (rear) và phép loại bỏ phần tử được thực hiện ở đầu kia, gọi là lối trước (front).
Hàng đợi là kiểu danh sách tuyến tính trong đó, phép bổ sung một phần tử hay loại bỏ được thực hiện ở một đầu danh sách gọi là đỉnh (Top).
Là một danh sách tuyến tính trong đó phép bổ sung một phần tử và phép loại bỏ một phần tử được thực hiện ở tại một vị trí bất kỳ trong danh sách.
Hàng đợi còn được gọi là danh sách kiểu:
FIFO (first in first out)
LILO (last in last out)
LIFO (last in first out)
FOLO (first out last out)
Để thêm một đối tượng x bất kỳ vào Stack, thao tác thường dùng là:
POP(x)
EMPTY(x)
TOP(x)
PUSH(x)
Để loại bỏ một đối tượng ra khỏi Stack, thao tác thường dùng là:
POP(x)
PUSH(x)
TOP(x)
EMPTY(x)
Để biểu diễn Stack, ta thường sử dụng kiểu dữ liệu nào sau đây?
Danh sách móc nối và mảng dữ liệu
Kiểu bản ghi
Mảng dữ liệu
Danh sách móc nối
Thao tác POP(x) dùng trong Stack là để:
Xóa bỏ một dãy các phần tử ra khỏi Stack
Xóa bỏ một phần tử bất kì khỏi Stack
Lấy phần tử đầu tiên ra khỏi Stack
Lấy một phần tử cuối cùng ra khỏi đỉnh Stack
Thao tác PUSH(x) dùng trong Stack là để:
Bổ sung một phần tử vào đầu Stack
Bổ sung một dãy các phần tử vào đỉnh Stack
Bổ sung một phần tử vào đỉnh Stack
Bổ sung một phần tử bất kì vào Stack
Cho Stack gồm 5 phần tử {12, 5, 20, 23, 25}, trong đó 25 là phần tử ở đỉnh Stack. Để lấy ra phần tử thứ 3 trong Stack ta phải làm thế nào?
POP(25), POP(23), POP(20)
POP(25), POP(23), POP(20), PUSH(23), PUSH(25)
POP(25), POP(23), POP(20), PUSH(25), PUSH(23)
POP(25), POP(23), PUSH(20), PUSH(25), PUSH(23)
Trong lưu trữ dữ liệu kiểu Queue (Q) dưới dạng mảng nối vòng, giả sử F là con trỏ tới lối trước của Q, R là con trỏ tới lối sau của Q. Điều kiện F=R=0 nghĩa là:
Queue rỗng
Kiểm tra chỉ số trước và chỉ số sau của Queue có bằng nhau không
Queue tràn
Đặt phần tử đầu và phần tử cuối của Queue bằng 0
Trong lưu trữ dữ liệu kiểu Queue (Q), giả sử F là con trỏ tới lối trước của Q, R là con trỏ tới lối sau của Q. Khi thêm một phần tử vào Queue, thì R và F thay đổi thế nào?
F=F-1, R không thay đổi
F không thay đổi, R=R-1
F=F+1, R không thay đổi
F không thay đổi, R=R+1
Trong lưu trữ dữ liệu kiểu Queue (Q), giả sử F là con trỏ trỏ tới lối trước của Q, R là con trỏ trỏ tới lối sau của Q. Khi loại bỏ một phần tử vào Queue, thì R và F thay đổi thế nào?
F=F-1, R không thay đổi
F không thay đổi, R=R-1
F không thay đổi, R=R+1
F=F+1, R không thay đổi
Trong biểu diễn dữ liệu dưới dạng cây, cấp của cây chính là:
Cấp cao nhất của nút lá
Cấp cao nhất của một nút trên cây
Tổng số nút trên cây
Cấp cao nhất của nút gốc
Trong biểu diễn dữ liệu dưới dạng cây, nút có cấp bằng 0 gọi là:
Lá
Phần tử cuối cùng trong cây
Không có đáp án nào đúng
Gốc
Mỗi nút trong cây có thể có tối đa:
1 nút con
Nhiều nút con
3 nút con
2 nút con
Khi lưu trữ cây nhị phân dưới dạng mảng, nếu vị trí của nút cha trong mảng là i thì vị trí của nút con trái là:
i−1
2∗i
i+1
2∗i+1
Khi lưu trữ cây nhị phân dưới dạng mảng, nếu vị trí của nút cha trong mảng là i thì vị trí của nút con phải là:
i+1
2∗i
2∗i+1
i−1
Khi lưu trữ cây nhị phân dưới dạng mảng, nếu vị trí của nút cha trong mảng là 3 thì vị trí tương ứng của nút con sẽ là:
6
6 và 7
4
7
Khi lưu trữ cây nhị phân dưới dạng mảng, nếu vị trí của nút cha trong mảng là 3 thì vị trí tương ứng của nút con trái sẽ là:
2
4
7
6
Khi lưu trữ cây nhị phân dưới dạng mảng, nếu vị trí của nút cha trong mảng là 3 thì vị trí tương ứng của nút con phải sẽ là:
2
4
6
7
Duyệt cây nhị phân theo thứ tự trước được thực hiện theo thứ tự:
Duyệt cây con trái theo thứ tự trước, thăm gốc giữa, duyệt cây con phải theo thứ tự sau.
Duyệt cây con trái theo thứ tự sau, thăm gốc trước, duyệt cây con phải theo thứ tự sau.
Nút gốc, duyệt cây con trái theo thứ tự trước, duyệt cây con phải theo thứ tự trước.
Thăm gốc trước, duyệt cây con trái theo thứ tự giữa, duyệt cây con phải theo thứ tự sau.
Duyệt cây nhị phân theo thứ tự giữa được thực hiện theo thứ tự:
Thăm gốc trước, duyệt cây con trái theo thứ tự giữa, duyệt cây con phải theo thứ tự sau.
Duyệt cây con trái theo thứ tự trước, thăm gốc giữa, duyệt cây con phải theo thứ tự sau.
Duyệt cây con trái theo thứ tự giữa, thăm gốc, duyệt cây con phải theo thứ tự giữa.
Thăm gốc, duyệt cây con trái theo thứ tự giữa, duyệt cây con phải theo thứ tự giữa.
Duyệt cây nhị phân theo thứ tự sau được thực hiện theo thứ tự:
Thăm gốc, duyệt cây con trái theo thứ tự sau, duyệt cây con phải theo thứ tự sau.
Duyệt cây con trái theo thứ tự sau, duyệt cây con phải theo thứ tự sau, thăm gốc.
Duyệt cây con trái theo thứ tự trước, thăm gốc giữa, duyệt cây con phải theo thứ tự sau.
Thăm gốc trước, duyệt cây con trái theo thứ tự giữa, duyệt cây con phải theo thứ tự sau.
Ý tưởng phương pháp sắp xếp chọn tăng dần (select sort) là:
Chọn phần tử bé nhất xếp vào vị trí thứ nhất bằng cách đổi chỗ phần tử bé nhất với phần tử thứ nhất; Tương tự đối với phần tử nhỏ thứ hai, ba...
Phân đoạn dãy thành nhiều dãy con và lần lượt trộn hai dãy con thành dãy lớn hơn, cho đến khi thu được dãy ban đầu đã được sắp xếp.
Lần lượt lấy phần tử của danh sách chèn vị trí thích hợp của nó trong dãy.
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 bé hơn được đưa lên vị trí trên.
Ý tưởng phương pháp sắp xếp nổi bọt (bubble sort) là:
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.
Phân đoạn dãy thành nhiều dãy con và lần lượt trộn hai dãy con thành dãy lớn hơn, cho đến khi thu được dãy ban đầu đã được sắp xếp.
Chọn phần tử bé nhất xếp vào vị trí thứ nhất bằng cách đổi chỗ phần tử bé nhất với phần tử thứ nhất; Tương tự đối với phần tử nhỏ thứ hai, ba...
Lần lượt lấy phần tử của danh sách chèn vị trí thích hợp của nó trong dãy.
Ý tưởng phương pháp sắp xếp chèn (insertion sort) là:
Phân đoạn dãy thành nhiều dãy con và lần lượt trộn hai dãy con thành dãy lớn hơn, cho đến khi thu được dãy ban đầu đã được sắp xếp.
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 lấy phần tử của danh sách chèn vị trí thích hợp của nó trong dãy bằng cách đẩy các phần tử lớn hơn xuống.
Chọn phần tử bé nhất xếp vào vị trí thứ nhất bằng cách đổi chỗ phần tử bé nhất với phần tử thứ nhất; Tương tự đối với phần tử nhỏ thứ hai, ba...
Ý tưởng phương pháp sắp xếp nhanh (Quick sort) là:
Chọn một phần tử làm chốt (pivot), phân hoạch dãy thành hai phần theo chốt, rồi đệ quy sắp xếp hai phần.
Chọn phần tử bé nhất xếp vào vị trí thứ nhất bằng cách đổi chỗ phần tử bé nhất với phần tử thứ nhất; tiếp tục với phần tử nhỏ thứ hai, ba...
Lần lượt lấy mỗi phần tử và chèn vào vị trí thích hợp bằng cách dịch các phần tử lớn hơn sang phải.
Trộn dần các dãy con đã được chia thành dãy lớn hơn cho đến khi toàn bộ dãy được sắp xếp.
Phương pháp sắp xếp nhanh (Quick sort) chính là phương pháp:
Phân đoạn
Vun đống
Chèn
Trộn
Ý tưởng phương pháp sắp xếp Trộn (Merge sort) là:
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.
Phân đoạn dãy thành nhiều dãy con và lần lượt trộn hai dãy con thành dãy lớn hơn, cho đến khi thu được dãy ban đầu đã được sắp xếp.
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 con lại gồm các phần tử lớn hơn khoá).
Chọn phần tử bé nhất xếp vào vị trí thứ nhất bằng cách đổi chỗ phần tử bé nhất với phần tử thứ nhất; Tương tự đối với phần tử nhỏ thứ hai, ba...
Ý tưởng của giải thuật tìm kiếm nhị phân:
So sánh X lần lượt với các phần tử thứ nhất, thứ hai,... của dãy cho đến khi gặp phần tử có khoá cần tìm.
Tại mỗi bước tiến hành so sánh X với phần tử ở giữa của dãy, dựa vào bước so sánh này quyết định giới hạn dãy tìm kiếm nằm ở nửa trên, hay nửa dưới của dãy hiện hành.
Lần lượt chia dãy thành hai dãy con dựa vào phần tử khoá, sau đó thực hiện việc tìm kiếm trên hai đoạn đã chia.
Tìm kiếm dựa vào cây nhị tìm kiếm.
Tư tưởng của giải thuật tìm kiếm trên cây nhị phân tìm kiếm
So sánh X lần lượt với các phần tử thứ nhất, thứ hai,... của dãy cho đến khi gặp phần tử có khóa cần tìm.
Tìm kiếm dựa vào cây nhị tìm kiếm: Nếu giá trị cần tìm nhỏ hơn gốc thì thực hiện tìm kiếm trên cây con trái, ngược lại ta việc tìm kiếm được thực hiện trên cây con phải.
Tại mỗi bước tiến hành so sánh X với phần tử ở giữa của dãy, dựa vào bước so sánh này quyết định giới hạn dãy tìm kiếm nằm ở nửa trên, hay nửa dưới của dãy hiện hành.
Lần lượt chia dãy thành hai dãy con dựa vào phần tử khóa, sau đó thực hiện việc tìm kiếm trên hai đoạn đã chia.
Cây nhị phân tìm kiếm là:
Là cây nhị phân đầy đủ.
Cây nhị phân mà mỗi nút trong cây đều thỏa tính chất: giá trị của nút cha nhỏ hơn mọi nút trên cây con trái và lớn hơn mọi nút trên cây con phải của nó.
Cây nhị phân mà mỗi nút trong cây đều thỏa tính chất: giá trị của nút cha lớn hơn giá trị của hai nút con.
Cây nhị phân thỏa tính chất heap
Trong các giải thuật sắp xếp, giải thuật nào áp dụng phương pháp "Chia để trị"?
Quick sort, Heap sort
Quick sort, Bubble sort
Quick sort, Insert sort
Quick sort, Merge sort
Cho dãy số {6 1 3 0 5 7 9 2 8 4} , áp dụng phương pháp sắp xếp lựa chọn (Select sort). Dãy số thu được sau lần lặp thứ hai là:
{0 1 2 6 5 7 9 3 4 8}
{0 1 2 6 5 7 9 3 8 4}
{0 1 3 6 5 7 9 2 8 4}
{0 1 2 3 4 5 6 7 8 9}
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). Dãy số thu được sau lần lặp thứ ba là:
{0 1 2 4 7 3 9 5 6 8}
{0 1 2 3 4 7 5 9 6 8}
{0 4 7 1 9 2 5 3 6 8}
{0 1 4 7 2 9 3 5 6 8}
Cho dãy số {4 0 2 8 5 9 6 1 3 7}, áp dụng phương pháp sắp xếp chèn (Insert sort). Dãy số thu được sau lần lặp thứ bốn là:
{0 1 2 3 5 9 6 4 8 7}
{0 4 2 8 5 9 6 1 3 7}
{0 1 2 8 5 9 6 4 3 7}
{0 2 4 5 8 9 6 1 3 7}
Cho dãy số {3 1 6 0 5 4 8 2 9 7}, áp dụng phương pháp sắp xếp nhanh (Quick sort). Dãy số thu được sau lần lặp thứ bốn là:
{0 1 2 3 (5 4 8 6 9 7)}
{0 1 (2) 3 (5 4) 8 (6 9 7)}
{(3) 1 (6) 0 (5 4) 8 2 (9 7)}
{(0) 1 (2 3) 4 (5 6 7) (8 9)}
Cho dãy số: 12 2 8 5 1 6 4 15 và các bước sắp xếp sau: Bước 1: 1 2 8 5 12 6 4 15 Bước 2: 1 2 8 5 12 6 4 15 Bước 3: 1 2 4 5 12 6 8 15 Bước 4: 1 2 4 5 12 6 8 15 Bước 5: 1 2 4 5 6 12 8 15 Bước 6: 1 2 4 5 6 8 12 15 Các bước trên dựa theo giải thuật sắp xếp nào?
Select sort
Quick sort
Insert sort
Bubble sort
Cho dãy số: "4 7 0 9 2 5 3 1 8 6" và các bước sắp xếp sau: Bước 1: 0 4 7 1 9 2 5 3 6 8 Bước 2: 0 1 4 7 2 9 3 5 6 8 Bước 3: 0 1 2 4 7 3 9 5 6 8 Bước 4: 0 1 2 3 4 7 5 9 6 8 Bước 5: 0 1 2 3 4 5 7 6 9 8 Bước 6: 0 1 2 3 4 5 6 7 8 9 Các bước trên dựa theo giải thuật sắp xếp nào?
Select sort
Quick sort
Insert sort
Bubble sort
Các bước trên dựa theo giải thuật sắp xếp nào?
Bubble sort
Select sort
Quick sort
Insert sort
Cho dãy số: "5 1 4 2 7 3" và các bước sắp xếp sau: Bước 1: 1 5 4 2 7 3 Bước 2: 1 4 5 2 7 3 Bước 3: 1 2 4 5 7 3 Bước 4: 1 2 4 5 7 3 Bước 5: 1 2 3 4 5 7 Các bước trên dựa theo giải thuật sắp xếp nào?
Select sort
Insert sort
Quick sort
Bubble sort
Cho dãy số: 3 1 6 0 5 4 8 2 9 7 và các bước sắp xếp sau: Bước 1: 1 3 6 0 5 4 8 2 9 7 Bước 2: 1 3 6 0 5 4 8 2 9 7 Bước 3: 1 3 6 0 5 4 8 2 9 7 Bước 4: 0 1 3 5 6 4 8 2 9 7 Bước 5: 0 1 3 5 6 4 8 2 9 7 Bước 6: 0 1 3 5 6 2 4 8 9 7 Bước 7: 0 1 3 5 6 2 4 8 7 9 Bước 8: 0 1 3 5 6 2 4 7 8 9 Bước 9: 0 1 2 3 4 5 6 7 8 9 Các bước trên dựa theo giải thuật sắp xếp nào?
Quick sort
Select sort
Merge sort
Insert sort
Cho dãy số sau: 10 11 14 32 36 43 55 57 87 97. Áp dụng phương pháp tìm kiếm nhị phân, sau bao nhiêu lần phân đoạn ta sẽ tìm thấy số 43?
2 lần
4 lần
Tính chất nào sau đây là tính chất của cây nhị phân tìm kiếm:
Mọi khóa thuộc cây con trái nút đó đều lớn hơn khóa ứng với nút đó.
Đáp án A và C.
Mọi khóa thuộc cây con trái nút đó đều nhỏ hơn khóa ứng với nút đó.
Mọi khóa thuộc cây con trái nút đó đều lớn hơn khóa cây con phải nút đó.
Chọn câu trả lời đúng nhất về thuật toán
Thuật toán là một dãy hữu hạn các bước, mỗi bước mô tả chính xác các phép toán hoặc hành động cần thực hiện để giải quyết vấn đề đặt ra.
Thuật toán là một dãy hữu hạn các bướ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.
Thuật toán là nòng cốt của chương trình.
Thuật toán cần có một hoặc nhiều dữ liệu ra (output), dữ liệu vào (input).
Sắp xếp theo thứ tự tăng dần của cấp thời gian thực hiện chương trình Chú ý: (log2n) = Log cơ số 2 của n
O(nlog2n), O(n), O(log2n), O(1)
O(log2n), O(n), O(nlog2n), O(1)
O(1), O(nlog2n), O(n), O(log2n)
O(1), O(log2n), O(n), O(nlog2n)
Định nghĩa cấu trúc dữ liệu Stack:
Stack là một danh sách đặc biệt mà phép thêm vào được thực hiện ở một đầu, và phép loại bỏ được thực hiện ở phần kia của stack.
Stack là một danh sách đặc biệt mà phép thêm vào hoặc loại bỏ một phần tử chỉ thực hiện tại một đầu gọi là đỉnh (Top) của Stack.
Stack là danh sách kết nối.
Stack là cấu trúc dữ liệu được cài đặt bằng con trỏ.
Để cài đặt Stack ta có thể dùng phương pháp nào sau đây:
Bằng con trỏ và bằng mảng
Bằng con trỏ
Bằng mảng
Tất cả đều sai
Hãy cho biết hàm sau dùng để làm gì Position ham (List L) { Position P; P=L; while (P->Next!=NULL) P=P->Next; return P; }
Xác định phần tử đầu tiên.
Xác định phần tử cuối cùng.
Xác định phần tử đứng sau P.
Xác định phần tử đứng trước P.
Hãy cho biết hàm sau dùng để làm gì? Position ham2 (ElementType X, List L) { Position P; int f=0; P=L; while (P->Next!=NULL&&f==0) if (P->Next->Element==X) f=1; else P=P->Next; return P->Next; }
Xác định vị trí phần tử đứng sau X.
Xác định vị trí của phần tử có nội dung là X.
Xác định phần tử đứng sau X.
Xác định vị trí phần tử đứng trước X.
Hãy cho biết đoạn chương trình sau dùng để làm gì?
cout<
In từ đầu danh sách đến X.
In từ đầu danh sách đến X xuất hiện đầu tiên.
In từ đầu danh sách đến X xuất hiện cuối cùng.
In từ đầu danh sách đến X xuất hiện lần 2.
Câu 59: Hãy cho biết hàm sau dùng để làm gì? void them (ElementType X, ElementType Y, List &L) { Position P,Q; P=L; while (P->Next!=NULL) { if (P->Next->Element==Y) Q=P->Next; P=P->Next; } InsertList(X,Q,L); } Chọn một đáp án đúng.
Thêm X vào sau Y xuất hiện sau cùng.
Thêm X vào trước Y xuất hiện sau cùng.
Thêm X vào sau Y xuất hiện đầu tiên.
Thêm X vào trước Y xuất hiện đầu tiên.
Câu 60: Hãy cho biết hàm sau dùng để làm gì? void xoa (ElementType X, List &L) { Position P; P=L; while (P->Next!=NULL) { if (P->Next->Element==X) DeleteList(P,L); else P=P->Next; } PrintList(L); } Chọn một đáp án đúng.
Xóa phần tử có nội dung là X đầu tiên.
Xóa phần tử có nội dung là X cuối cùng.
Đánh giá độ phức tạp của giải thuật là việc xác định ... và ..... mà giải thuật cần để thực hiện giải một bài toán. Chọn một đáp án đúng.
thời gian, dung lượng bộ nhớ
tính đơn giản, thời gian
độ khó, thời gian
dung lượng bộ nhớ, độ khó
Cho mô hình minh họa việc thêm một phần tử có nội dung là X vào danh sách liên kết đơn; các bước (1)–(4) được đánh số trong hình. Hỏi câu lệnh nào sau đây tương ứng với bước (3) trong mô hình?
P->Next = Temp;
Position Temp = new Node;
Temp->Element = X;
Temp->Next = P->Next;
Lời gọi hàm Swap(5, 10) sẽ không báo lỗi đối với hàm nào sau đây?
void Swap(int a, int b) { int t = a; b = t; a = b; }
void Swap(int &a, int &b) { int t = a; a = b; b = t; }
Quá trình khử đệ quy bằng cách sử dụng ngăn xếp được thực hiện qua bao nhiêu bước? Chọn một.
4 bước
5 bước
2 bước
3 bước
Trong ngôn ngữ lập trình C/C++ có các cấu trúc điều khiển sau. Chọn một.
Tuần tự và lặp
Tuần tự, rẽ nhánh và lặp
Tuần tự và rẽ nhánh
Rẽ nhánh và lặp
Cho hàm dưới đây. Lời gọi Func(5, 4, 3) sẽ trả về kết quả là gì? Chọn một.
9
8
12
7
Phát biểu nào mô tả đúng cách lưu trữ dữ liệu trong bộ nhớ máy tính sao cho nó có thể được sử dụng một cách hiệu quả?
cách lưu trữ dữ liệu trong bộ nhớ máy tính (HDD), sao cho nó có thể được sử dụng một cách hiệu quả.
cách lưu trữ dữ liệu trong bộ nhớ máy tính (ROM), sao cho nó có thể được sử dụng một cách hiệu quả.
cách lưu trữ dữ liệu trong bộ nhớ máy tính (USB), sao cho nó có thể được sử dụng một cách hiệu quả.
cách lưu trữ dữ liệu trong bộ nhớ máy tính (RAM), sao cho nó có thể được sử dụng một cách hiệu quả.
Cho hàm xoá một phần tử khỏi hàng đợi như sau. Ta có thể bỏ câu lệnh nào mà hàm trên vẫn thực hiện đúng chức năng của nó?
Câu lệnh (4).
Câu lệnh (2).
Câu lệnh (3).
Câu lệnh (1).
Phát biểu nào sau đây là đúng?
Ngăn xếp có tính chất "vào trước ra trước".
Ta chỉ có thể cài đặt ngăn xếp bằng con trỏ.
Ngăn xếp là danh sách hạn chế việc thêm vào thực hiện ở một đầu và loại bỏ thực hiện ở đầu còn lại.
Ngăn xếp có tính chất "vào trước ra sau".
Sắp xếp các câu lệnh sau theo thứ tự đúng cho quy trình thêm một phần tử có nội dung X vào sau vị trí P trong danh sách liên kết đơn. Các câu lệnh: (1) Position Temp = new Node; (2) P->Next = Temp; (3) Temp->Element = X; (4) Temp->Next = P->Next. Select one:
(2) (4) (3) (1)
(1) (2) (3) (4)
(4) (3) (2) (1)
(1) (3) (4) (2)
Cho hàm sau (C/C++) và chọn phát biểu sai. Định nghĩa: int Func(int n, int a, int b) { if(n==0) return a*b; else return Func(n-2,a-2,b)*Func(n-2,a,b-2); }. Select one:
Lời gọi hàm Func(5, 6, 7) không trả về kết quả vì không dừng đệ quy được.
Lời gọi hàm Func(4, 5, 6) trả về kết quả là 8640.
Lời gọi hàm Func(5, 6, 7) không trả về kết quả vì giá trị vượt quá miền giá trị kiểu int.
Lời gọi hàm Func(4, 5, 7) và Func(4, 7, 5) trả về kết quả giống nhau.
Phát biểu nào sau đây là đúng? Chọn một đáp án.
Các hàm không thể gọi chính nó.
Ta phải định nghĩa các hàm trước hàm main.
Các hàm chỉ có thể được gọi trong hàm main.
Ta có thể định nghĩa các hàm sau hàm main.
Kiểu dữ liệu trừu tượng là ... Chọn một đáp án.
kiểu dữ liệu mà người lập trình phải tự xây dựng dựa trên các kiểu dữ liệu cơ bản được cung cấp từ ngôn ngữ lập trình.
kiểu dữ liệu mà người lập trình phải tự xây dựng dựa trên các kiểu dữ liệu cơ bản được cung cấp từ ngôn ngữ máy.
kiểu dữ liệu mà người lập trình phải tự xây dựng không dựa trên các kiểu dữ liệu cơ bản được cung cấp từ ngôn ngữ lập trình.
kiểu dữ liệu mà người lập trình phải tự xây dựng dựa trên các kiểu dữ liệu không cơ bản được cung cấp từ ngôn ngữ lập trình.
Mối quan hệ giữa cấu trúc dữ liệu và giải thuật có thể minh hoạ bằng đẳng thức nào? Chọn một đáp án.
Cấu trúc dữ liệu = Giải thuật
Giải thuật + Chương trình = Cấu trúc dữ liệu
Cấu trúc dữ liệu + Chương trình = Giải thuật
Cấu trúc dữ liệu + Giải thuật = Chương trình
Phát biểu nào sau đây là sai? Chọn một đáp án.
Con trỏ là một biến chứa địa chỉ của biến khác.
Biến con trỏ không cho phép chúng ta thâm nhập trực tiếp vào bộ nhớ.
Để con trỏ p trỏ tới x ta phải gán địa chỉ P của x cho p.
Kiểu dữ liệu nào sau đây là kiểu dữ liệu cơ bản? Chọn một đáp án đúng.
pointer
struct
mảng/dãy
chuỗi
Cho hàm Func được cài đặt trên danh sách liên kết đơn lưu các phần tử kiểu số nguyên như hình, hãy cho biết hàm thực hiện chức năng gì. Chọn một đáp án đúng.
Xóa phần tử đầu tiên trong danh sách L.
Xóa phần tử đứng trước phần tử cuối cùng trong danh sách L.
Xóa phần tử tại vị trí P trong danh sách L.
Xóa phần tử cuối cùng trong danh sách L.
Xem đoạn mã chèn phần tử vào danh sách liên kết đơn với các câu lệnh được đánh số như sau: (1) Position Temp; (2) Temp = new Node; (3) Temp->Element = X; (4) Temp->Next = P->Next; (5) P->Next = Temp. Hai câu lệnh nào có thể ghép chung thành một? Chọn một đáp án.
(3) và (4)
(2) và (3)
(1) và (2)
(4) và (5)
Dựa vào đoạn mã trong hình, hàm Func trên thực hiện chức năng gì? Chọn một đáp án.
Ghép danh sách F2 vào chính giữa danh sách L1.
Ghép danh sách F2 vào đầu danh sách L1.
Ghép danh sách F2 vào trước phần tử thứ vt trong danh cách L1
Ghép danh sách F2 vào sau phần tử thứ vt trong danh sách L1
Chọn một đáp án: Đoạn mã sau (các dòng được đánh số) liên quan tới hàm InsertList: void InsertList(ElementType X, Position P, List &L) { Position Temp; Temp = new Node; (1) Temp.Element = X; (2) Temp->Next = P->Next; (3) P->Next = Temp; (4) }
(2)
(1)
(4)
(3)
Xét hàm InsertList(ElementType X, Position P, List &L) cho danh sách liên kết đơn. Hai phiên bản mã nguồn trong hình lần lượt hoán đổi thứ tự các phép gán cho Temp->Element, Temp->Next và P->Next. Chọn thứ tự lệnh tạo và chèn nút Temp ngay sau vị trí P sao cho cấu trúc danh sách còn lại được giữ nguyên.
Khởi tạo Temp; gán Temp->Element = X; gán P->Next = Temp; gán Temp->Next = P->Next
Khởi tạo Temp; gán Temp->Next = P->Next; gán P->Next = Temp; gán Temp->Element = X
Hàm nào sau đây thực hiện đúng chức năng thêm 1 phần tử vào đầu danh sách liên kết? A. void ThemDau(ElementType X, List &L) { Position Temp=new Node; Temp->Element=X; L->Next=Temp->Next; L->Next=Temp; } B. void ThemDau(ElementType X, List &L) { Position Temp=new Node; Temp->Element=X; L=Temp->Next; L->Next=Temp; } C.
Chọn A
Chọn B
Select one: Một danh sách liên kết mà trường liên kết của phần tử cuối giữ địa chỉ của phần tử đầu được gọi là
danh sách liên kết hạn chế
danh sách liên kết vòng
danh sách liên kết kép
danh sách liên kết đơn
Phát biểu nào sau đây là đúng? Chọn một đáp án.
cách 1 luôn tốt hơn cách 2
Cách 2 luôn luôn tốt hơn cách 1,
Dung lượng vùng nhớ của cách 1 không phụ thuộc vào số lượng sinh viên nhưng dung lượng trong vùng nhớ của cách 2 phụ thuộc vào số lượng sinh viên.
Nếu số lượng sinh vien trong một lớp là 65 thì ta nên chọn cách 1 để khai báo
Nếu x là một biến kiểu số nguyên, để con trỏ p trỏ đến biến x ta viết: Chọn một đáp án.
p=x[0];
p=*x;
p=x;
p = &x;
Các loại danh sách hạn chế là Chọn một đáp án.
Hàng đợi và danh sách liên kết
Ngăn xếp và xếp hàng chờ
Chồng và hàng đợi
Danh sách đặc và ngăn xếp
Đặc điểm nào sau đây không phải của hàm có tính đệ qui. Chọn một đáp án đúng.
Chương trình dễ viết và dễ đọc nhưng có thể khó hiểu.
Chương trình viết ngắn gọn.
Việc thực hiện gọi đi gọi lại hàm rất nhiều lần phụ thuộc vào độ lớn của đầu.
Hàm đệ qui sử dụng vùng nhớ HEAP để lưu địa chỉ các lần gọi đệ qui.
Phát biểu nào sau đây là sai. Đa số các thuật toán có thời gian thực thi tiệm cận tới một trong các hàm sau. Chọn một đáp án đúng.
N , NLogN , 2N
N, N2 , 2N
N, N2+2logN
N^3, LogN
Với p là biến con trỏ trỏ đến mảng, để giải phóng vùng nhớ cho p ta viết. Chọn một đáp án đúng.
free p;
delete p;
delete[] p;
p = free;
Các kiểu dữ liệu cơ bản là .... Chọn một đáp án đúng.
các kiểu dữ liệu mà người lập trình được cung cấp sẵn từ máy tính
các kiểu dữ liệu mà người lập trình được cung cấp sẵn từ ngôn ngữ lập trình
các kiểu dữ liệu mà người lập trình được cung cấp sẵn từ ngôn ngữ máy
các kiểu dữ liệu mà người lập trình được cung cấp sẵn từ ngôn ngữ tự nhiên
Phát biểu nào sau đây là đúng? Select one:
Việc tổ chức để lưu trữ dữ liệu phục vụ cho chương trình không có ý nghĩa gì trong toàn bộ hệ thống chương trình
Việc xây dựng cấu trúc dữ liệu không quyết định đến chất lượng cũng như công sức của người lập trình
Giải thuật dùng để chỉ ra phương pháp hay cách thức giải quyết vấn đề
Giải thuật chỉ có thể được minh hoạ bằng lưu đồ
Cho hàm Func được cài đặt trên danh sách liên kết đơn như mô tả ở hình, trong đó các dòng (1)–(4) đã cho. Hãy chọn câu lệnh phù hợp để điền vào dòng (3) nhằm chèn nút mới Temp chứa giá trị X sau nút có giá trị Y. Select one:
Temp->Next=T->Next;
Temp->Next=NULL;
T->Next=Temp->Next;
P->Next=Temp;
Chọn một đáp án: Để hàm Func thực hiện đúng chức năng thêm phần tử có nội dung X vào sau phần tử có nội dung Y xuất hiện sau cùng vào danh sách L thì câu lệnh (3) phải là ...
Temp->Next-P->Next;
Temp->Next-T->Next;
P->Next=T->Next;
Chọn một đáp án: Để có được chương trình ta cần phải xây dựng được cấu trúc dữ liệu, giải thuật và phải sử dụng được ...
ngôn ngữ lập trình
thuật toán
cấu trúc chương trình
dữ liệu
Chọn một đáp án: Cho ngăn xếp S với kiểu phần tử là char đã có sẵn các phép toán cơ bản MakeNullStack (Tạo 1 ngăn xếp), EriptyStack (Kiểm tra ngăn xếp rỗng T hoặc F), Push (Thêm phần tử X vào đỉnh), Top (Trả về), Pop (Xoá). Hãy cho biết kết quả in trên màn hình sau khi thực hiện xong chuỗi các thao tác: KH#OAI#CON##GNGH#E##. Quy ước: đã khởi tạo ngăn xếp S trước, mỗi chữ cái tượng trưng cho thao tác thêm chữ cái đó vào ngăn xếp S; mỗi dấu # tượng trưng cho thao tác lấy nội dung phần tử ở đỉnh ngăn xếp S, in lên màn hình và xoá phần tử này.
HANOHEG
HAONENG
HANDEHG
HAONHEG
Chọn một đáp án: Danh sách thường được phân thành bao nhiêu loại
4 loại
5 loại
2 loại
3 loại
Giả sử trong danh sách liên kết đơn đã cài đặt các phép toán cơ bản sau: FIRST(List L): xác định phần tử đầu tiên của danh sách, INSERTLIST(ElementType X, Position P, List &L) cho phép thêm một phần tử có nội dung là X vào sau vị trí P trong danh sách liên kết PREVIDUS(Position P, List L), là về phần tử phía trước P. Câu lệnh nào sau đây cho phép thêm một phần tử vào đầu danh sách? Select one:
INSERTLIST(X, L, L)
INSERTLIST(X, PREVIOUS(FIRST(L)), L)
INSERTLISTIX. PREVIOUS(L), L)
INSERTLISTOXX, FIRST(L), LX
Khai báo nào sau đây không đúng cho hàm thực hiện chức năng tách danh sách liên kết L1 thành hai danh sách L2 và L3? Select one:
void Split(List L1, List &L2. List &L3)
void Split(List L1. List &L3)
List Split(List L1. List &L2)
void Split(List &L1, List L2. List L3)
Phát biểu nào sau đây là sai? Select one:
Phép toán cơ bản trên hàng đợi là insertqueue
Phép toán cơ bản trên hàng đợi là dequeue
Phép toán cơ bản trên hàng đợi là emptyqueue
Phép toán cơ bản trên hàng đợi là enqueue
