JavaScript is required

Kết quả chương trình sau là gì:

#include

void hoanvi(int px, int py) {

int pfl;

pfl = px;

px = py;

py = pfl;

}

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: B


Hàm `hoanvi` được gọi với hai biến `a` và `b` làm tham số. Tuy nhiên, trong C, các tham số được truyền vào hàm theo giá trị (pass by value). Điều này có nghĩa là hàm `hoanvi` nhận bản sao của giá trị của `a` và `b`, chứ không phải bản thân các biến `a` và `b`. Do đó, mọi thay đổi được thực hiện đối với `px` và `py` trong hàm `hoanvi` sẽ không ảnh hưởng đến `a` và `b` trong hàm `main`. Vì vậy, giá trị của `a` và `b` vẫn giữ nguyên là 15 và 21 sau khi gọi hàm `hoanvi`. Chương trình sẽ in ra giá trị của `a` và `b` sau khi gọi hàm `hoanvi`. Vì `a` và `b` không thay đổi, kết quả sẽ là "15 21".

Câu hỏi liên quan