wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Cấu trúc dữ liệu mảng

Total questions: 27

Worksheet time: 14mins

Name
Class
Date
1.

Trong các phát biểu về những ưu điểm của cấu trúc dữ liệu mảng, phát biểu nào dưới đây là đúng nhất?

a)

Việc thêm bớt các phần tử trong mảng được thực hiện thường xuyên

b)

Việc truy xuất và tìm kiếm các phần tử của mảng tương đối dễ dàng thông qua chỉ số của mảng

c)

Mật độ sử dụng bộ nhớ của mảng là rời rạc.

d)

Mảng là một tập hợp không cố định các phần tử có cùng kiểu dữ liệu

2.

Trong các phát biểu về những nhược điểm của cấu trúc dữ liệu mảng, phát biểu nào dưới đây là đúng nhất?

a)

Việc thêm bớt các phần tử trong mảng có nhiều khó khăn do phải di dời các phần tử khác

b)

Việc truy xuất và tìm kiếm các phần tử của mảng phải theo thứ tự tuần tự

c)

Mật độ sử dụng bộ nhớ của mảng là rời rạc.

d)

Mảng là một tập hợp không cố định các phần tử có cùng kiểu dữ liệu

3.

Trong các phát biểu về những ưu điểm của cấu trúc dữ liệu mảng, phát biểu nào dưới đây là đúng nhất?

a)

Việc bổ sung, loại bỏ các phần tử thường xuyên được tác động lên mảng

b)

Việc truy xuất và tìm kiếm các phần tử của mảng được thực hiện tuần tự

c)

Mật độ sử dụng bộ nhớ của mảng là tối ưu tuyệt đối.

d)

Mảng là một tập hợp các phần tử linh hoạt về kích thước.

4.

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

a)

Tạo mảng

b)

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

c)

Lưu trữ mảng

d)

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

5.

Khi nói về nhược điểm của mảng, phát biểu nào dưới đây là đúng nhất?

a)

Truy cập vào các phần tử của mảng phải thực hiện tuần tự

b)

Việc tạo lập các phần tử của mảng rất khó khăn

c)

Mật độ sử dụng bộ nhớ của mảng là rời rạc.

d)

Không linh hoạt về kích thước.

6.

Trong các phát biểu dưới đây về những nhược điểm của mảng, phát biểu nào KHÔNG đúng?

a)

Không linh hoạt về kích thước.

b)

Mật độ sử dụng bộ nhớ của mảng là rời rạc.

c)

Việc bổ sung các phần tử rất khó khăn do phải di dời các phần tử khác

d)

Việc loại bỏ các phần tử rất khó khăn do phải di dời các phần tử khác

7.

Trong các phát biểu dưới đây về những ưu điểm của mảng, phát biểu nào KHÔNG đúng?

a)

Là cấu trúc dữ liệu dễ sử dụng

b)

Tốc độ truy cập các phần tử cao

c)

Các thao tác bổ sung, loại bỏ các phần tử được thực hiện dễ dàng.

d)

Mật độ sử dụng bộ nhớ của mảng là tối ưu tuyệt đối

8.

Điểm nào dưới đây nói về sự khác nhau giữa mảng và danh sách?

a)

Khác với mảng, danh sách là một tập sắp thứ tự nhưng bao gồm một số biến động các phần tử

b)

Khác với mảng, danh sách là một tập sắp thứ tự cố định số lượng phần tử

c)

Khác với mảng, phép toán bổ sung, loại bỏ các phần tử không được tác động lên danh sách.

d)

Mảng truy cập các phần tử theo thứ tự, còn danh sách truy cập ngẫu nhiên

9.

Cho mảng 2 chiều: A=(aij) i là chỉ số hàng, j là chỉ số cột. Mảng A có 7 hàng, 9 cột. Lưu trữ liên tiếp mảng A ưu tiên hàng. Nếu phần tử a11 có địa chỉ 70, mỗi phần tử chiếm 5 ô thì phần tử a7,9 có địa chỉ là bao nhiêu?

a)

461

b)

460

c)

390

d)

380

10.

Cho mảng một chiều A=(a1,a2,...,an) được lưu trữ liên tiếp. Giả sử mỗi phần tử của mảng chiếm 3 ô và phần tử đầu tiên a1 có địa chỉ 23 thì phần tử a7 có địa chỉ là bao nhiêu?

a)

52

b)

15

c)

41

d)

70

11.

Cho mảng 2 chiều : A=(aij) i là chỉ số hàng, j là chỉ số cột. Mảng A có 8 hàng, 9 cột. Lưu trữ liên tiếp mảng A ưu tiên hàng. Nếu phần tử a11 có địa chỉ 50, mỗi phần tử chiếm 3 ô thì phần tử a57 có địa chỉ là bao nhiêu?

a)

148

b)

152

c)

158

d)

176

12.

Cho mảng 2 chiều: A=(aij). Mảng có m hàng, n cột. Công thức tính địa chỉ của phần tử aij trong việc lưu trữ liên tiếp là L(ai j) = L0 + C [(i - 1)n + (j - 1)] Dùng trong trường hợp nào?

a)

Ưu tiên hàng

b)

Ưu tiên cột

c)

Ưu tiên đường chéo chính

d)

Mọi trường hợp

13.

Dùng phương pháp lưu trữ liên tiếp để lưu trữ một ma trận (mảng hai chiều) có nhược điểm lớn nhất là gì?

a)

Khó tìm kiếm

b)

Cần một lượng lớn ô nhớ

c)

Lãng phí ô nhớ khi ma trận thưa

d)

Khó sắp xếp

14.

