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--);
}
#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
Suy nghĩ trả lời câu hỏi trước khi xem đáp án
ATNETWORK
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
400 Câu hỏi trắc nghiệm lập trình C/C++ có đáp án và lời giải chi tiết
Tổng hợp câu hỏi trắc nghiệm lập trình C/C++ có đáp án và lời giải đầy đủ nhằm giúp các bạn dễ dàng ôn tập lại toàn bộ các kiến thức.
ADMICRO
YOMEDIA
ZUNIA9