Mảng 1 chiều
Câu 1:
Cách khai báo mảng một chiều đúng trong C
là: A. int a[];
B. int a[10];
C. array int[10];
D. int a(10);
Câu 2:
Mảng giá trị của gì?int a[5] = {1, 2}; a[2]
B. 1
C. 2
D. Không xác định
Câu 3:
Chỉ số của phần tử đầu tiên trong mảng
là: A. 1
B. 0
C. -1
D. Tuỳ vào compiler
Câu 4:
Kết quả của đoạn sau gì?
int arr[3] = {10, 20, 30};
printf("%d", arr[1]);
A. 10
B. 20
C. 30
Câu 5:
Giả sử , chỉ số để truy cập int a[5]; hợp lệ
là: A. a[5]
B. a[6]
C. a[0]
D. a[-1]
Câu 6:
Câu nào đúng về mảng một chiều?
A. Tên mảng con trỏ hằng
B. Tên mảng thể thay đổi giá trị
C. Không cần khai báo kích thước
D. Mảng thể mở rộng kích thước sau khi khai báo
Câu 7:
Kết quả đoạn sau gì?
int a[5] = {1, 2, 3, 4, 5};
printf("%d", *(a + 2));
Câu 8:
Lệnh nào dùng để nhập dữ liệu cho mảng từ bàn a[5]
phím? A. scanf("%d", &a);
B. for(i = 0; i < 5; i++) scanf("%d", &a[i]);
C. scanf("%d", a[i]);
D. for(i = 0; i < 5; i++) scanf("%d", a + i);
Câu 9:
Kết quả đoạn sau gì?
int a[5] = {5, 4, 3, 2, 1};
int sum = 0, i;
for(i = 0; i < 5; i++) sum += a[i];
printf("%d", sum);
Câu 10:
Điều xảy ra nếu truy cập khi ? a[10] int a[5];
A. Truy cập thành công
B. Gán được giá trị
C. Lỗi biên dịch
D. Lỗi truy cập bộ nhớ hoặc hành vi không xác định
Câu 11: Kết quả của đoạn code sau gì?
#include <stdio.h>
int main() {
] = { , , }; int arr[5 1 2 3
, arr[ ]); printf("%d" 4
; return 0
}
Câu 12: Đoạn code sau lỗi gì?
#include <stdio.h>
int main() {
] = { , , , }; int arr[3 1 2 3 4
, arr[ ]); printf("%d" 2
; return 0
}
A. Không lỗi
B. Lỗi biên dịch do khởi tạo quá nhiều phần tử
C. Lỗi runtime
D. Hành vi không xác định
Câu 13: Kết quả của đoạn code sau gì?
#include <stdio.h>
int main() {
arr[] = { , , , }; int 10 20 30 40
, *(arr + )); printf("%d" 2
; return 0
}
Câu 14: Kích thước của mảng sau bao nhiêu trên hệ 32-bit?
#include <stdio.h>
int main() {
] = { , , , , }; int arr[5 1 2 3 4 5
, (arr)); printf("%d" sizeof
;return 0
}
A. 5 bytes
B. 10 bytes
C. 20 bytes
D. 4 bytes
Câu 15: Kết quả của đoạn code sau gì?
#include <stdio.h>
void int int modify( arr[], size) {
arr[ ] = ; 0 100
}
int main() {
] = { , , }; int arr[3 1 2 3
modify(arr, ); 3
, arr[ ]); printf("%d" 0
; return 0
}
B. 100
C. Lỗi biên dịch
D. Hành vi không xác định
Câu 16: Đoạn code sau in ra gì?
#include <stdio.h>
int main() {
] = { , , , }; int arr[4 1 2 3 4
*p = arr; int
, *(p + )); printf("%d " 1
p++;
, *p); printf("%d"
; return 0
}
Câu 17: Đoạn code sau vấn đề
gì? #include <stdio.h>
int main() {
]; int arr[3
arr[ ] = ; 3 10
, arr[ ]); printf("%d" 3
; return 0
}
A. Không lỗi
B. Hành vi không xác định do truy cập ngoài
mảng C. Lỗi biên dịch
D. In 10
Câu 18: Kết quả của đoạn code sau gì?
#include <stdio.h>
int main() {
] = { , , , , }; int arr[5 1 2 3 4 5
, arr[ ]); printf("%d" -1
; return 0
}
B. Lỗi biên dịch
C. Hành vi không xác định
Câu 19: Kết quả của đoạn code sau gì?
#include <stdio.h>
int main() {
] = { , , }; int arr[3 1 2 3
*p = &arr[ ]; int 0
, p[ ]); printf("%d " 1
, *(p + )); printf("%d" 2
; return 0
}
Câu 20: Đoạn code sau in ra gì?
#include <stdio.h>
int main() {
] = { , , , }; int arr[4 10 20 30 40
, (arr) / ])); printf("%d" sizeof sizeof(arr[0
; return 0
}
Mảng 2 chiều
Câu 1:
Cách khai báo mảng 2 chiều đúng trong C là:
A. int arr[3][4];
B. int arr(3,4);
C. int arr[3,4];
D. int arr[3][4][5];
Câu 2:
Kích thước của mảng 2 chiều int arr[3][4] là:
B. 4
C. 7
D. 12
Câu 3:
Giả sử , giá trị của int arr[2][3] = {{1, 2, 3}, {4, 5, 6}}; arr[1][2]
gì? A. 1
B. 4
C. 5
Câu 4:
Câu lệnh nào sau đây in ra tất cả phần tử của mảng 2 chiều arr[3]
[4]? A. for(i = 0; i < 3; i++) for(j = 0; j < 4; j++) printf("%d ", arr[i][j]); B. for(i
= 0; i < 4; i++) for(j = 0; j < 3; j++) printf("%d ", arr[i][j]); for(i = 0; i < 4; i+C.
+) printf("%d ", arr[i]);
D. printf("%d ", arr[0][0]);
Câu 5:
Kết quả đoạn sau gì?
c
CopyEdit
int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
printf("%d", arr[1][1]);
B. 2
C. 5
Câu 6:
Lệnh nào sau đây thể được sử dụng để truyền mảng 2 chiều vào
hàm? A. function(int arr[][])
B. function(int arr[2][3])
C. function(int arr[3])
D. function(int arr[])
Câu 7:
Trong mảng 2 chiều , chỉ số của phần tử đầu tiên int arr[3][3]
là: A. arr[1][1]
B. arr[0][0]
C. arr[3][3]
D. arr[1][0]
Câu 8:
Giả sử , giá trị của int arr[2][3] = {{1, 2, 3}, {4, 5, 6}}; arr[0]
gì? A. 1
B. 2
C. Địa chỉ của dòng đầu tiên
D. Không xác định
Câu 9:
Kết quả của đoạn sau gì?
int arr[2][2] = {{1, 2}, {3, 4}};
printf("%d", *(*(arr + 1) + 1));
B. 2
C. 3

Preview text:

Mảng 1 chiều Câu 1:
Cách khai báo mảng một chiều đúng trong C là: A. int a[]; B. int a[10]; C. array int[10]; D. int a(10); Câu 2:
Mảng int a[5] = {1, 2}; có giá trị của a[2] là gì? A. 0 B. 1 C. 2 D. Không xác định Câu 3:
Chỉ số của phần tử đầu tiên trong mảng là: A. 1 B. 0 C. -1 D. Tuỳ vào compiler Câu 4:
Kết quả của đoạn mã sau là gì? int arr[3] = {10, 20, 30}; printf("%d", arr[1]); A. 10 B. 20 C. 30 D. 1 Câu 5:
Giả sử int a[5];, chỉ số hợp lệ để truy cập là: A. a[5] B. a[6] C. a[0] D. a[-1] Câu 6:
Câu nào đúng về mảng một chiều?
A. Tên mảng là con trỏ hằng
B. Tên mảng có thể thay đổi giá trị
C. Không cần khai báo kích thước
D. Mảng có thể mở rộng kích thước sau khi khai báo Câu 7:
Kết quả đoạn mã sau là gì? int a[5] = {1, 2, 3, 4, 5}; printf("%d", *(a + 2)); Câu 8:
Lệnh nào dùng để nhập dữ liệu cho mảng a[5] từ bàn
phím? A. scanf("%d", &a);
B. for(i = 0; i < 5; i++) scanf("%d", &a[i]); C. scanf("%d", a[i]);
D. for(i = 0; i < 5; i++) scanf("%d", a + i); Câu 9:
Kết quả đoạn mã sau là gì? int a[5] = {5, 4, 3, 2, 1}; int sum = 0, i;
for(i = 0; i < 5; i++) sum += a[i]; printf("%d", sum); Câu 10:
Điều gì xảy ra nếu truy cập a[10] khi int a[5];? A. Truy cập thành công B. Gán được giá trị C. Lỗi biên dịch
D. Lỗi truy cập bộ nhớ hoặc hành vi không xác định
Câu 11: Kết quả của đoạn code sau là gì? #include int main() { int arr[ ] = { 5 , 1 , 2 }; 3 printf("%d", arr[ ]); 4 return ; 0 }
Câu 12: Đoạn code sau có lỗi gì? #include int main() { int arr[ ] = { 3 , 1 , 2 , 3 }; 4 printf("%d", arr[ ]); 2 return ; 0 } A. Không có lỗi
B. Lỗi biên dịch do khởi tạo quá nhiều phần tử C. Lỗi runtime
D. Hành vi không xác định
Câu 13: Kết quả của đoạn code sau là gì? #include int main() { int arr[] = { , 10 , 20 , 30 }; 40 printf("%d", *(arr + )); 2 return ; 0 }
Câu 14: Kích thước của mảng sau là bao nhiêu trên hệ 32-bit? #include int main() { int arr[ ] = { 5 , 1 , 2 , 3 , 4 5}; printf("%d", sizeof(arr)); return ; 0 } A. 5 bytes B. 10 bytes C. 20 bytes D. 4 bytes
Câu 15: Kết quả của đoạn code sau là gì? #include
void modify(int arr[], int size) { arr[ ] = 0 100; } int main() { int arr[ ] = { 3 , 1 , 2 }; 3 modify(arr, ); 3 printf("%d", arr[ ]); 0 return ; 0 } A. 1 B. 100 C. Lỗi biên dịch
D. Hành vi không xác định
Câu 16: Đoạn code sau in ra gì? #include int main() { int arr[ ] = { 4 , 1 , 2 , 3 }; 4 int *p = arr; printf("%d ", *(p + )); 1 p++; printf("%d", *p); return ; 0 }
Câu 17: Đoạn code sau có vấn đề gì? #include int main() { int arr[ ]; 3 arr[ ] = 3 10; printf("%d", arr[ ]); 3 return ; 0 } A. Không có lỗi
B. Hành vi không xác định do truy cập ngoài mảng C. Lỗi biên dịch D. In 10
Câu 18: Kết quả của đoạn code sau là gì? #include int main() { int arr[ ] = { 5 , 1 , 2 , 3 , 4 5}; printf("%d", arr[-1]); return ; 0 } A. 1 B. Lỗi biên dịch
C. Hành vi không xác định D. 0
Câu 19: Kết quả của đoạn code sau là gì? #include int main() { int arr[ ] = { 3 , 1 , 2 }; 3 int *p = &arr[ ]; 0 printf("%d ", p[ ]); 1 printf("%d", *(p + )); 2 return ; 0 }
Câu 20: Đoạn code sau in ra gì? #include int main() { int arr[ ] = { 4 , 10 , 20 , 30 }; 40
printf("%d", sizeof(arr) / sizeof(arr[ ])); 0 return ; 0 } Mảng 2 chiều Câu 1:
Cách khai báo mảng 2 chiều đúng trong C là: A. int arr[3][4]; B. int arr(3,4); C. int arr[3,4]; D. int arr[3][4][5]; Câu 2:
Kích thước của mảng 2 chiều int arr[3][4] là: A. 3 B. 4 C. 7 D. 12 Câu 3:
Giả sử int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};, giá trị của arr[1][2] là gì? A. 1 B. 4 C. 5 D. 6 Câu 4:
Câu lệnh nào sau đây in ra tất cả phần tử của mảng 2 chiều arr[3]
[4]? A. for(i = 0; i < 3; i++) for(j = 0; j < 4; j++) printf("%d ", arr[i][j]); B. for(i
= 0; i < 4; i++) for(j = 0; j < 3; j++) printf("%d ", arr[i][j]); for(i C. = 0; i < 4; i+ +) printf("%d ", arr[i]); D. printf("%d ", arr[0][0]); Câu 5:
Kết quả đoạn mã sau là gì? c CopyEdit
int arr[2][3] = {{1, 2, 3}, {4, 5, 6}}; printf("%d", arr[1][1]); A. 1 B. 2 C. 5 D. 4 Câu 6:
Lệnh nào sau đây có thể được sử dụng để truyền mảng 2 chiều vào
hàm? A. function(int arr[][]) B. function(int arr[2][3]) C. function(int arr[3]) D. function(int arr[]) Câu 7:
Trong mảng 2 chiều int arr[3][3], chỉ số của phần tử đầu tiên là: A. arr[1][1] B. arr[0][0] C. arr[3][3] D. arr[1][0] Câu 8:
Giả sử int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};, giá trị của arr[0] là gì? A. 1 B. 2
C. Địa chỉ của dòng đầu tiên D. Không xác định Câu 9:
Kết quả của đoạn mã sau là gì?
int arr[2][2] = {{1, 2}, {3, 4}};
printf("%d", *(*(arr + 1) + 1)); A. 1 B. 2 C. 3 D. 4