JavaScript is required

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

#include

Int change (int A)

{

A=10;

Return a;

};

Void main ()

{

Int a=5;

Change (i) ;

Printf ( "%d", i) ;

};

A.

5.

B.

10.

C.

0.

D.

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

Trả lời:

Đáp án đúng: A


Đoạn chương trình C có một lỗi biên dịch và một lỗi logic: 1. **Lỗi biên dịch:** Trong hàm `main`, bạn gọi hàm `change` với biến `i` chưa được khai báo hoặc khởi tạo. Biến bạn muốn truyền vào hàm `change` có lẽ là `a`. Do đó, chương trình sẽ báo lỗi biên dịch vì `i` không được định nghĩa trong phạm vi của hàm `main`. 2. **Lỗi logic:** Ngay cả khi bạn sửa lỗi biên dịch bằng cách truyền `a` vào hàm `change`, hàm `change` chỉ thay đổi giá trị của tham số `A` bên trong hàm đó. Giá trị của biến `a` trong hàm `main` không bị ảnh hưởng vì C truyền tham trị (pass by value). Do đó, `a` vẫn giữ giá trị ban đầu là 5. Tuy nhiên, do lỗi biên dịch, chương trình sẽ không chạy và sẽ báo lỗi. Nếu ta giả sử đoạn mã được sửa để biên dịch thành công (ví dụ, bằng cách thay `Change(i)` thành `Change(a)`) thì đáp án sẽ là 5 (như đã giải thích ở trên). Vì đề bài hỏi "Kết quả của chương trình sau là gì", và chương trình bị lỗi nên đáp án chính xác nhất là báo lỗi khi thực hiện chương trình.

Câu hỏi liên quan