wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

ctdl-hungnn22

Total questions: 87

Worksheet time: 46mins

Name
Class
Date
1.

Các thuộc tính của một kiểu dữ liệu

a)

Miền giá trị

b)

Tên kiểu dữ liệu

c)

Tất cả các thuộc tính đưa ra

d)

Kích thước lưu trữ

2.

Trong một chương trình có 3 bước thực hiện mà thời gian thực hiện tưng bước lần lượt là

O(n2), O(n3) và O(nlog2n). thời gian thực hiện chương trình sẽ là

Chú ý: (log2n) = Log cơ số 2 của n; n^2 = n mũ 2

a)

O(n^2)+ O(n^3) + O(nlog2n)

b)

O(nlog2n)

c)

O(n^2)

d)

O(n^3)

3.

Thời gian thực hiện các lệnh đơn : gán, đọc, viết là

?

Chú ý: (log2n) = Log cơ số 2 của n; n^2 = n mũ 2

a)

o(1)

b)

o(1)

c)

o(1)

d)

o(1)

4.

Đặc trưng nào của thuật toán thể hiện: 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

a)

Tính xác định

b)

Tất cả ý nêu ra

c)

Tính dừng

d)

Tính khả thi

5.

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)

a)

O(nlog2n),O(n),O(log2n),O(1)

b)

O(log2n),O(n),O(nlog2n),O(1)

c)

O(1),O(nlog2n),O(n),O(log2n)

d)

O(1),O(log2n),O(n),O(nlog2n)

6.

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

a)

Thuật toán phải dừng lại sau một số hữu hạn các bước cần thực hiện

b)

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

c)

Tất cả ý nêu ra

d)

Mỗi thuật toán có bộ dữ liệu vào ,ra tương ứng

7.

Chọn câu trả lời đúng nhất về thuật toán

a)

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.

b)

Thuật toán cần có một hoặc nhiều dữ liệu ra (output) ,dữ liệu vào (input).

c)

Thuật toán là nòng cốt của chương trình

d)

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

8.

Nếu hàm được gọi trước khi nó định nghĩa thì điều kiện là gì?

a)

Hàm chỉ trả về kiểu dữ liệu boolean

b)

Kiểu trả về của hàm phải là kiều void

c)

Kiểu đầu vào của hàm phải là kiểu void

d)

Trước khi gọi hàm nó phải được khai báo

9.

Dữ liệu kí tự bao gồm

a)

Các ký tự bản vẻ.

b)

Các kí tự số chữ số.

c)

Các kí tự chữ cái.

d)

Các kí tự đặc biệt.

10.

Mảng là

a)

Một nhóm phần tử có thể có kiểu riêng và tên gọi riêng cho mỗi phần tử.

b)

Là một kiểu dữ liệu cơ sở đã định sẵn của ngôn ngữ lập trình C.

c)

Một nhóm phần tử có cùng kiểu và chung tên gọi

d)

Một nhóm phần tử có thể có kiểu riêng và chung tên gọi.

11.

Kích thước của mảng là hay

a)

Kích thước bộ nhớ sẽ cấp phát cho mảng

b)

Số phần tử tối đa của mảng -1

c)

Số phần tử tối đa của mảng

12.

Biến con trỏ có thể chứa

a)

Giá trị của một biến khác.

b)

Địa chỉ vùng nhớ của một biến khác.

c)

Cả a và b đều sai.

d)

Cả a và b đều đúng.

13.

Char S[20]="aaaaaea";

char* p=strstr(S,"e");

Nếu địa chỉ của S là 1000, thì giá trị của p là bao nhiêu là

a)

1000

b)

1002

c)

1005

d)

1006

14.

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

int dequy(int a,int b)

{

if(a==b)

return a;

else

{

if(a > b)

a=a-b;

else

b=b-a;

}

return dequy(a,b);

}

Cho biết chức năng của đoạn chương trình trên

a)

Tìm ước số chung nhỏ nhất của 2 số nguyên a, b.

b)

