What will be the output of the following code?

4 phương ánCó giải thích
Đề bài
int i = 10;
while (i > 0) {
    printf("%d ", i);
    i -= 3;
}

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "10 7 4 1". i khởi tạo bằng 10; mỗi lượt thân vòng in i rồi trừ đi 3, nên lần lượt in 10, 7, 4, 1; sau lượt in 1 thì i thành -2, điều kiện i > 0 sai nên vòng lặp dừng trước khi in thêm. Bản chất của while là kiểm tra điều kiện trước mỗi lượt, vì vậy giá trị âm không bao giờ tới được lệnh in. "10 9 8 7 6 5 4 3 2 1" là kết quả nếu bước giảm là 1, trong khi i -= 3 trừ ba đơn vị mỗi lượt. "10 7 4 1 -2" sai vì khi i bằng -2 thì điều kiện đã sai, mà lệnh in nằm trong thân vòng nên không chạy nữa. "10 7 4 1 -2 -5" sai nặng hơn, nó cho vòng lặp chạy thêm hai lượt dù điều kiện i > 0 đã không còn đúng.

Cùng phần 3

Xuất hiện trong 1 bộ đề