JavaScript is required

Anh (Chị) hãy cho biết kết quả của đoạn lệnh sau là gì?

int main() {

float S = 0.0;

int N=2,k;

for (k = 1; k <= N; k++)

S += 1/sum(k);

cout << S;

return 0;

}

float sum(int k) { int tong = 0;

for (int x = 1; x <= k; x++)

tong += x;

return tong;

}

A.

1

B.

1.33333

C.

1.5

D.

Chương trình báo lỗi.

Trả lời:

Đáp án đúng: B


Đầu tiên, ta cần hiểu đoạn code C++ này thực hiện điều gì. Hàm `sum(int k)` tính tổng các số từ 1 đến `k`. Ví dụ, `sum(1)` trả về 1, `sum(2)` trả về 1+2=3. Trong hàm `main()`: 1. `S` được khởi tạo là 0.0 (kiểu float). 2. `N` được khởi tạo là 2. 3. Vòng lặp `for` chạy từ `k = 1` đến `k <= N` (tức là `k` chạy từ 1 đến 2). 4. Trong mỗi vòng lặp, `S` được cộng thêm `1/sum(k)`. Vậy, ta có thể tính `S` như sau: * Khi `k = 1`, `sum(1) = 1`, vậy `S += 1/1 = 1`. `S` trở thành 1.0. * Khi `k = 2`, `sum(2) = 1 + 2 = 3`, vậy `S += 1/3 = 0.33333`. `S` trở thành 1.0 + 0.33333 = 1.33333. Sau vòng lặp, `cout << S;` sẽ in ra giá trị của `S`, là 1.33333. Vậy đáp án đúng là B. 1.33333

Câu hỏi liên quan