Tìm ước số chung trung bình của 2 số nguyên a, b.

c)

Tìm ước số chung lớn nhất của 2 số nguyên a, b.

d)

Đáp án khác

15.

Cho giải thuật đệ quy

1.F(1)=F(2)=1

2.F(k)=F(k-1)+F(k-2) nếu K > 2

Hãy tính F(6):

?

a)

8

b)

9

c)

10

16.

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

long dequy(long n,long &max)

{

long m;

if(n==0)

return max;

else

{

m=n%10;

if(m > max)

max=m;

}

return dequy(n/10,max);

}

Cho biết chức năng của đoạn chương trình trên

a)

Tìm chữ số có giá trị lớn nhất của số nguyên dương n

b)

Đáp án khác

c)

Tìm chữ số có giá trị nhỏ nhất của số nguyên dương n

d)

Tìm chữ số có giá trị trung bình của số nguyên dương n

17.

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

long Tong(unsigned n)

{

if(n==0)

return 1;

return n+Tong(n-2);

}

Cho biết chức năng của đoạn chương trình trên dùng để tính cho biểu thức nào

a)

S(n)=1+2+4+…+(2.n+1) với n > =0

b)

S(n)=2+4+6+…+(2.n+1) với n > =0

c)

Đáp án khác

d)

S(n)=1+3+5+…+(2.n+1) với n > =0

18.

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

int dequy(int n)

{

if(n==0)

return 0;

return 1+dequy(n/10);

}

Cho biết chức năng của đoạn chương trình trên

a)

Tìm phần nguyên của n

b)

Tìm số chia hết cho n

c)

Tìm phần lẻ của n

d)

Đếm số lượng chữ số nguyên dương n

19.

Ưu điểm của thủ tục đệ quy là

a)

Tất cả các đáp trên

b)

Chương trình dễ hiểu

c)

Viết chương trình dễ dàng

d)

Chương trình ngắn ngọn

20.

Dãy số Fibonacci bắt nguồn từ bài toán cổ về việc sinh sản của các cặp thỏ. Bài toán

được đặt ra như sau:

Các con thỏ không bao giờ chết.

Hai tháng sau khi ra đời một cặp thỏ mới sẽ sinh ra một cặp thỏ con.

Khi đã sinh con rồi thì cứ mỗi tháng tiếp theo chúng lại sinh được một cặp con mới.

Giả sử bắt đầu từ một cặp thỏ mới ra đời thì đến tháng thứ 5 sẽ có bao nhiêu cặp?

a)

10 cặp

b)

9 cặp

c)

12 cặp

d)

5 cặp

21.

Cho giải thuật đệ quy:

1.F(0,a)=F(a,0)=a (0 là số không)

2.F(m,n)=F(m-n,n) nếu m > =n

3.F(m,n)=F(m,n-m) Nếu m=30, n = 75 thì sau khi thực hiện giải thuật ta được giá trị là

?

a)

14

b)

15

c)

16

d)

17

22.

Cho mảng 2 chiều A={a (i j )}, mảng có m hàng, n cột, và được lưu trữ liên tiếp. Công

thức tính địa chỉ của phần tử a (i j)

L{ F(i j )} = L(0) + C [(j - 1)m + (i - 1)]

Dùng trong trường hợp

a)

Ưu tiên cột

b)

Ưu tiên số lượng

c)

Ưu tiên hàng

d)

Trong mọi trường hợp

23.

Chọn câu đúng nhất cho hàm Swap?

a)

Void Swap(int X, intY) { int Temp = X; X = Y; Y = Temp; }

b)

Void Swap(int *X, int *Y){ int Temp = X; X = Y; Y = Temp; }

c)

Void Swap(float X, floatY){ int Temp = X; X = Y; Y = Temp; }

d)

Void Swap(int &X, int &Y) { int Temp = X; X = Y; Y = Temp; }

24.

Độ phức tạp của giải thuật tìm kiếm nhị phân là:

a)

O(log4N)

b)

O(log5N)

c)

O(log2N)

d)

