JavaScript is required

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

int s = 0; string str; for

(int i = 0; i < 5; i++) {

int k = 0; k += i; s = k;

}

str = ((k % 2) == 0) ? “true” : “false”;

cout << str << endl;

A.

true

B.

false

C.

Chương trình lỗi.

D.

Không in ra gì cả.

Trả lời:

Đáp án đúng: C


Đoạn code thực hiện một vòng lặp for từ i = 0 đến i < 5. Trong mỗi vòng lặp, biến k được gán bằng 0, sau đó cộng thêm i (k += i), và cuối cùng s được gán bằng k (s = k). Điều quan trọng là k được khởi tạo lại bằng 0 trong mỗi vòng lặp. Do đó, sau mỗi vòng lặp, giá trị của s sẽ bằng giá trị của i ở vòng lặp đó. Sau khi vòng lặp kết thúc, giá trị của k sẽ là giá trị của i ở vòng lặp cuối cùng, tức là k = 4. Sau đó, biểu thức điều kiện (k % 2) == 0 được đánh giá. Vì 4 chia hết cho 2, nên biểu thức này trả về true. Do đó, biến str được gán chuỗi "true". Cuối cùng, chương trình in ra giá trị của str, là "true".

Câu hỏi liên quan