wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Bài kiểm tra số 2

Total questions: 65

Worksheet time: 33mins

Name
Class
Date
1.

Mối quan hệ giữa cấu trúc dữ liệu và giải thuật có thể minh họa bằng đẳng thức:

a)

Cấu trúc dữ liệu + Giải thuật = Chương trình

b)

Cấu trúc dữ liệu + Chương trình = Giải thuật

c)

Chương trình + Giải thuật = Cấu trúc dữ liệu

d)

Cấu trúc dữ liệu = Chương trình

2.

Để đánh giá một cấu trúc dữ liệu ta thường dựa vào một số tiêu chí

a)

Cấu trúc dữ liệu phải tiết kiệm tài nguyên (bộ nhớ trong),

b)

Cấu trúc dữ liệu phải phản ảnh đúng thực tế của bài toán,

c)

Cấu trúc dữ liệu phải dễ dàng trong việc thao tác dữ liệu.

d)

Cả a, b, c đều đúng

3.

Để đánh giá giải thuật ta sử dụng khái niệm:

a)

Quy tắc cộng, quy tắc nhân và quy tắc chung

b)

Phương trình đệ quy, nghiệm của phương trình đệ quy

c)

Độ phức tạp và ký hiệu ô lớn

4.

Thời gian thực hiện của một chuỗi tuần tự các lệnh được xác định bằng:

a)

Qui tắc cộng

b)

Qui tắc trừ

c)

Qui tắc nhân

d)

Tất cả đều đúng

5.

Trong qui tắc tổng quát, thời gian thực hiện của mỗi lệnh gán, scanf, printf là:

a)

C(0)

b)

C(1)

c)

O(0)

d)

O(1)

6.

Theo qui tắc cộng, nếu T1(n) và T2(n) là thời gian thực hiện của hai đoạn chương trình P1 và P2; và T1(n) = O(f(n)), T2(n) = O(g(n)) thì thời gian thực hiện của đoạn hai chương trình đó nối tiếp nhau là:

a)

T(n) = O(min(f(n),g(n)))

b)

T(n) = O(max(f(n),g(n)))

c)

T(n) = O(f(n).g(n))

d)

T(n) = max(O(f(n)), O(g(n)))

7.

Có thể tính độ phức tạp của một giải thuật theo nguyên tắc:

a)

Qui tắc cộng

b)

Qui tắc nhân

c)

Qui tắc tổng quát để phân tích một chương trình

d)

Tất cả đều đúng

8.

Xác định thời gian thực hiện của chương trình là:

a)

A. Xác định các bước thực hiện của giải thuật

b)

B. Xác định sai sót trong kết quả của giải thuật

c)

C. Xác định độ phức tạp của giải thuật.

d)

D. Tất cả đều đúng

9.

Khi nói đến độ phức tạp của giải thuật là ta muốn nói đến

a)

Kết quả thu được sau khi thực hiện của chương trình

b)

Hiệu quả của thời gian thực hiện của chương trình

c)

Các bước tính toán trong quá trình thực hiện chương trình

d)

Tất cả đều đúng

10.

Khi nói đến độ phức tạp của giải thuật là ta muốn nói đến

Hàm thể hiện độ phức tạp có dạng thường gặp là:

a)

log2n, n, nlog2n

b)

n2 , n3

c)

2n, 3n , n! , nn

d)

Tất cả đều đúng

11.

Trong qui tắc nhân, Nếu T1(n) và T2(n) là thời gian thực hiện của hai đoạn chương trình P1và P2 và T1(n) = O(f(n)), T2(n) = O(g(n)) thì thời gian thực hiện của  hai đoạn chương trình đó lồng nhau là:

a)

T(n)=O(min(f(n),g(n)))

b)

T(n)=O(max(f(n),g(n)))

c)

T(n) = O(f(n).g(n))

d)

T(n2) = O(f(n).g(n))

12.

Đối với các chương trình gọi chương trình con, thì tính độ phức tạp theo nguyên tắc:

a)

Từ ngoài vào

b)