O(log3N)

25.

Trong số các phép toán sau đây, phép toán nào không được dùng đối với mảng:

a)

Lưu trữ mảng

b)

Tìm kiếm trên mảng

c)

Bổ xung một phần tử vào mảng

d)

Tạo mảng

26.

Các tiêu chuẩn đánh giá cấu trúc dữ liệu. Để đánh giá một cấu trúc dữ liệu chúng ta

thường dựa vào các tiêu chí nào

a)

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

b)

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

c)

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

d)

Tất cả đáp án trên là đúng

27.

Độ phức tạp của giải thuật tìm kiếm tuần tự là:

a)

O(N-2)

b)

O(N-3)

c)

O(N-1)

d)

O(N)

28.

Ngôn ngữ lập trình nào dưới đây là ngôn ngữ lập trình có cấu trúc?

a)

Ngôn ngữ Assembler.

b)

Ngôn ngữ Cobol.

c)

Ngôn ngữ C

d)

Pascal

29.

Cho dãy số sau: 14 32 10 43 57 87 55 36 97 11. Áp dụng phương pháp tìm kiếm tuần

tự, sau bao nhiều lần thực hiện phép so sánh ta sẽ tìm thấy số 43?

a)

3 lần

b)

2 lần

c)

5 lần

d)

4 lần

30.

Phương pháp sắp xếp nhanh (Quick sort) chính là phương pháp:

a)

Phân đoạn

b)

Chèn

c)

Trộn

d)

Vun đống

31.

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) sau lần lặp đầu

tiên của giải thuật ta có kết quả:{0 4 2 8 5 9 6 1 3 7}. Dãy số thu được sau lần lặp thứ bốn là:

a)

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

b)

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

c)

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

d)

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

32.

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) sau lần lặp đầu tiên của giải thuật ta có kết quả:{0 4 2 8 5 9 6 1 3 7}. Dãy số thu được sau lần lặp thứ ba là:

a)

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

b)

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

c)

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

d)

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

33.

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) sau lần lặp

đầu tiên của giải thuật ta có kết quả: {0 1 3 6 5 7 9 2 8 4}. Dãy số thu được sau lần lặp thứ tư là:

a)

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

b)

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

c)

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

d)

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

34.

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) sau lần lặp

đầu tiên của giải thuật ta có kết quả: {0 1 3 6 5 7 9 2 8 4}. Dãy số thu được sau lần lặp thứ năm là:

a)

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

b)

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

c)

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

d)

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

35.

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) tăng dần, sau

lần lặp đầu tiên của giải thuật ta có kết quả: {0 1 3 6 5 7 9 2 8 4}. Dãy số thu được sau lần lặp thứ

tám là:

a)

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

b)

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

c)

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

d)

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

36.

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) sau lần lặp đầu

tiên của giải thuật ta có kết quả:{0 4 2 8 5 9 6 1 3 7}. Dãy số thu được sau lần lặp thứ tám là:

a)

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

b)

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

c)

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

d)

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

37.

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) sau lần lặp đầu tiên của giải thuật ta có kết quả:{0 4 2 8 5 9 6 1 3 7}. Dãy số thu được sau lần lặp thứ chín là:

a)

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

b)

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

c)

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

d)

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

38.

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

a)

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 khoá).

b)

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.

c)

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

d)

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.

39.

Cho dãy số sau: 40 25 75 15 65 55 90 30 95 85. Áp dụng phương pháp sắp xếp lựa chọn, sau lượt 3

dãy sẽ được sắp xếp lại như thế nào?

a)

15 25 30 40 65 55 90 75 95 85

b)

15 25 75 40 65 55 90 30 85 95

c)

15 75 25 40 65 55 90 30 95 85

d)

15 25 75 40 55 65 90 30 95 85

40.

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) sau lần lặp đầu

tiên của giải thuật ta có kết quả: {(0 1 2) 3 (5 4 8 6 9 7)}. Dãy số thu được sau lần lặp thứ bốn là:

a)

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

b)

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

