










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