JavaScript is required

Đầu ra là gì? #include #include int func(int* i); void main() { int i = 15; while(func(&i) && i++ > 0); printf("%d", i); getch(); } int func(int* i) { *i -= 5; return(*i); }

A.

0

B.

B.-1

C.

C.-2

D.

D.-3

Trả lời:

Đáp án đúng: B


Đầu tiên, biến i được khởi tạo là 15. Vòng lặp while có điều kiện là func(&i) && i++ > 0. Hàm func(&i) sẽ trừ 5 vào giá trị của i (thông qua con trỏ) và trả về giá trị mới của i. Lần lặp 1: i = 15 - func(&i) trả về 10 (i = 10). - Điều kiện: 10 && 10++ > 0 (10 > 0 là đúng). i trở thành 11. Lần lặp 2: i = 11 - func(&i) trả về 6 (i = 6). - Điều kiện: 6 && 6++ > 0 (6 > 0 là đúng). i trở thành 7. Lần lặp 3: i = 7 - func(&i) trả về 2 (i = 2). - Điều kiện: 2 && 2++ > 0 (2 > 0 là đúng). i trở thành 3. Lần lặp 4: i = 3 - func(&i) trả về -2 (i = -2). - Điều kiện: -2 && -2++ > 0 (-2 > 0 là sai). i trở thành -1. Vòng lặp dừng lại khi điều kiện sai. Sau vòng lặp, printf("%d", i) được gọi để in giá trị của i. Vậy, i = -1 sẽ được in ra màn hình.

Câu hỏi liên quan