Từ trong ra

c)

Không có nguyên tắc nào

d)

Tùy thuộc vào độ phức tạp mà lựa chọn cách tính

13.

Đối với các chương trình không gọi chương trình con, thì dùng cách nào để phân tích, tính độ phức tạp:

a)

Quy tắc cộng, quy tắc nhân và quy tắc chung

b)

Phương trình đệ quy, nghiệm của phương trình đệ quy

c)

Độ phức tạp và ký hiệu ô lớn

d)

Phương pháp truy hồi hoặc phương pháp đoán nghiệm.

14.

Lệnh gán x:=15 tốn một hằng thời gian hay O(1), Lệnh đọc dữ liệu READ(x) tốn một hằng thời gian hay O(1).Vậy thời gian thực hiện cả hai lệnh trên nối tiếp nhau là:

a)

O(max(1,1))=O(1)

b)

O(max(0,0))=O(1)

c)

O(min(1,1))=O(1)

d)

O(min(0,0))=O(1)

15.

Trong giải thuật, Ta nói rằng hàm không âm T(n) có tỷ suất tăng (growth rate) f(n) nếu tồn tại các hằng số C và N0 sao cho :

a)

T(n) ≤ Cf(n) với mọi n ≥ N0

b)

T(n) ≥ Cf(n) với mọi n ≥ N0

c)

T(n) ≤ Cf(n) với mọi n ≤ N0

d)

T(n) ≥ Cf(n) với mọi n ≥ N0

16.

Giả sử ta có hai giải thuật P1 và P2 với thời gian thực hiện tương ứng là T1(n) = 100n2 (với tỷ suất tăng là n2) và T2(n) = 5n3 (với tỷ suất tăng là n3 ) . Với n > 20 , giải thuật nào sẽ thực hiện nhanh hơn?

a)

Hai giải thuật P1 và P2 có thời gian thực hiện bằng nhau tương ứng (T2 = T1)

b)

Giải thuật P1 có thời gian thực hiện nhanh hơn giải thuật P2 (T1)

c)

Giải thuật P2 có thời gian thực hiện nhanh hơn giải thuật P1 (T2)

d)

Câu trả lời phụ thuộc vào kích thước dữ liệu vào

17.

Giả sử ta có hai giải thuật P1 và P2 với thời gian thực hiện tương ứng là T1(n) = 100n2 (với tỷ suất tăng là n2) và T2(n) = 5n3 (với tỷ suất tăng là n3 ) . Với n < 20 , giải thuật nào sẽ thực hiện nhanh hơn?

a)

Hai giải thuật P1 và P2 có thời gian thực hiện bằng nhau tương ứng (T2 = T1)

b)

Giải thuật P1 có thời gian thực hiện nhanh hơn giải thuật P2 (T1)

c)

Giải thuật P2 có thời gian thực hiện nhanh hơn giải thuật P1 (T2)

d)

Câu trả lời phụ thuộc vào kích thước dữ liệu vào

18.

Chọn phát biểu đúng trong các phát biểu dưới đây: bằng cách chạy thử 1 thuật toán với 1 bộ dữ liệu, ta có thể:

a)

Khẳng định thuật toán đúng nếu nó cho kết quả đúng

b)

Khẳng định thuật toán sai nếu cho kết quả sai

c)

Khẳng định thuật toán tốt nếu cho kết quả nhanh

d)

Khẳng định thuật toán hiệu quả nếu cho kết quả đúng

19.

Mục đích của việc sắp xếp là:

a)

Sử dụng khả năng truy nhập ngẫu nhiên của bộ nhớ để truy nhập được thực hiện nhanh

b)

Tổ chức lại các mẩu tin sao cho các khóa của chúng được sắp thứ tự tương ứng với quy luật sắp xếp

c)

Tìm kiếm một đối tượng trong một danh sách các đối tượng bằng giải thuật tìm kiếm nhị phân nhanh chóng

d)

Tất cả đều đúng

20.

Nhân tố nào là nhân tố chính ảnh hưởng đến thời gian thực hiện của một giải thuật?