Cho một ma trận thưa, hàng 1 có 2 phần tử a1,1 , a1,2. Từ hàng thứ 2 chỉ có 3 phần tử ak,k-1; ak,k; ak,k+1, hàng cuối cùng cũng chỉ có 2 phần tử : an,n-1; an,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ụ a11 là b1; a1,2 là b2 ; a2,1 là b3 … Tính bk nếu phần tử ai,j là a6,7?

a)

b17

b)

b18

c)

b19

d)

b20

15.

Cho mảng một chiều A=(a1,a2,...,an) và được lưu trữ liên tiếp. Giả sử mỗi phần tử của mảng chiếm 4 ô và phần tử đầu tiên a1 có địa chỉ 11 thì phần tử a9 có địa chỉ là bao nhiêu?

a)

52

b)

43

c)

41

d)

37

16.

Cho mảng 2 chiều : A=(aij) i là chỉ số hàng, j là chỉ số cột. Mảng A có 6 hàng, 6 cột. Lưu trữ liên tiếp mảng A ưu tiên hàng. Nếu phần tử a11 có địa chỉ 65, mỗi phần tử chiếm 4 ô thì phần tử a6,5 có địa chỉ là bao nhiêu?

a)

201

b)

200

c)

181

d)

180

17.

Các phần tử trong danh sách được bố trí như thế nào?

a)

Các phần tử được bố trí rời rạc

b)

Các phần tử được bố trí ngẫu nhiên

c)

Các phần tử sắp xếp theo thứ tự tăng dần

d)

Các phần tử được sắp tuyến tính

18.

Điền vào dấu ba chấm cho phát biểu sau: Cho n là độ dài của danh sách, với n>1, khi đó ta nói phần tử ai sẽ…

a)

"đi sau" phần tử ai+1.

b)

"đi trước" phần tử ai-1.

c)

"đi trước" phần tử ai+1.

d)

là phần tử thứ i+1 của danh sách

19.

Khi cài đặt danh sách bằng mảng, khai báo một danh sách như sau: #define MaxLength ... typedef ... ElementType; typedef int Position; typedef struct { ElementType Elements[MaxLength]; Position Last; } List; trong đó, khai báo Position Last; được dùng để mô tả gì?

a)

Giữ độ dài của danh sách

b)

Chỉ phần tử cuối cùng trong danh sách

c)

Chỉ phần tử đầu tiên trong danh sách

d)

Chỉ vị trí các phần tử trong danh sách

20.

Trong các câu lệnh dưới đây, câu lệnh nào có chức năng khởi tạo danh sách rỗng?

a)

L.Last = Null;

b)

L.Last=0;

c)

L->Last=0;

d)

L  Last = Null;

21.

Trong các câu lệnh dưới đây, câu lệnh nào có chức năng kiểm tra danh sách rỗng?

a)

L.Last !=0;

b)

L.Last=0;

c)

L->Last=0;

d)

L  Last != 0;

22.

Trong các điều kiện dưới đây, điều kiện nào KHÔNG cho phép chèn thêm một phần tử vào mảng danh sách?

a)

Mảng rỗng

b)

Mảng đầy

c)

Phần tử chèn vào không đúng vị trí

d)

Không tìm thấy vị trí cần chèn

23.

Đoạn chương trình dưới đây mô tả thuật toán chèn thêm 1 phần tử vào mảng danh sách:

1. for(Q=(L->Last-1)+1;Q>P-1;Q--)

1.1. L->Elements[Q]=L->Elements[Q-1];

2.   L->Elements[P-1]=X;

3.   L->Last++;

Câu lệnh 1 và 1.1 có chức năng là gì ?

a)

Dời các phần tử từ vị trí p đến cuối danh sách sang phải 1 vị trí

b)

Dời các phần tử từ vị trí p đến cuối danh sách sang trái 1 vị trí

c)

Dời các phần tử từ vị trí p về đầu danh sách sang phải 1 vị trí

d)

Dời các phần tử từ vị trí p về đầu danh sách sang trái 1 vị trí

24.

Khi chèn phần tử có nội dung x vào vị trí p của danh sách L, trường hợp nào p KHÔNG hợp lệ?

a)

p< last+1 hoặc p<1

b)

p> last+1 hoặc p<1

c)

p> last+1 hoặc p>1

d)

p< last+1 hoặc p>1

25.

Khi xóa 1 phần tử có nội dung x tại vị trí p của danh sách L, trường hợp nào p KHÔNG hợp lệ?

a)

P<L.last hoặc p>1

b)

p>L.last hoặc p>1

c)

p>L.last hoặc p<1

d)

P<L.last hoặc p<1

26.

HãyĐoạn chương trình dưới đây mô tả thuật toán chèn thêm 1 phần tử vào mảng danh sách:

B1. for(n=(L->Last-1)+1; n>p-1; n--)

B1.1. L->A[n]=L->A[n-1];

B2. //Đưa X vào vị trí p

……………………… (1)

3. L->Last++;

Hãy chọn câu lệnh đúng vào vị trí (1) cho B2?

a)

L->Elements[p-1]=X;

b)

L->Elements[p+1]=X;

c)

X = L->Elements[p-1];

d)

X = L->Elements[p+1]

27.

Đoạn chương trình dưới đây mô tả thuật toán loại bỏ 1 phần tử ra khỏi mảng danh sách:

B1. for(n=i-1;n<L->Last-1;n++)

B1.1. Gán giá trị ở vị trí n+1 cho n

............................... (1) B2. L->Last--;

Hãy chọn câu lệnh đúng vào vị trí (1) cho B1.1?

a)

L->Elements[n-1]=L->Elements[n];

b)

L->Elements[n]=L->Elements[n-1];

c)

L->Elements[n]=L->Elements[n+1];

d)

L->Elements[n+1]=L->Elements[n];