c)

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

d)

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

41.

Ý tưởng phương pháp sắp xếp Trộn (Merge sort) là:

a)

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

b)

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 khoá).

c)

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

d)

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.

42.

Ý tưởng phương pháp sắp xếp nổi bọt (bubble sort) là:

a)

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)

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ương tự đối với phần tử nhỏ thứ hai,ba...

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

43.

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) sau lần lặp đầu

tiên của giải thuật ta có kết quả:{0 4 2 8 5 9 6 1 3 7}. Dãy số thu được sau lần lặp thứ hai là:

a)

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

b)

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

c)

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

d)

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

44.

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) sau lần lặp đầu tiên của giải thuật ta có kết quả: {(0 1 2) 3 (5 4 8 6 9 7)}. Dãy số thu được sau lần lặp thứ ba là:

a)

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

b)

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

c)

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

d)

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

45.

Trong các cấu trúc dữ liệu sau, đâu là dữ liệu trừu tượng?

a)

Cấu trúc dữ liệu kiểu hàng đợi(QUEUE)

b)

Tất cả cấu trúc

c)

Cấu trúc dữ liệu dạng StacK

d)

Cấu trúc dữ liệu dạng danh sách(LIST)

46.

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

char S[] = “Helen”;

char *p = S;

char c = *(p+3);

Giá trị của c sẽ là

a)

a

b)

b

c)

d

d)

e

47.

Danh sách tuyến tính là

a)

Không có đáp án đúng

b)

Danh sách tuyến tính là một danh sách rỗng

c)

Danh sách có dạng (a1, a2, ..., an)

d)

Danh sách mà quan hệ lân cận giữa các phần tử được hiển thị ra thì được là danh

sách tuyến tính

48.

Chọn câu đúng?

a)

“struct” là sự kết hợp của nhiều thành phần không có thể có kiểu khác nhau.

b)

“struct” là sự kết hợp của nhiều thành phần có thể có kiểu khác nhau.

c)

“struct” là một kiểu dữ liệu do người dùng định nghĩa bao gồm nhiều thành phần

có kiểu cùng nhau.

d)

“struct” là một kiểu dữ liệu do người dùng định nghĩa bao gồm nhiều thành phần

có kiểu khác nhau.

49.

Định nghĩa danh sách tuyến tính Hàng đợi (Queue)?

a)

Hàng đợi là kiểu danh sách tuyến tính trong đó, phép bổ sung một phần tử vào

hàng đợi hay loại bỏ được thực hiện ở một đầu danh sách gọi là đỉnh (Top)

b)

Hàng đợi là kiểu danh sách tuyến tính trong đó, phép bổ sung một phần tử vào

hàng đợiđượ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.

c)

Hàng đợi là kiểu danh sách tuyến tính trong đó, phép bổ sung một phần tử vào

hàng đợi được thực hiện ở một đầu, gọi là lối sau (rear) và phép loại bỏ một phần

tử được thực hiện ở đầu kia, gọi là lối trước (front)

d)

Tất cả đều đúng

50.

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ỏ trỏ tới lối trước

của Q, R là con trỏ trỏ tới lối sau của Q. Điều kiện F=R=0 nghĩa là:

a)

Đặt phần tử đầu và phần tử cuối của Queue bằng 0

b)

Queue rỗng

c)

Kiểm tra chỉ số trước và chỉ số sau của Queue có bằng nhau không.

d)

Queue tràn

51.

Hàng đợi còn được gọi là danh sách kiểu

a)

FIFO

b)

LIFO

c)

FILO

d)

LOLO

52.

Ngăn xếp được viết tắt bởi sự kết hợp các từ sau

a)

FB

b)

FO

c)

FA

d)

LI

53.

Dùng STACK để lưu trữ số nhị phân có giá trị bằng số thập phân 215 ta có kết quả: ( số bên trái vào

trước số bên phải )

a)

11101011

b)

10111101

c)

11110011

d)

11001110

54.

Khi bổ sung một phần tử mới vào hàng đợi cần kiểm tra thì ...

