Khối lệnh thực hiện chuyện gì?
int[] mang = new int[10]
int s = 0;
int j = 0;
for (int i: mang) {
i = ++j;
s += i;
}
System.out.println(“S = “ + s);
int[] mang = new int[10]
int s = 0;
int j = 0;
for (int i: mang) {
i = ++j;
s += i;
}
System.out.println(“S = “ + s);
Trả lời:
Đáp án đúng: C
Đoạn code khởi tạo một mảng `mang` gồm 10 phần tử kiểu `int`. Sau đó, nó sử dụng vòng lặp `for-each` để duyệt qua mảng. Tuy nhiên, có một điểm quan trọng là trong vòng lặp, giá trị của `i` (biến lặp) được gán bằng `++j`. Biến `j` được tăng lên 1 trước khi gán cho `i`. Giá trị của `i` chỉ thay đổi trong phạm vi vòng lặp, không ảnh hưởng đến giá trị thực tế của các phần tử trong mảng `mang`. Biến `s` được dùng để tính tổng các giá trị của `i` trong mỗi lần lặp. Vì vậy, đoạn code này tính tổng các số từ 1 đến 10, chứ không phải tính tổng các phần tử của mảng `mang` (vì các phần tử của mảng không bị thay đổi).
* **Khởi tạo mảng:** `int[] mang = new int[10]` tạo một mảng gồm 10 số nguyên, tất cả đều có giá trị mặc định là 0.
* **Khởi tạo biến:** `int s = 0;` và `int j = 0;` khởi tạo biến `s` để lưu tổng và biến `j` để đếm.
* **Vòng lặp:** `for (int i: mang)` lặp qua từng phần tử của mảng `mang`. Tuy nhiên, việc gán `i = ++j;` chỉ thay đổi giá trị của biến `i` trong vòng lặp, chứ không thay đổi giá trị của phần tử trong mảng `mang`. Giá trị của `j` tăng lên mỗi lần lặp, và giá trị này được cộng vào `s`.
* **Tính tổng:** `s += i;` cộng giá trị hiện tại của `i` (là giá trị của `j` sau khi tăng) vào `s`.
* **In kết quả:** `System.out.println("S = " + s);` in ra giá trị của `s`, là tổng các số từ 1 đến 10.
Vì vậy, đáp án chính xác nhất là **B. Tính tổng mảng nguyên** một cách gián tiếp thông qua biến j. Mảng các phần tử vẫn có giá trị mặc định là 0.
Câu hỏi liên quan

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
