#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