a)

Hàng đợi có rỗng không

b)

Hàng đợi có đầy không

c)

Hàng đợi có bao nhiêu phần tử

d)

Hàng đợi có bao nhiêu giá trị bằng 0

55.

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ứ 4 trong Stack ta phải làm thế nào?

a)

PUSH(25)

b)

POP(25),

c)

PUSH(23)

d)

POP(23)

56.

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?

a)

F không thay đổi, R=R+1

b)

F không thay đổi, R=R-1

c)

F=F-1, R không thay đổi

d)

F=F+1, R không thay đổi

57.

Cấu trúc dữ liệu nào tương ứng với LIFO

a)

Linked List

b)

Queue

c)

Tree

d)

Stack

58.

Để thêm một đối tượng x bất kỳ vào Stack, thao tác thường dùng là:

a)

PUSH(x).

b)

TOP(x).

c)

POP(x).

d)

EMPTY(x).

59.

Để tạo danh sách liên kết, theo bạn sinh viên nào dưới đây là khai báo đúng cấu trúc tự trỏ sẽ được dùng:

1- Sinh viên 1:

struct SV{char ht[25]; int tuoi; struct Sv *tiep;};

2- Sinh viên 2:

typedef

struct SV node;

struct SV{char ht[25]; int tuoi; node *tiep;};

3- Sinh viên 3:

typedef

struct SV{char ht[25]; int tuoi; struct SV *tiep;} node;

a)

4

b)

3

c)

2

d)

1

60.

Danh sách khai báo bằng con trỏ. Thủ tục sau có chức năng gì?"

void MnullList ( List Header)

{

New (Header);

Header.Next : = Nil;

}

a)

Thủ tục khởi tạo danh sách rỗng

b)

Thủ tục tạo mới danh sách

c)

Thủ tục đưa con trỏ vào biến Nil

61.

Cài đặt danh sách bằng con trỏ có nghĩa là

a)

Dùng con trỏ quản lí các phần tử của mảng theo phương thức bất kì. Để một phần tử

có thể chỉ đến một phần tử khác ta xem mỗi ô là một Record gồm có 2 trường :

Trường Elements để giữ nội dung của phần tử trong danh sách. Trường Next là một

con trỏ giữ địa chỉ của ô kế tiếp.

b)

Không có đáp án đúng

c)

Dùng một mảng (array) để lưu trữ liên tiếp các phần tử của danh sách bắt đầu từ vị trí

đầu tiên của mảng. Khai báo bản ghi gồm 2 trường:Trường Elements để giữ nội dung

của phần tử trong danh sách. Trường Next là một con trỏ giữ địa chỉ của ô kế tiếp.

d)

Dùng con trỏ để liên kết các phần tử của danh sách theo phương thức ai chỉ đến ai+1.

Để một phần tử có thể chỉ đến một phần tử khác ta xem mỗi ô là một Record gồm có

2 trường : Trường Elements để giữ nội dung của phần tử trong danh sách. Trường

Next là một con trỏ giữ địa chỉ của ô kế tiếp

62.

Danh sách khai báo bằng con trỏ. Hàm sau có chức năng gì?

Boolean EList( ListvHeader )

{

Elist = (Header.Next = Nil);

}

a)

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

b)

Tạo mới một danh sách

c)

Kiểm tra danh sách rỗng

d)

Đưa con trỏ về cuối danh sách.

63.

Thành phần dữ liệu của danh sách liên liên kết .....

a)

Lưu thông tin về bản thân phần tử trước

b)

Lưu thông tin phần tử đứng sau

c)

Lưu thông tin về bản thân phần tử

d)

Không có đáp án đúng

64.

Cho một danh sách móc nối với các phần tử trong danh sách có kiểu S1 được định nghĩa như sau:

struct S1{ int info; struct S1 * next;} *head;

Biết con trỏ “head” lưu địa chỉ của phần tử đầu tiên trong danh sách. Cho biết mục đích của câu lệnh sau:

