JavaScript is required

Kết quả chương trình sau là gì: #include void hoanvi(int px, int py) { int pz; pz = px; px = py; py = pz; }; void main() { int a = 15, b = 21; hoanvi(a, b); printf(“ % d % d”, a, b); };

A.

“21 15”

B.

“15 21”

C.

Báo lỗi khi thực hiện chương trình

D.

Kết quả khác

Trả lời:

Đáp án đúng: A


Hàm `hoanvi` được định nghĩa để hoán đổi giá trị của hai biến nguyên `px` và `py`. Tuy nhiên, trong C, khi truyền tham số cho một hàm theo kiểu truyền giá trị (call by value), bản sao của các biến `a` và `b` (tức là `px` và `py`) được tạo ra và sử dụng trong hàm `hoanvi`. Do đó, mọi thay đổi đối với `px` và `py` trong hàm `hoanvi` không ảnh hưởng đến giá trị của `a` và `b` trong hàm `main`. Vì vậy, sau khi gọi `hoanvi(a, b)`, giá trị của `a` và `b` vẫn là 15 và 21. Do đó, khi in `a` và `b`, kết quả sẽ là "15 21".

Câu hỏi liên quan