#include #include int reverse(int); void main() { int n = 5; reverse(n); getch(); } int reverse(int n) { if(n == 0) return 0; else printf(“%d”, n); reverse(n–); } What will be the output of the program?

#include

#include

int reverse(int);

void main()

{

int n = 5;

reverse(n);

getch();

}

int reverse(int n)

{

if(n == 0)

return 0;

else

printf(“%d”, n);

reverse(n–);

}

What will be the output of the program?

A. 543210

B. 54321

C. 12345

D. Infinite loop

Hướng dẫn

Chọn D là đáp án đúng

Xem lời giải

Xem lời giải

Hàm reverse() là hàm đệ quy.

n = 5, câu lệnh gọi hàm reverse(n–) reverse(5) vì biến n giảm sau khi gọi hàm.

Vì giá trị truyền vào cho hàm reverse ko thay đổi. Do vậy, chương trình đệ qui rơi vào vòng lặp vô hạn.

Để fix chương trình này, thay reverse(n–) bằng reverse(–n).

 

Thư viện tài liệu12 Tháng bảy, 2023 @ 3:03 chiều

Đánh giá chủ đề này