wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

NLLTCT_Lab6_Buoi2

Total questions: 99

Worksheet time: 1hrs 16mins

Name
Class
Date
1.
Cách khai báo một mảng 2 chiều số nguyên có 3 dòng và 4 cột tên là 'a' trong C++?
a)
int a[3, 4];
b)
int a[3][4];
c)
int a[4][3];
d)
array a[3][4];
2.
Cho mảng int a[3][4];. Phần tử nằm ở dòng 2, cột 3 được truy xuất như thế nào?
a)
a[2][3]
b)
a[3][2]
c)
a[1][2]
d)
a[2][1]
3.
Cho khai báo: int a[2][3] = {{1, 2, 3}, {4, 5, 6}}; Giá trị của a[1][1] là gì?
a)
1
b)
2
c)
5
d)
4
4.
Để duyệt qua tất cả các phần tử của mảng int a[N][M], ta thường dùng cú pháp nào?
a)
Một vòng lặp for(int i=0; i<N*M; i++)
b)
Hai vòng lặp for lồng nhau
c)
Dùng đệ quy
d)
Dùng vòng lặp while
5.
Cho khai báo: int a[2][3] = {1, 2, 3, 4, 5, 6}; Giá trị của a[1][0] là gì?
a)
1
b)
3
c)
4
d)
6
6.
Mảng 2 chiều int a[3][4] có tổng cộng bao nhiêu phần tử?
a)
7
b)
3
c)
4
d)
12
7.
Khi khai báo và khởi tạo mảng 2 chiều (VD: int a[][5] = {...};), ta BẮT BUỘC phải chỉ rõ kích thước nào?
a)
Bắt buộc cả hai
b)
Bắt buộc số cột
c)
Bắt buộc số dòng
d)
Không cần cả hai
8.
Đoạn code sau làm gì? int s=0; for(int i=0; i<N; i++) for(int j=0; j<M; j++) s += a[i][j];
a)
Tính tổng dòng đầu tiên
b)
Tính tổng cột đầu tiên
c)
Tính tổng tất cả phần tử
d)
Tìm phần tử lớn nhất
9.
Cho mảng vuông int a[N][N]. Đoạn code sau làm gì? int s=0; for(int i=0; i<N; i++) s += a[i][i];
a)
Tính tổng đường chéo chính
b)
Tính tổng đường chéo phụ
c)
Tính tổng hàng đầu tiên
d)
Gây lỗi
10.
Muốn tính tổng các phần tử trên dòng k của mảng a[N][M], ta dùng code nào?
a)
int s=0; for(int i=0; i<N; i++) s += a[i][k];
b)
int s=0; for(int j=0; j<M; j++) s += a[k][j];
c)
int s=0; for(int i=0; i<N; i++) s += a[k][i];
d)
int s=0; for(int j=0; j<M; j++) s += a[j][k];
11.
Đâu là khai báo hàm HỢP LỆ để nhận mảng 2 chiều int có 10 cột?
a)
void ham(int a[10][], int rows)
b)
void ham(int a[][], int rows, int cols)
c)
void ham(int a[][10], int rows)
d)
void ham(int a, int rows, int cols)
12.
Cho int a[2][3] = {{1, 2}, {4}}; Giá trị của a[1][2] là gì?
a)
4
b)
2
c)
0
d)
Giá trị rác (garbage)
13.
Muốn tính tổng các phần tử trên cột k của mảng a[N][M], ta dùng code nào?
a)
int s=0; for(int i=0; i<N; i++) s += a[i][k];
b)
int s=0; for(int j=0; j<M; j++) s += a[k][j];
c)
int s=0; for(int i=0; i<N; i++) s += a[k][i];
d)
int s=0; for(int j=0; j<M; j++) s += a[j][k];
14.
Cho mảng vuông int a[N][N]. Phần tử a[i][j] nằm trên đường chéo phụ nếu:
a)
i == j
b)
i + j == N
c)
i + j == N - 1
d)
i == j - 1
15.
Cho mảng int a[3][4]; Phép truy cập nào sau đây HỢP LỆ?
a)
a[3][0]
b)
a[0][4]
c)
a[2][3]
d)
a[3][4]
16.
Mảng 2 chiều int a[3][5]; được lưu trữ trong bộ nhớ như thế nào?
a)
Như một mảng 15 con trỏ
b)
Như một danh sách liên kết 3x5
c)
Các dòng được lưu trữ liên tiếp nhau (row-major)
d)
Các cột được lưu trữ liên tiếp nhau (column-major)
17.
Khai báo int a[3][4] = {0}; Điều gì xảy ra?
a)
Chỉ phần tử a[0][0] = 0
b)
Gây lỗi biên dịch
c)
Tất cả 12 phần tử đều được gán bằng 0
d)
Chỉ dòng đầu tiên bằng 0
18.
Đoạn code sau in ra gì? int a[2][2] = {{1, 2}, {3, 4}}; cout << a[0][1] + a[1][0];
a)
3
b)
4
c)
5
d)
7
19.
Làm thế nào để nhập giá trị cho mảng int a[N][M] từ bàn phím?
a)
Dùng 1 vòng lặp for
b)
Dùng 2 vòng lặp for lồng nhau và cin >> a[i][j];
c)
Dùng cin >> a;
d)
Không thể nhập trực tiếp
20.
Phần tử a[i][j] trong mảng 2 chiều có ý nghĩa là gì?
a)
Phần tử ở dòng j, cột i
b)
Phần tử ở dòng i, cột j
c)
Tổng của i và j
d)
Phần tử thứ i*j
21.
Để tìm phần tử lớn nhất (max) trong mảng int a[N][M], ta nên khởi tạo max bằng giá trị nào?
a)
max = 0;
b)
max = INT_MIN;
c)
max = a[0][0];
d)
max = -1;
22.
Cho mảng int a[3][3] = {{1, 9, 3}, {4, 5, 6}, {8, 2, 7}}; Giá trị của a[0][1] là?
a)
1
b)
9
c)
4
d)
3
23.
Đoạn code sau làm gì? int a[N][M]; for(int i=0; i<N; i++) { int s=0; for(int j=0; j<M; j++) s += a[i][j]; cout << s; }
a)
Tính tổng toàn mảng
b)
Tính tổng từng dòng và in ra
c)
Tính tổng từng cột và in ra
d)
Tìm max mỗi dòng
24.
Đoạn code sau làm gì? int a[N][M]; for(int j=0; j<M; j++) { int s=0; for(int i=0; i<N; i++) s += a[i][j]; cout << s; }
a)
Tính tổng toàn mảng
b)
Tính tổng từng dòng và in ra
c)
Tính tổng từng cột và in ra
d)
Tìm max mỗi cột
25.
Mảng 2 chiều int a[R][C]; Địa chỉ của phần tử a[i][j] được tính như thế nào (giả sử a bắt đầu tại A)?
a)
A + (i * C + j) * sizeof(int)
b)
A + (j * R + i) * sizeof(int)
c)
A + (i + j) * sizeof(int)
d)
A + (i * j) * sizeof(int)
26.
Cho mảng int a[5][5];. Phần tử a[2][3] là phần tử thứ mấy trong bộ nhớ (tính từ 0)?
a)
5
b)
8
c)
10
d)
13
27.
Mảng 2 chiều trong C++ thực chất là:
a)
Một mảng của các con trỏ
b)
Một mảng của các mảng 1 chiều
c)
Một cấu trúc dữ liệu đặc biệt (matrix)
d)
Một danh sách liên kết kép
28.
Đâu là một khai báo mảng 2 chiều HỢP LỆ trong C++?
a)
int a[][];
b)
int a[3][];
c)
int a[][5] = {{1, 2}, {3, 4}};
d)
int a[3][4] = {{1}, {2}};
29.
Cho mảng int a[2][2] = {{1, 2}, {3, 4}}; Đoạn code sau in ra gì? for(int i=0; i<2; i++) cout << a[i][1];
a)
1 3
b)
2 4
c)
1 2
d)
3 4
30.
Cho mảng int a[10][5];. Kích thước (số byte) của mảng này là bao nhiêu (giả sử int là 4 byte)?
a)
15 bytes
b)
60 bytes
c)
50 bytes
d)
200 bytes
31.
Phát biểu nào sau đây là SAI về mảng 2 chiều trong C++?
a)
Các phần tử được lưu trữ liên tục trong bộ nhớ
b)
Phải dùng 2 chỉ số để truy cập
c)
Có thể bỏ qua số dòng khi khởi tạo
d)
Có thể bỏ qua số cột khi truyền vào hàm
32.
Mảng 2 chiều thường được dùng để biểu diễn:
a)
Một danh sách tên
b)
Một ma trận (matrix)
c)
Một hàng đợi (queue)
d)
Một ngăn xếp (stack)
33.
Cho int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; Giá trị của a[1][2] là:
a)
4
b)
5
c)
6
d)
8
34.
Làm thế nào để hoán đổi dòng 0 và dòng 1 của mảng int a[N][M]?
a)
Dùng 1 vòng lặp for(int j=0; j<M; j++) swap(a[0][j], a[1][j]);
b)
Dùng swap(a[0], a[1]);
c)
Không thể hoán đổi được
d)
Dùng 1 vòng lặp for(int i=0; i<N; i++) swap(a[i][0], a[i][1]);
35.
Cho mảng vuông int a[N][N]. Code 'for(int i=0; i<N; i++) s += a[i][N-1-i];' dùng để làm gì?
a)
Tính tổng đường chéo chính
b)
Tính tổng đường chéo phụ
c)
Tính tổng cột cuối cùng
d)
Tính tổng dòng cuối cùng
36.
Đâu là vòng lặp 'for' đúng để duyệt ngược các dòng của mảng a[N][M]?
a)
for(int i=N; i>0; i--)
b)
for(int i=N-1; i>=0; i--)
c)
for(int i=N; i>=0; i--)
d)
for(int i=N-1; i>0; i--)
37.
Đâu là vòng lặp 'for' đúng để duyệt ngược các cột của mảng a[N][M]?
a)
for(int j=M; j>0; j--)
b)
for(int j=M; j>=0; j--)
c)
for(int j=M-1; j>=0; j--)
d)
for(int j=M-1; j>0; j--)
38.
Cho mảng int a[3][3]; Đoạn code 'cin >> a[1][1];' nhập giá trị cho phần tử nào?
a)
Góc trên bên trái
b)
Góc dưới bên phải
c)
Tâm của ma trận
d)
Góc trên bên phải
39.
Truy cập a[1] trong mảng 2 chiều int a[3][4] sẽ trả về:
a)
Một giá trị int
b)
Địa chỉ của dòng thứ 1 (một mảng 1 chiều 4 phần tử)
c)
Giá trị của a[1][0]
d)
Lỗi biên dịch
40.
Cho int a[2][2] = {{1, 2}, {3, 4}}; Giá trị của *a[1] là gì?
a)
1
b)
3
c)
4
d)
Địa chỉ của a[1][0]
41.
Cho int a[2][2] = {{1, 2}, {3, 4}}; Giá trị của *(a[0] + 1) là gì?
a)
1
b)
2
c)
3
d)
Địa chỉ của a[0][1]
42.
Mảng 2 chiều có phù hợp để lưu trữ một bàn cờ vua (8x8) không?
a)
Không, quá phức tạp
b)
Có, rất phù hợp
c)
Chỉ lưu được vị trí quân trắng
d)
Chỉ lưu được vị trí quân đen
43.
Nếu int a[3][4]; thì a[0], a[1], a[2] là:
a)
Ba giá trị số nguyên
b)
Ba mảng 1 chiều, mỗi mảng 4 phần tử
c)
Ba mảng 1 chiều, mỗi mảng 3 phần tử
d)
Ba con trỏ int*
44.
Khi nào ta nên dùng mảng 2 chiều?
a)
Khi cần lưu danh sách tên sinh viên
b)
Khi cần lưu bảng điểm (sinh viên x môn học)
c)
Khi cần lưu nhiệt độ của 7 ngày trong tuần
d)
Khi cần tính giai thừa
45.
Cho int a[3][3] = {1, 2, 3, 4, 5}; Giá trị của a[2][0] là gì?
a)
1
b)
4
c)
7
d)
0
46.
Để tìm phần tử nhỏ nhất (min) trong mảng a[N][M], code nào đúng?
a)
int min = 0; for(...) if(a[i][j] < min) min = a[i][j];
b)
int min = a[0][0]; for(...) if(a[i][j] < min) min = a[i][j];
c)
int min = a[0][0]; for(...) if(a[i][j] > min) min = a[i][j];
d)
int min = INT_MIN; for(...) if(a[i][j] < min) min = a[i][j];
47.
Khai báo 'int a[2][3];' và 'int b[3][2];' có giống nhau không?
a)
Giống hệt nhau
b)
Hoàn toàn khác nhau (khác số dòng, số cột)
c)
Chỉ khác tên biến
d)
Giống nhau về tổng số phần tử
48.
Mảng 'char board[8][8];' có thể dùng để lưu trữ gì?
a)
Tọa độ 8 điểm
b)
Tên 8 người
c)
Một bàn cờ 8x8
d)
Một từ có 64 ký tự
49.
Nếu ta duyệt mảng 2 chiều theo thứ tự 'for(j...){ for(i...) }' (duyệt cột trước, dòng sau) thì:
a)
Chương trình sẽ nhanh hơn
b)
Chương trình sẽ chậm hơn (do cache miss)
c)
Không thể làm vậy, gây lỗi
d)
Kết quả tính toán (như tính tổng) vẫn đúng
50.
Cho int a[3][4]; Phần tử đầu tiên của mảng này là?
a)
a[1][1]
b)
a[0][0]
c)
a[3][4]
d)
a[1][0]
51.
Cho int a[3][4]; Phần tử cuối cùng của mảng này là?
a)
a[3][4]
b)
a[2][3]
c)
a[3][3]
d)
a[2][4]
52.
Khi khai báo 'int a[2][3] = {1, 2, 3, 4};', giá trị của a[1][1] là?
a)
1
b)
2
c)
4
d)
0
53.
Truy cập 'a[i][j]' thì 'i' thường đại diện cho:
a)
Cột
b)
Dòng
c)
Giá trị
d)
Kích thước
54.
Truy cập 'a[i][j]' thì 'j' thường đại diện cho:
a)
Dòng
b)
Giá trị
c)
Cột
d)
Địa chỉ
55.
Để in ra phần tử ở góc dưới bên trái của mảng a[N][M] (N dòng, M cột), ta dùng:
a)
cout << a[0][M-1];
b)
cout << a[N-1][0];
c)
cout << a[N][0];
d)
cout << a[N-1][M-1];
56.
Để in ra phần tử ở góc trên bên phải của mảng a[N][M], ta dùng:
a)
cout << a[0][M-1];
b)
cout << a[N-1][0];
c)
cout << a[0][M];
d)
cout << a[N][M];
57.
Đoạn code 'for(int i=0; i<N; i++) cout << a[i][0];' dùng để làm gì?
a)
In ra dòng đầu tiên
b)
In ra cột đầu tiên
c)
In ra đường chéo chính
d)
Gây lỗi
58.
Đoạn code 'for(int j=0; j<M; j++) cout << a[0][j];' dùng để làm gì?
a)
In ra dòng đầu tiên
b)
In ra cột đầu tiên
c)
In ra đường chéo chính
d)
Gây lỗi
59.
Lỗi 'array index out of bounds' (truy cập ngoài phạm vi mảng) xảy ra khi nào?
a)
Khi gán mảng này cho mảng khác
b)
Khi dùng chỉ số âm
c)
Khi mảng quá lớn
d)
Khi khai báo thiếu dấu chấm phẩy
60.
Cho mảng int a[2][2] = {{1, 2}, {3, 4}}; Giá trị của **a là gì?
a)
Địa chỉ của a
b)
1
c)
Địa chỉ của a[0]
d)
Lỗi biên dịch
61.
Cho int a[3][4]; 'sizeof(a)' trả về giá trị bao nhiêu (giả sử int là 4 byte)?
a)
12
b)
16
c)
48
d)
7
62.
Cho int a[3][4]; 'sizeof(a[0])' trả về giá trị bao nhiêu (giả sử int là 4 byte)?
a)
4
b)
12
c)
16
d)
48
63.
Cho int a[3][4]; 'sizeof(a[0][0])' trả về giá trị bao nhiêu (giả sử int là 4 byte)?
a)
4
b)
16
c)
48
d)
1
64.
Làm thế nào để tìm tổng các phần tử biên của ma trận a[N][M]?
a)
Chỉ tính tổng dòng 0 và dòng N-1
b)
Chỉ tính tổng cột 0 và cột M-1
c)
Tính tổng dòng 0, N-1 và cột 0, M-1 (trừ trùng lặp)
d)
Không thể làm được
65.
Khai báo 'const int N = 3; int a[N][N];' có hợp lệ trong C++ không?
a)
Không, mảng phải dùng số cụ thể
b)
Có, vì N là hằng số
c)
Chỉ hợp lệ nếu N > 0
d)
Không, phải dùng #define
66.
Cho mảng a[N][M]. Để duyệt các phần tử theo thứ tự từ phải sang trái, từ trên xuống dưới, ta dùng:
a)
for(i=0; i<N; i++) for(j=M-1; j>=0; j--)
b)
for(i=N-1; i>=0; i--) for(j=0; j<M; j++)
c)
for(j=M-1; j>=0; j--) for(i=0; i<N; i++)
d)
for(i=0; i<N; i++) for(j=0; j<M; j++)
67.
Cho mảng a[N][M]. Để duyệt các phần tử theo thứ tự từ dưới lên trên, từ trái sang phải, ta dùng:
a)
for(i=0; i<N; i++) for(j=M-1; j>=0; j--)
b)
for(i=N-1; i>=0; i--) for(j=0; j<M; j++)
c)
for(j=M-1; j>=0; j--) for(i=0; i<N; i++)
d)
for(i=N-1; i>=0; i--) for(j=M-1; j>=0; j--)
68.
Thao tác 'int a[2][3]; int b[2][3]; a = b;' có hợp lệ không?
a)
Có, nếu kích thước giống nhau
b)
Không, không thể gán trực tiếp mảng
c)
Chỉ hợp lệ nếu là mảng số nguyên
d)
Có, nhưng chỉ sao chép phần tử đầu tiên
69.
Để sao chép mảng b[N][M] sang mảng a[N][M], ta phải làm gì?
a)
Dùng 2 vòng lặp for và gán a[i][j] = b[i][j];
b)
Dùng a = b;
c)
Dùng memcpy(a, b);
d)
Không thể sao chép
70.
Khai báo 'int a[2][3] = {{1}, {2}};' sẽ gán giá trị cho a[1][1] là?
a)
1
b)
2
c)
0
d)
Giá trị rác
71.
Khai báo 'int a[2][2] = {1, 2, 3};' sẽ gán giá trị cho a[1][1] là?
a)
1
b)
2
c)
3
d)
0
72.
Nếu int a[3][4]; thì 'a[1]' đại diện cho:
a)
Giá trị của a[1][0]
b)
Mảng 1 chiều (dòng 1) có 4 phần tử
c)
Địa chỉ của a[1][1]
d)
Tổng các phần tử dòng 1
73.
Nếu dùng 'cout << a[1];' (với int a[3][4];), kết quả in ra là gì?
a)
In ra các phần tử dòng 1
b)
In ra 0
c)
In ra một địa chỉ bộ nhớ
d)
Lỗi biên dịch
74.
Phần tử nằm ngay sau 'a[i][j]' trong bộ nhớ là (giả sử j < M-1)?
a)
a[i+1][j]
b)
a[i][j+1]
c)
a[i+1][0]
d)
a[i][j-1]
75.
Phần tử nằm ngay sau 'a[i][M-1]' trong bộ nhớ là (giả sử i < N-1)?
a)
a[i][M] (Lỗi)
b)
a[i+1][0]
c)
a[i+1][M-1]
d)
a[i][0]
76.
Để kiểm tra xem ma trận 'a[N][N]' có phải là ma trận đơn vị không, ta kiểm tra điều gì?
a)
Tất cả bằng 1
b)
Đường chéo chính bằng 1, còn lại bằng 0
c)
Đường chéo phụ bằng 1, còn lại bằng 0
d)
Tất cả đường chéo bằng 1
77.
Cho int a[3][3]; 'a[0]' và '&a[0][0]' có giá trị:
a)
Khác nhau
b)
Giống nhau (cùng là địa chỉ)
c)
a[0] là giá trị, &a[0][0] là địa chỉ
d)
Lỗi
78.
Cho int a[3][3]; 'a' và 'a[0]' có giá trị:
a)
Khác nhau
b)
Giống nhau (cùng là địa chỉ)
c)
a là mảng, a[0] là giá trị
d)
Lỗi
79.
Mảng 2 chiều 'float a[5][10];' có thể lưu trữ tối đa bao nhiêu số thực?
a)
15
b)
10
c)
5
d)
50
80.
Ma trận chuyển vị của ma trận A[N][M] là ma trận B[M][N] sao cho:
a)
B[i][j] = A[i][j]
b)
B[i][j] = A[j][i]
c)
B[i][j] = A[N-i][M-j]
d)
B[i][j] = -A[i][j]
81.
Nếu mảng a[N][M] chứa điểm của N sinh viên cho M môn học. Làm sao tính điểm trung bình của sinh viên k?
a)
Tính tổng a[i][k] (i từ 0 đến N-1) rồi chia N
b)
Tính tổng a[k][j] (j từ 0 đến M-1) rồi chia M
c)
Tính tổng a[k][j] (j từ 0 đến M-1) rồi chia N
d)
Tính tổng a[i][k] (i từ 0 đến N-1) rồi chia M
82.
Nếu mảng a[N][M] chứa điểm của N sinh viên cho M môn học. Làm sao tính điểm trung bình của môn học k?
a)
Tính tổng a[i][k] (i từ 0 đến N-1) rồi chia N
b)
Tính tổng a[k][j] (j từ 0 đến M-1) rồi chia M
c)
Tính tổng a[k][j] (j từ 0 đến M-1) rồi chia N
d)
Tính tổng a[i][k] (i từ 0 đến N-1) rồi chia M
83.
Khai báo nào sau đây tương đương với 'int a[2][3];'?
a)
int a[2, 3];
b)
int a[6];
c)
typedef int row[3]; row a[2];
d)
int a[3][2];
84.
Trong hàm 'void ham(int arr[][5], int rows)', tham số 'arr' thực chất là gì?
a)
Một mảng 2 chiều
b)
Một con trỏ trỏ đến mảng 5 int
c)
Một con trỏ trỏ đến int
d)
Một giá trị int
85.
Để tìm giá trị nhỏ nhất (min) trong mảng int a[N][M], cách khởi tạo 'min' nào sau đây có thể gây lỗi logic?
a)
int min = a[0][0];
b)
int min = INT_MAX;
c)
int min = 0;
d)
Tất cả đều đúng
86.
Để tìm giá trị lớn nhất (max) trong mảng int a[N][M], cách khởi tạo 'max' nào sau đây có thể gây lỗi logic?
a)
int max = a[0][0];
b)
int max = INT_MIN;
c)
int max = 0;
d)
Tất cả đều đúng
87.
Cho mảng a[3][3]. Vòng lặp 'for(int i=0; i<3; i++) a[i][i] = 0;' làm gì?
a)
Gán 0 cho toàn mảng
b)
Gán 0 cho đường chéo chính
c)
Gán 0 cho cột đầu tiên
d)
Gán 0 cho dòng đầu tiên
88.
Cho mảng a[3][3]. Vòng lặp 'for(int i=0; i<3; i++) a[i][2-i] = 0;' làm gì?
a)
Gán 0 cho đường chéo chính
b)
Gán 0 cho đường chéo phụ
c)
Gán 0 cho cột cuối cùng
d)
Gán 0 cho dòng cuối cùng
89.
Khai báo 'bool a[10][10];' dùng để lưu trữ:
a)
100 số nguyên
b)
100 số thực
c)
100 giá trị đúng/sai (true/false)
d)
100 ký tự
90.
Sự khác biệt chính giữa 'int a[10][5];' và 'int* a[10];' là gì?
a)
Không khác biệt
b)
a[10][5] là mảng 2 chiều. a[10] là mảng 10 con trỏ int.
c)
a[10][5] là mảng con trỏ. a[10] là mảng 2 chiều.
d)
a[10][5] lưu 50 số. a[10] lưu 10 số.
91.
Tại sao khi truyền mảng 2D vào hàm, phải chỉ rõ số cột (VD: 'void ham(int a[][10])')?
a)
Để trình biên dịch biết số dòng
b)
Vì C++ bắt buộc vậy
c)
Để trình biên dịch tính toán địa chỉ a[i][j]
d)
Để hàm không sửa đổi mảng
92.
Cho int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; Giá trị * (a[1] + 2) là?
a)
4
b)
5
c)
6
d)
Địa chỉ của a[1][2]
93.
Cho int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; Giá trị * (*(a + 1) + 2) là?
a)
4
b)
5
c)
6
d)
9
94.
Mảng 2 chiều có thể được dùng để lưu trữ ảnh xám (grayscale image) không?
a)
Có, mỗi phần tử lưu mức xám
b)
Không, ảnh phải dùng 3 chiều
c)
Chỉ lưu được ảnh đen trắng
d)
Chỉ lưu được 1 dòng của ảnh
95.
Cách nào sau đây KHÔNG phải là khai báo mảng 2 chiều hợp lệ?
a)
int a[10][10];
b)
int a[2][3] = {1, 2, 3, 4, 5, 6};
c)
int a[][5] = {{1}, {2}};
d)
int a[3][];
96.
Truy cập 'a[1][3]' trong mảng 'int a[3][3];' sẽ gây ra lỗi gì?
a)
Lỗi biên dịch (Compile Error)
b)
Lỗi lúc chạy (Runtime Error) hoặc hành vi không xác định
c)
Không lỗi, trả về 0
d)
Không lỗi, trả về giá trị rác
97.
Khai báo 'int a[3][4];' cấp phát bao nhiêu byte bộ nhớ (giả sử int = 4 byte)?
a)
12
b)
16
c)
28
d)
48
98.
Nếu 'a' là mảng 2 chiều, 'a[i]' là:
a)
Một mảng 1 chiều
b)
Một giá trị int
c)
Một con trỏ
d)
Cả 1 và 3 đều có thể đúng (tùy ngữ cảnh)
99.
Mảng 2 chiều có bao nhiêu "chiều" (dimensions)?
a)
1
b)
2
c)
Tùy ý
d)
N*M