JavaScript is required

Chương trình sẽ in ra “laptrinhc++” bao nhiêu lần? #include void main() { printf("laptrinhc++"); main(); }

A.

Thời gian vô hạn

B.

65535 lần

C.

Ngăn xếp Till tràn

D.

Không thể gọi main( ) trong main( )

Trả lời:

Đáp án đúng: C


Chương trình này định nghĩa hàm `main` và trong hàm `main` lại gọi chính nó. Đây là một ví dụ về đệ quy. Tuy nhiên, trong trường hợp này, không có điều kiện dừng cho đệ quy. Do đó, hàm `main` sẽ liên tục được gọi, in ra "laptrinhc++" mỗi lần gọi. Quá trình này sẽ tiếp diễn cho đến khi bộ nhớ ngăn xếp (stack) bị tràn, dẫn đến lỗi chương trình. * **Phương án A:** "Thời gian vô hạn" không chính xác vì chương trình sẽ kết thúc khi gặp lỗi tràn bộ nhớ ngăn xếp. * **Phương án B:** "65535 lần" là một con số cụ thể và không đúng trong trường hợp này, số lần in phụ thuộc vào kích thước stack. * **Phương án C:** "Ngăn xếp Till tràn" mô tả chính xác điều gì sẽ xảy ra. * **Phương án D:** "Không thể gọi main() trong main()" là sai, vì C/C++ cho phép gọi hàm main() từ bên trong hàm main() (đệ quy). Vì vậy, đáp án đúng nhất là C.

Câu hỏi liên quan