JavaScript is required

What is output? #include #include #define PRINT(i, limit) do \ { \ if (i++ < limit) \ { \ printf("laptrinhc++"); \ continue; \ } \ }while(1) void main() { PRINT(0, 3); getch(); }

A.

‘laptrinhc++’ is printed 3 times

B.

‘laptrinhc++’ is printed 2 times

C.

Complier error

Trả lời:

Đáp án đúng: C


Đoạn code sử dụng macro `PRINT` để in chuỗi "laptrinhc++" một số lần. Macro này sử dụng vòng lặp `do...while(1)` và điều kiện `i++ < limit` kết hợp với toán tử bitwise AND (`&`). Ban đầu, `i = 0` và `limit = 3`. Lần 1: `i++ < limit` được đánh giá. `i++` trả về 0 (giá trị của i trước khi tăng), so sánh với 3, điều kiện `0 < 3` đúng. Sau đó `i` tăng lên 1. In ra "laptrinhc++". Lần 2: `i++ < limit` được đánh giá. `i++` trả về 1, so sánh với 3, điều kiện `1 < 3` đúng. Sau đó `i` tăng lên 2. In ra "laptrinhc++". Lần 3: `i++ < limit` được đánh giá. `i++` trả về 2, so sánh với 3, điều kiện `2 < 3` đúng. Sau đó `i` tăng lên 3. In ra "laptrinhc++". Trong cả ba lần, `i++ < limit` luôn đúng và câu lệnh `continue` được thực thi. Do đó, chương trình in "laptrinhc++" 3 lần. Vậy, đáp án đúng là A.

Câu hỏi liên quan