










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