a)

Máy tính

b)

Kiểu lệnh được sử dụng

c)

Chương trình dịch

d)

Kích thước của dữ liệu đầu vào

21.

Để đánh giá một thuật toán ta thường dựa vào một số tiêu chí

a)

Tính hiệu quả

b)

Tính hữu hạn

c)

Tính đúng

d)

 cả a,b,c đều đúng

22.

Để lựa chọn một giải thuật tốt, ta sẽ căn cứ vào tiêu

a)

Giải thuật đúng đắn.

b)

Giải thuật đơn giản.

c)

Giải thuật thực hiện nhanh.

d)

Tất cả đều đúng

23.

Để kiểm tra tính đúng đắn của giải thuật chúng ta có thể

a)

Cài đặt giải thuật đó và cho thực hiện trên máy với một số bộ dữ liệu mẫu

b)

Đo lường thời gian thực hiện của hoạt động trên một máy tính xác định hợp được chọn lọc các dữ liệu vào.

c)

Cài đặt giải thuật đó và cho thực hiện trên máy với một số bộ dữ liệu mẫu rồi lấy kết quả thu được so sánh với kết quả đã biết

d)

Xác định bởi số các lệnh được thực hiện trong một máy tính lý tưởng

24.

Thời gian thực hiện chương trình là

a)

Một hàm của kích thước dữ liệu vào, ký hiệu T(n) trong đó n là kích thước (độ lớn) của dữ liệu vào.

b)

Một hàm của độ dài dữ liệu vào, ký hiệu N(x) trong đó x là độ dài của dữ liệu vào.

c)

Thời gian ngắn nhất để thực hiện chương trình đối với mọi dữ liệu vào có cùng kích thước n.

d)

Thời gian thực hiện chương trình trong trường hợp nhanh nhất trên dữ liệu vào có kích thước n

25.

Ðơn vị đo thời gian thực hiện là:

a)

Đơn vị đo thời gian bình thường giờ, phút ,giây...

b)

Không phải là đơn vị đo thời gian bình thường như giờ, phút, giây....

c)

Được xác định bởi thời gian được thực hiện trong một máy tính lý tưởng

d)

Tất cả đều sai

26.

Thường ta coi T(n) là thời gian thực hiện chương trình trong trường hợp xấu nhất trên dữ liệu vào có kích thước n, tức T(n) là:

a)

Thời gian nhỏ nhất để thực hiện chương trình đối với mọi dữ liệu vào có cùng kích thước T

b)

Thời gian nhỏ nhất để thực hiện chương trình đối với mọi dữ liệu vào có cùng kích thước n

c)

Thời gian lớn nhất để thực hiện chương trình đối với mọi dữ liệu vào có cùng kích thước n.

d)

Thời gian lớn nhất để thực hiện chương trình đối với mọi dữ liệu vào có cùng kích thước T

27.

Trong bài toàn sắp xếp, sắp xếp ngoài là:

a)

Sự sắp xếp dữ liệu được tổ chức trong bộ nhớ trong của máy tính

b)

Là sự sắp xếp được sử dụng khi số lượng đối tượng cần sắp xếp lớn không thể lưu trữ trong bộ nhớ trong mà phải lưu trữ trên bộ nhớ ngoài

c)

Là sự sắp xếp dữ liệu được tổ chức sắp xếp dữ liệu được lưu trữ trong các tập tin

d)

Tất cả đều sai

28.

Trong bài toàn sắp xếp, sắp xếp trong là:

a)

Sự sắp xếp dữ liệu được tổ chức trong bộ nhớ trong của máy tính

b)

Là sự sắp xếp được sử dụng khi số lượng đối tượng cần sắp xếp lớn không thể lưu trữ trong bộ nhớ trong mà phải lưu trữ trên bộ nhớ ngoài

c)

Là sự sắp xếp dữ liệu được tổ chức sắp xếp dữ liệu được lưu trữ trong các tập tin

d)

Tất cả đều sai

29.

