CHỦ ĐỀ 6: KĨ THUẬT LẬP TRÌNH
BÀI 17: DỮ LIỆU MẢNG MỘT CHIỀU VÀ HAI CHIỀU
A. TRẮC NGHIỆM
1. NHẬN BIẾT
Câu 1: Phát biểu nào dưới đây về kiểu mảng một chiều là phù hợp?
- Là một tập hợp các số nguyên
- Độ dài tối đa của mảng là 255
- Là một dãy hữu hạn các phần tử cùng kiểu
- Mảng không thể chứa kí tự
Câu 2: Để khai báo số phần tử của mảng trong PASCAL, người lập trình cần:
- khai báo một hằng số là số phần tử của mảng
- khai báo chỉ số bắt đầu và kết thúc của mảng
- khai báo chỉ số kết thúc của mảng
- không cần khai báo gì, hệ thống sẽ tự xác định
Câu 3: Phát biểu nào dưới đây về chỉ số của mảng là phù hợp nhất?
- Dùng để truy cập đến một phần tử bất kì trong mảng
- Dùng để quản lí kích thước của mảng
- Dùng trong vòng lặp với mảng
- Dùng trong vòng lặp với mảng để quản lí kích thước của mảng
Câu 4: Phát biểu nào sau đây về mảng là không chính xác?
- Chỉ số của mảng không nhất thiết bắt đầu từ 1
- Có thể xây dựng mảng nhiều chiều
- Xâu kí tự cũng có thể xem như là một loại mảng
- Độ dài tối đa của mảng là 255
Câu 5: Thế nào là khai báo biến mảng gián tiếp?
- Khai báo mảng của các bản ghi
- Khai báo mảng xâu kí tự
- Khai báo mảng hai chiều
- Khai báo thông qua kiểu mảng đã có
Câu 6: Mảng là kiểu dữ liệu biểu diễn một dãy các phần tử thuận tiện cho:
- chèn thêm phần tử
- truy cập đến phần tử bất kì
- xóa một phần tử
- chèn thêm phần tử và xóa phần tử
Câu 7: Khẳng định nào sau đây là đúng:
- Mảng một chiều là dãy vô hạn các phần tử cùng kiểu. Mảng được đặt tên và mỗi phần tử của nó có một chỉ số.
- Mảng một chiều là dãy hữu hạn các phần tử khác kiểu. Mảng được đặt tên và mỗi phần tử của nó có một chỉ số.
- Mảng một chiều là dãy hữu hạn các phần tử cùng kiểu. Mảng được đặt tên và mỗi phần tử của nó có một chỉ số.
- Mảng một chiều là dãy vô hạn các phần tử khác kiểu. Mảng được đặt tên và mỗi phần tử của nó có một chỉ số.
Câu 8: Để khai báo mảng ta dùng cú pháp sau:
- <kiểu phần tử> <tên biến mảng > [<kích thước>];
- <tên biến mảng > [<kích thước>];
- <kiểu phần tử> <tên biến mảng > ;
- <kiểu phần tử> of<tên biến mảng > [<kích thước>];
Câu 9: Cú pháp nào sau đây đâu là cú pháp tham chiếu tới phần tử của mảng?
- <Tên biến mảng> [chỉ số phần tử];
B.<Chỉ số phần tử> [Tên biến mảng];
- <Tên biến mảng> <chỉ số phần tử>;
- [Tên biến mảng] <chỉ số phần tử>;
2. THÔNG HIỂU
Câu 1: Phương án nào dưới đây là khai báo mảng hợp lệ?
- Var mang : ARRAY[0..10] OF INTEGER;
- Var mang : ARRAY[0..10] : INTEGER;
- Var mang : INTEGER OF ARRAY[0..10];
- Var mang : ARRAY(0..10) : INTEGER;
Câu 2: Khai báo mảng hai chiều nào sau đây là sai?
- var m : array[1..10] of array[0..9] of integer;
- var m : array[1..20,1..40] of real;
- var m : array[1..9;1..9] of integer;
- var m : array[0..10,0..10] of char;
Câu 3: Mảng A gồm 100 phần tử là các số nguyên. Cách khai báo nào sau đây là đúng:
- float A[100];
- int A[100];
- int A of [100];
- int A=[100];
Câu 4: Chỉ số của phần tử mảng trong C++ luôn được tính từ:
- 1
- 2
- 0
- -1
Câu 5: Tham chiếu tới phần tử của mảng một chiều được xác định bởi tên mảng cùng với chỉ số, được viết trong cặp ngoặc:
- {}
- []
- <>
- ()
Câu 6: Để tham chiếu đến phần tử đầu tiên trong mảng A ta viết:
- A[0]
- a[1]
- A[2]
- A[]
Câu 7: Mảng a gồm 10 phần tử là các số thực, khai báo mảng nào sau đây là hợp lệ:
- int a[10];
- a[10];
- float a[10];
- a=[10] of float;
Câu 8: Khai báo sau đây, mảng A có tối đa bao nhiêu phần tử?
int a[10];
A. 11
- 20
- 10
- 9
Câu 9: Phát biểu nào sau đây về mảng là không chính xác?
- Mảng là một dãy hữu hạn các phần tử cùng kiểu.
- Tham chiếu tới phần tử của mảng một chiều được xác định bởi tên mảng cùng với chỉ số, được viết trong cặp ngoặc [ và ].
- Xâu kí tự cũng có thể xem như là một loại mảng.
- Chỉ số của phần tử mảng trong C++ luôn được tính từ 1.
Câu 10: Khi xây dựng và sử dụng mảng 1 chiều, yếu tố nào sao đây không đúng?
- Tên kiểu mảng một chiều.
- Biến đếm thường là kiểu nguyên.
- Cách khai báo biến mảng.
- Cách tham chiếu đến phần tử.
3. VẬN DỤNG
Câu 1: Cho khai báo mảng và đoạn chương trình như sau:
Var a : array[0..50] of real ;
k := 0 ;
for i := 1 to 50 do
if a[i] > a[k] then k := i ;
Đoạn chương trình trên thực hiện công việc gì dưới đây?
- Tìm phần tử nhỏ nhất trong mảng;
- Tìm phần tử lớn nhất trong mảng;
- Tìm chỉ số của phần tử lớn nhất trong mảng
- Tìm chỉ số của phần tử nhỏ nhất trong mảng
Câu 2: Cho khai báo mảng như sau: Var a : array[0..10] of integer ;
Phương án nào dưới đây chỉ phần tử thứ 10 của mảng?
- a[10];
- a(10);
- a[9];
- a(9);
Câu 3: Cho đoạn chương trình sau:
S=0;
for(i=1;i<=n;i++) s=s+a[i];
Đoạn chương trình trên thực hiện:
- Tính tổng các phần tử của mảng a.
- In ra màn hình mảng a.
- Đếm số phần tử của mảng a.
- Không thực hiện việc cả.
Câu 4: Cho khai báo sau:
int a[16];
Câu lệnh nào dưới đây sẽ in ra tất cả các phần tử của mảng trên?
- for (i=1;i<=16 ;i++) cout<<a[i];
- for (i=0;i<=16 ;i++) cout<<a[i];
- for (i=1;i<16 ;i++) cout<<a[i];
- for (i=0;i<16 ;i++) cout<<a[i];
Câu 5: Cho mảng 1 chiều sau, cho biết kết quả sau khi thực hiện tham chiếu a[4]
A | 0 | 1 | 2 | 3 | 4 |
14 | 13 | 8 | 9 | 6 |
- 14
- 9
- 8
- 6
4. VẬN DỤNG CAO
Câu 1: Chương trình sau sẽ in ra màn hình công việc gì?
for (i=1;i<=n;i++)
if (a[i] % 2 !=0)
cout<<a[i];
- In ra các giá trị các phần tử chẵn của mảng a.
- In ra các giá trị các phần tử lẻ của mảng a.
- In ra tất cả giá trị các phần tử của mảng a.
- In ra tổng giá trị các phần tử của mảng a .
--------------- Còn tiếp ---------------