Anh (Chị) hãy cho biết kết quả, s = ?
int s = 0;
for (int i = 0; i < 10; i++)
s += i; s -= 10;
Sau khi chạy khối lệnh s = ?
Trả lời:
Đáp án đúng: D
Đoạn code thực hiện một vòng lặp `for` từ `i = 0` đến `i < 10`. Trong mỗi vòng lặp, giá trị của `s` tăng lên `i`, sau đó giảm đi 10.
Tính toán:
- Khi `i = 0`, `s = 0 + 0 - 10 = -10`
- Khi `i = 1`, `s = -10 + 1 - 10 = -19`
- Khi `i = 2`, `s = -19 + 2 - 10 = -27`
- Khi `i = 3`, `s = -27 + 3 - 10 = -34`
- Khi `i = 4`, `s = -34 + 4 - 10 = -40`
- Khi `i = 5`, `s = -40 + 5 - 10 = -45`
- Khi `i = 6`, `s = -45 + 6 - 10 = -49`
- Khi `i = 7`, `s = -49 + 7 - 10 = -52`
- Khi `i = 8`, `s = -52 + 8 - 10 = -54`
- Khi `i = 9`, `s = -54 + 9 - 10 = -55`
Như vậy, sau khi vòng lặp kết thúc, `s = -55`. Tuy nhiên, không có đáp án nào trùng với kết quả này. Có vẻ như có một lỗi trong các phương án trả lời hoặc trong câu hỏi.
Nếu đề bài là `s += i;` chỉ 1 lần trong vòng lặp thì ta có:
s = 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 45
s -= 10; xảy ra 10 lần => s -= 100
=> s = 45 - 100 = -55
Do không có đáp án đúng trong các lựa chọn đã cho, ta nhận định câu hỏi hoặc các đáp án có thể có sai sót.