ADMICRO
What will be the output of the program?
#include <stdio.h>
#include <conio.h>
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--);
}
Chính xác
Xem lời giải
Hãy suy nghĩ và trả lời câu hỏi trước khi xem đáp án
ADSENSE / 4
Lời giải:
Báo saiHà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).
Câu hỏi này thuộc ngân hàng trắc nghiệm dưới đây, bấm vào Xem chi tiết để làm
toàn bài
ZUNIA12
ZUNIA9
AANETWORK