Trong giải thuật QuickSort, các bước để tiến hành sắp xếp mảng a[i]..a[j] là:

a)

1. Xác định chốt 
2. Phân hoạch mảng đã cho thành các mảng con a[i]..a[k-1] , a[k] và a[k+1]..a[j] sao cho a[i], .., a[k-1] < a[k] và a[k+1], .., a[j] >a[k] . 
3. Sắp xếp mảng a[i]..a[k-1] ( Đệ quy ) 
4. Sắp xếp mảng a[k+1]..a[j] (Ðệ quy)

b)

1.  Phân hoạch mảng đã cho thành hai mảng con a[i]..a[k-1] và a[k]..a[j]. 
2. Xác định chốt 
3. Sắp xếp mảng a[i]..a[k-1] ( Đệ quy ) 
4. Sắp xếp mảng a[k]..a[j] (Ðệ quy)

c)

1. Phân hoạch mảng đã cho thành hai mảng con 
2. Sắp xếp mảng a[i]..a[k-1] ( Đệ quy ) 
3. Sắp xếp mảng a[k]..a[j] (Ðệ quy) 
4. Xác định chốt

d)

Tất cả đều sai

30.

Chọn phát biểu sai trong các phát biểu sau:

a)

Thuật toán tìm kiếm nhị phân áp dụng được trên dãy sắp xếp.

b)

Thuật toán tìm kiếm nhị phân áp dụng được trên dãy sắp xếp tăng.

c)

Thuật toán tìm kiếm nhị phân áp dụng được trên dãy sắp xếp giảm.

d)

Thuật toán tìm kiếm nhị phân chỉ áp dụng được trên dãy tăng.

31.

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

for i := 1 to n -  1 do

begin

i. m := i;

ii. for j := i + 1 to n do

if K[j] < K[m] then m := j;

iii. if m <> i then

           Begin       

                  X := K[i];

                  K[i] := K[m];

                  K[m] := X;

            End;

     end;

a)

Sắp xếp dãy khóa theo thứ tự tăng dần bằng phương pháp lựa chọn.

b)

Sắp xếp dãy khóa theo thứ tự giảm dần bằng phương pháp lựa chọn.

c)

Sắp xếp dãy khóa theo thứ tự tăng dần bằng phương pháp thêm dần.

d)

Sắp xếp dãy khóa theo thứ tự giảm dần bằng phương pháp thêm dần.

32.

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

void main()

{   int a[50], n, i, k;

k = a[0];

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

if(a[i]>k) k=a[i];

}

Chọn phát biểu đúng trong các phát biểu sau:

a)

a[k]  mang  giá  trị  lớn  nhất  trong   mảng

b)

a[k]  mang  giá  trị  nhỏ  nhất  trong   mảng

c)

k  mang  giá  trị  lớn  nhất  trong   mảng

d)

 k  mang  giá  trị  nhỏ  nhất  trong   mảng

33.

Đoạn mã giả dưới đây mô tả thuật toán gì?

1. k[0] := - ¥;

2. for i := 2 to n do

    begin

    X := k[i]; j := i-1;

           while x < k[j] do

               begin

                         k[j+1] := k[j];

               j := j-1;

               end;

           k[j+1] := X;

    end;

3. return

a)

Sắp xếp dãy khóa theo thứ tự giảm dần bằng phương pháp lựa chọn.

b)

Sắp xếp dãy khóa theo thứ tự tăng dần bằng phương pháp lựa chọn

c)

Sắp xếp dãy khóa theo thứ tự giảm dần bằng phương pháp thêm dần.

d)

Sắp xếp dãy khóa theo thứ tự tăng dần bằng phương pháp thêm dần

34.

Đoạn mã giả dưới đây mô tả thuật toán gì?

1. i:=1; K[n +1] := X;

2. while K[i] <> X  do i := i+1;

3. if i = n +1  then  return (0)

else return (i);

a)

Tìm kiếm nhị phân phần tử có giá trị X

b)

Tìm phần tử nhỏ nhất của  mảng

c)

Tìm kiếm tuyến tính phần tử có giá trị X