{ head- > next- > next- > info=111;};

a)

Câu lệnh bị lỗi.

b)

Giá trị “info” trong phần tử thứ 2 đã bị thay đổi.

c)

Giá trị “info” trong phần tử bất kì đã bị thay đổi.

d)

Giá trị “info” trong phần tử thứ 3 đã bị thay đổi. 

65.

Danh sách liên kết vòng là gì?

1. Danh sách liên kết vòng (Circular Linked List) là một biến thể của Danh sách liên kết (Linked List), trong

đó phần tử đầu tiên trỏ tới phần tử cuối cùng và phần tử cuối cùng trỏ tới phần tử đầu tiên.,

2. Danh sách liên kết vòng (Circular Linked List) là một biến thể của Danh sách liên kết (Linked List), trong

đó phần tử đầu tiên trỏ tới phần tử đầu tiên và phần tử cuối cùng trỏ tới phần tử cuối.

a)

1 đúng, 2 sai

b)

1 sai, 2 đúng

c)

1 sai, 2 sai

d)

1 đúng, 2 đúng

66.

Để dùng danh sách liên kết, xét hai khai báo sau(cần 1KB để lưu dữ thông tin về một sinh viên):

1- Khai báo 1: struct SV{ thongtin; struct SV *tiep;};

2- Khai báo 2: struct SV {thongtin}; struct DS{struct SV* sv; struct DS* tiep;};

(Với “thongtin” là một thành phần dữ liệu của cấu trúc); Chọn câu đúng nhất trong các câu sau:

a)

Khai báo 2 sẽ giúp chương trình chạy nhanh hơn khi duyệt danh sách.

b)

Khai báo 1 sẽ giúp tiết kiệm câu lệnh hơn khi viết hàm đổi vị trí 2 sinh viên.

c)

Khai báo 2 sẽ giúp chương trình chạy nhanh hơn khi đổi vị trí 2 sinh viên. 

d)

Khai báo 1 tốn nhiều bộ nhớ hơn khai báo 2.

67.

Định nghĩa cấu trúc dữ liệu dạng danh sách (LIST)?

a)

Danh sách là tập hợp các phần tử khác kiểu

b)

Danh sách là kiểu dữ liệu mảng

c)

Danh sách là kiểu con trỏ

d)

Danh sách là một tập hợp các phần tử có cùng một kiểu mà ta gọi là kiểu phần tử

(ElementType).

68.

Cho một ma trận thưa, hàng 1 có 2 phần tử F(11) , F(12) . Từ hàng thứ 2 chỉ có 3 phần tử F(k , k-1) ; F(k, k)

; F(k, k+1) , hàng cuối cùng cũng chỉ có 2 phần tử : F(n, n-1) ; F(n , n)

Hãy lưu trữ liên tiếp ưu tiên hàng của ma trận này thành một mảng một chiều : thí dụ F(11) là b(1) ; F(12)

là b(2) ; F(21) là b(3) …

Nếu F(67) thì b

a)

16

b)

17

c)

18

d)

15

69.

Danh sách tuyến tính là

a)

Danh sách dạng được lưu dưới dạng mảng.

b)

Danh sách mà quan hệ lân cận giữa các phần tử được xác định. 

c)

Danh sách tuyến tính là một danh sách có dạng (a1, a2, ..., an).

d)

Danh sách tuyến tính là một danh sách rỗng.

70.

Cho một danh sách móc nối với các phần tử trong danh sách có kiểu S1 được định nghĩa như sau:

struct S1{int info; struct S1 *next;} *head;

Biết con trỏ “*head” lưu địa chỉ của phần tử đầu tiên trong danh sách. Nhóm câu lệnh nào sau đây thêm

một phần tử vào đầu danh sách:

a)

P- > next=head; head- > p; head=p- > next;

b)

Head- > next=p; p=head;

c)

Không có câu nào đúng.

d)

P- > next=head; head=p; 

71.

Cho một danh sách móc nối với các phần tử trong danh sách có kiểu S1 được định nghĩa như sau:

