JavaScript is required

Đầu ra là gì? #include #include int main() { int i = 3; while (i--) { int i = 100; i--; printf("%d ", i); } getch(); }

A.

99 99 99

B.

Lỗi của biên dịch viên

C.

1

Trả lời:

Đáp án đúng: A


Đoạn code này minh họa cách biến `i` được khai báo lại trong mỗi lần lặp của vòng `while`. - **`int i = 3;`**: Khai báo biến `i` bên ngoài vòng lặp `while`, biến này quyết định số lần lặp. - **`while (i--)`**: Vòng lặp `while` tiếp tục cho đến khi `i` (bên ngoài) giảm xuống 0. `i--` vừa kiểm tra giá trị của `i` vừa giảm `i` đi 1 sau mỗi lần lặp. Do đó, vòng lặp sẽ chạy 3 lần. - **`int i = 100;`**: Bên trong vòng lặp, một biến `i` *khác* được khai báo và khởi tạo với giá trị 100. Đây là một biến cục bộ, chỉ có phạm vi bên trong vòng lặp `while`. - **`i--;`**: Giá trị của biến `i` cục bộ (bên trong vòng lặp) giảm đi 1, trở thành 99. - **`printf("%d ", i);`**: In giá trị của biến `i` cục bộ (bên trong vòng lặp), tức là 99. Như vậy, trong mỗi lần lặp, biến `i` bên trong vòng lặp được gán giá trị 100, giảm xuống 99 và in ra. Vòng lặp chạy 3 lần, nên đầu ra sẽ là "99 99 99".

Câu hỏi liên quan