d)

Tìm phần tử lớn nhất của  mảng

35.

Giải thuật sắp xếp kiểu nổi bọt

Procedure Bubble_sort(k, n)

{1} for  i := 1 to n-1 do

{2}        for j := n downto i+1 do

{3}           if k[j] < k[j-1] then

                         sw(k[j], k[j-1]);

Thủ tục sw thực hiện nhiệm vụ gì?

a)

Tìm      min(k[j], k[j-1])               

b)

Tìm max(k[j], k[j-1])

c)

Đổi chỗ k[j], k[j-1]

d)

Không có phương án nào đúng.

36.

Trong giải thuật sắp xếp Quicksort, phần tử chốt tốt nhất là:

a)

Phần tử đầu tiên trong dãy.

b)

Phần tử cuối cùng trong dãy.

c)

Phần tử ở giữa dãy.

d)

Phần tử trung vị của dãy.    

37.

Đoạn mã giả dưới đây mô tả thuật toán gì?

1. l :=1;r :=n;

2. while l r  do

begin

 m:=[(l+r)/2];

if  X < K[m] then  r := m - 1

else if X > K[m]  then  l := m+1 

else return (m);

 end;

3.return (0);

a)

Tìm kiếm nhị phân phần tử có giá trị X

b)

Tìm phần tử nhỏ nhất của  mảng

c)

Tìm kiếm tuyến tính phần tử có giá trị X

d)

Tìm phần tử lớn nhất của  mảng

38.

Phép “hòa nhập hai đường” chỉ có thể áp dụng cho 2 dãy con thỏa mãn tính chất:

a)

Đều là dãy tăng dần.

b)

Đều là dãy giảm dần.

c)

Hai dãy đã được sắp xếp

d)

Hai dãy bất kỳ.

39.

Cấu trúc dữ liệu nào tương ứng với LIFO (Last In First Out)

a)

Đều là dãy tăng dần.

b)

Đều là dãy giảm dần.

c)

Hai dãy đã được sắp xếp

d)

Hai dãy bất kỳ.

40.

Cấu trúc dữ liệu nào tương ứng với LIFO (Last In First Out)

a)

Queue

b)

Linked List

c)

Tree

d)

Stack

41.

Cấu trúc dữ liệu nào tương ứng nguyên tắc làm việc FIFO (First In First Out)

a)

Queue

b)

Linked List

c)

Tree

d)

Stack

42.

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ỳ

43.

Thao tác nào dưới đây thực hiện trên ngăn xếp (Stack):

a)

Phép thêm, bớt phần tử  chỉ thực hiện ở một đầu.

b)

Loại bỏ phần tử ở lối sau, thêm phần tử ở lối trước

c)

Thêm phần tử vào lối sau, loại phần tử ở lối trước

d)

Thêm và loại bỏ phần tử tại vị trí  bất kỳ

44.

Chọn định nghĩa đúng nhất về hàng đợi (Queue):

a)

Hàng đợi còn được gọi là danh sách FILO và cấu trúc dữ liệu này còn được gọi cấu trúc FILO (First In Last Out)

b)

Hàng đợi là một danh sách mà trong đó thao tác thêm 1 phần tử vào trong danh sách được thực hiện 1 đầu này và lấy 1 phần tử trong danh sách lại thực hiện bởi đầu kia.

c)

Hàng đợi là một danh sách mà trong đó thao tác thêm 1 phần tử hay hủy một phần tử trong danh sách được thực hiện 1 đầu.

d)

Hàng đợi phải là một danh sách liên kết đơn.

45.

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 ->infor == NULL

c)

L ->next == NULL

d)

L == NULL

46.

Định nghĩa cấu trúc dữ liệu của danh sách liên kết đơn được mô tả như sau:

struct Node

{

int Key;

Node * NextNode;

} OneNode;

Trong đó, khai báo Node * NextNode; dùng để mô tả

a)

Con trỏ trỏ tới phần dữ liệu

b)

Vùng liên kết quản lý địa chỉ phần tử kế tiếp