struct S1{ int info; struct S1 * next;} *head;

Biết con trỏ “head” lưu địa chỉ của phần tử đầu tiên trong danh sách. Cho biết mục đích của câu lệnh sau:

{(head- > next)=(head- > next)- > next;};

a)

Loại bỏ phần tử thứ 2 ra khỏi danh sách. 

b)

Loại bỏ phần tử thứ nhất ra khỏi danh sách.

c)

Loại bỏ phần tử thứ 3 ra khỏi danh sách.

d)

Câu lệnh bị lỗi.

72.

Dấu hiệu nào dưới đây cho biết node p của một danh sách liên kết đơn là node cuối cùng bên phải:

a)

(p- > next!=NULL);

b)

(p- > info!=NULL);

c)

(p- > next==NULL);

d)

(p- > info==NULL);

73.

Có bao nhiêu loại hoạt động cơ bản trên danh sách liên kết vòng

a)

1

b)

2

c)

3

d)

4

74.

Tính chất nào sau đây là tính chất của cây nhị phân tìm kiếm:

a)

Mọi khóa thuộc cây con trái nút đó đều bằng khóa cây con phải nút đó

b)

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

c)

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

d)

Mọi khóa thuộc cây con trái nút đó đều nhỏ hơn khóa ứng với nút đó

75.

Cho dãy khoá 42,23,74,11,65,58,94,36 Lần lượt đưa dãy khoá trên vào cây nhị phân tìm kiếm. Bây giờ ta muốn tìm kiếm xem trong dãy khoá trên có khoá 105 không thì phải làm bao nhiêu phép so sánh:

a)

1

b)

2

c)

3

d)

4

76.

Một danh sách trong đó tất cả các thao tác chèn thực hiện tại một đầu, thao tác xóa được thực hiện tại đầu kia của danh sách gọi là:

a)

Queue

b)

Stack.

c)

Cây nhị phân.

77.

Cho cây nhị phân T, nút có địa chỉ 19 thì có nút cha ở địa chỉ nào

a)

5

b)

6

c)

7

d)

9

78.

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)

71

b)

72

c)

73

d)

74

79.

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à

a)

I+1

b)

I-1

c)

2*i + 1

d)

2*i

80.

Mỗi nút trong cây có tối đa:

a)

3 nút con

b)

Nhiều nút con

c)

1 nút con

d)

2 nút con

81.

Cho cây nhị phân T có chiều cao là 6( nút gốc có mức 1) . Số nút tối đa của cây là:

a)

31

b)

63

c)

90

d)

125

82.

Cho cây nhị phân T, phép duỵêt cây theo thứ tự giữa cho kết quả DBHEAFICGJ . Nếu duyệt theo thứ tự sau ta có kết quả : DHEBIFJGCA . Hãy cho biết các nút của cây con phải

a)

FBHE

b)

HEFI

c)

ICGH

d)

FICGJ

83.

Độ cao của cây là gì?

a)

Mức lớn nhất của cây

b)

Cấp lớn nhất của nút

c)

Số cây con của cây

d)

Số lượng nút của cây

84.

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)

DHEG

b)

BDHE

c)

DEH

d)

FIHE

85.

Cây nhị phân tìm kiếm là:

a)

Cây nhị phân mà mỗi nút trong cây đều thoả 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ó

b)

Là cây nhị phân đầy đủ.

c)

Cây nhị phân thoả tính chất heap

d)

Cây nhị phân mà mỗi nút trong cây đều thoả tính chất: giá trị của nút cha lớn hơn giá trị của hai nút con.

86.

Trong biểu diễn dữ liệu dưới dạng cây, cấp của cây chính

a)

Cấp cao nhất của nút gốc

b)

Cấp cao nhất của một nút trên cây

c)

Tổng số nút trên cây

d)

Cấp cao nhất của nút lá

87.

Duyệt cây nhị phân theo thứ tự trước được thực hiện theo thứ tự:

a)

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

b)

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.

c)

Thăm 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

d)

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.