c)

Con trỏ trỏ tới phần dữ liệu cuối của danh sách

d)

Vùng liên kết quản lý địa chỉ phần tử kế tiếp của phần tử cuối

47.

Định nghĩa nào là đúng với danh sách liên kết

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

d)

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

48.

Lựa chọn câu đúng nhất về danh sách liên kết đôi (Doubly Linked List)

a)

Vùng liên kết của một phần tử trong danh sách liên đôi có 02 mối liên kết với 01 phần tử khác trong danh sách.

b)

Vùng liên kết của một phần tử trong danh sách liên đôi có 01 mối liên kết với 02 phần tử khác trong danh sách.

c)

Vùng liên kết của một phần tử trong danh sách liên đôi có 02 mối liên kết với 02 trước và sau nó trong danh sách.

d)

Vùng liên kết của một phần tử trong danh sách liên đôi có 02 mối liên kết với phần tử đầu và cuối của danh sách.

49.

Chọn định nghĩa đúng nhất đối với cây nhị phân tìm kiếm

a)

Cây nhị phân tìm kiếm là cây nhị phân có thành phần khóa của mọi nút lớn hơn thành phần khóa của tất cả các nút trong cây con trái của nó và nhỏ hơn thành phần khóa của tất cả các nút trong cây con phải của nó.

b)

Cây nhị phân tìm kiếm là cây nhị phân có thành phần khóa của mọi nút nhỏ hơn thành phần khóa của tất cả các nút trong cây con trái của nó và nhỏ hơn thành phần khóa của tất cả các nút trong cây con phải của nó.

c)

Cây nhị phân tìm kiếm là cây nhị phân có thành phần khóa của mọi nút lớn hơn thành phần khóa của tất cả các nút trong cây con trái của nó và lớn hơn thành phần khóa của tất cả các nút trong cây con phải của nó.

d)

Cây nhị phân tìm kiếm chính là cây nhị phân

50.

Nút có giá trị khóa lớn nhất trong cây nhị phân tìm kiếm khác rỗng là:

a)

Nút bên phải cùng

b)

Nút bên trái cùng

c)

 Nút gốc

d)

Tất cả các nút

51.

Trong phép duyệt cây nhị phân có 24 nút theo thứ tự sau, nút gốc có thứ tự:

a)

Thứ 1

b)

Thứ 2

c)

Thứ 23

d)

Thứ 24

52.

Nút có khóa nhỏ nhất trong cây nhị phân tìm kiếm khác rỗng là:

a)

Nút gốc

b)

Tất cả các nút

c)

Nút bên phải cùng

d)

 Nút bên trái  cùng

53.

Cây nhị phân khác rỗng là cây:

a)

Mỗi nút (trừ nút lá) đều có hai nút con

b)

Tất cả các nút đều có nút con

c)

Mỗi nút có không quá 2 nút con

d)

Tất cả các nút đều có nút cha

54.

Nút lá trên cây nhị phân là nút?

a)

Chỉ có 1 nút con duy nhất

b)

Có không quá 2 nút con

c)

Chỉ có con phải

d)

Không có nút con.

55.

Đoạn mã giả dưới đây thực hiện công việc gì?

Function F(n)

1.    If  n = 0 then return 1

2.    Else return n + F(n-1);

a)

Tính n!

b)

Tính tổng n số nguyên đầu tiên.

c)

Tính tổng n số nguyên lẻ đầu tiên.

d)

Tính tổng n số nguyên chẵn đầu tiên

56.

Kết quả nào đúng khi thực hiện giải thuật sau:

long lt(int n)

{

if (n==0) return 1;

else return (2*lt(n-1);

}

a)

lt(12) = 2010

b)

 lt(12) = 1024

c)

lt(7) = 720

d)

lt(6) = 64

57.

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

58.

Viết các phần tử của cây nhị phân tìm kiếm được tạo từ các nút có khóa là các số nguyên: 2, 10, 15, -5, -2, 13, -12 khi thực hiện phép duyệt cây theo thứ tự sau:

a)

-1, -2, -5, 2, 3, 5, 10

b)

-12, -2, -5, 2, 15, 13, 10

c)

-12,  -2,  -5,  13,  15, 10, 2

d)

-2, -12, -15, 3, 10, 5, 2

59.

Viết các phần tử của cây nhị phân tìm kiếm được tạo từ các nút có khóa là các số nguyên: 2, 10, 15, -5, -2, 13, -12 khi thực hiện phép duyệt cây theo thứ tự trước:

a)

2,  -5,  -12, -2,  10,  15, 13

b)

-12,  -5,  -2,  2, 10,  13,  15

c)

-12,  -2,  -5,  13,  15, 10, 2

d)

-2, -12, -15, 3, 10, 5, 2

60.

Hàm mô tả sắp xếp nổi bọt (Bubble Sort) trên mảng M có N phần tử

void BubbleSort(int M[], int N)                                                                                             [1]

{                                                                                                  [2]

int Temp;                                                                             [3]

for (int I = 0; I < N-1; I++)                                                                                [4]

…………………………………..                          [5]

if (M[J] < M[J-1])                                                                        [6]

{                                                                [7]

Temp = M[J];                                                [8]

M[J]  = M[J-1];                                                    [9]

M[J-1] = Temp;                                            [10]

}                                                              [11]

return;                                                                           [12]

}                                                                                             [13]

Lệnh nào sau đây sẽ được đưa vào dòng lệnh thứ [5] của thủ tục

a)

for (int J = N-1; J > I; J++)

b)

for (int J = N; J < I; J--)

c)

for (int J = N-1; J > I; J--)

d)

for (int J = 1; J <N; J++)

61.

Hàm bổ sung phần tử X vào Stack lưu trữ trên mảng S có n phần tử:

PUSH(S, T, X )

[1]. if T  n then return;

[2]. ...............................................

[3]. S [T] := X;

[4.] return

Lệnh nào sẽ đưa vào dòng [2] của giải thuật:

a)

T := T+1;

b)

T := T-1;

c)

 if  T < n then

d)

if  T =0 then.

62.

Cho biểu thức trung tố Q = a + (b*c – (d/e^f)*g)*h, chuyển Q sang biểu thức dạng hậu tố ta được kết quả nào sau đây?

a)

a b c* + d e f  /^ g - h +

b)

a b c d e f ^ / g - h +*

c)

a b c+ d e^ f / g - h * +

d)

a b c d e f ^ / g - h * +

63.

Cho định nghĩa cấu trúc dữ liệu cho danh sách liên kết đơn

typedef struct Node

{

int Data;

Node * Link;

} OneNode;

typedef OneNode L, P;

Hàm dưới đây mô tả thuật toán duyệt danh sách trỏ bởi con trỏ L.

Function Duyet(L);

[1]. ..........................

[2]. while P <> NULL do

    begin

            <Thăm(p);>

              P := Link(P);

   end;

[3]. Return;

Lệnh nào sẽ đưa vào câu lệnh [1] để được giải thuật đúng.

a)

P := 1;

b)

P := NULL;

c)

P := L;

d)

P := Link(L);

64.

Giải thuật sau đây thực hiện công việc gì?

function s(n, a)

1. if  n = 1 then s := a[1]

      else  s :=  s(n-1, a)+ a[n];

2. return;

a)

Tính tổng các phần tử trong dãy a[1], a[2], ..., a[n].

b)

Tính tích các phần tử trong dãy a[1], a[2], ..., a[n].

c)

Tìm phần tử lớn nhất trong dãy.

d)

Tìm phần tử nhỏ nhất trong dãy.

65.

. Tìm câu đúng trong các câu sau:

a)

Việc thêm, bớt các phần tử trong danh sách đặc thuận lợi

b)

Việc truy xuất và tìm kiếm các phần tử của mảng dễ dàng.

c)

Kích thước mảng có thể thay đổi tùy ý.

d)

Sử dụng mảng thuận lợi hơn sử dụng danh sách liên kết.