Data Structure Multiple Choice Questions & Answers (MCQs) on “Fibonacci using Recursion”.
1. Suppose the first fibonnaci number is 0 and the second is 1. What is the sixth fibonnaci number? Answer: a 2. Which of the following is not a fibonnaci number? Answer: d 3. Which of the following option is wrong? Answer: d 4. Consider the following iterative implementation to find the nth fibonacci number? Which of the following lines should be added to complete the above code? b) c) d) Answer: b 5. Which of the following recurrence relations can be used to find the nth fibonacci number? Answer: d 6. Consider the following recursive implementation to find the nth fibonacci number: Which of the following lines should be inserted to complete the above code? 7. Consider the following recursive implementation to find the nth fibonnaci number: Which of the following is the base case? Answer: d 8. What is the time complexity of the following recursive implementation to find the nth fibonacci number? a) O(1) 9. What is the space complexity of the following recursive implementation to find the nth fibonacci number? a) O(1) Answer: a 10. What is the output of the following code? a) 0 Answer: d 11. What is the output of the following code? a) 1 Answer: c 12. How many times will the function fibo() be called when the following code is executed? a) 5 Answer: d 13. What is the output of the following code? a) 21 Answer: b
a) 5
b) 6
c) 7
d) 8
Clarification: The sixth fibonnaci number is 5.
a) 8
b) 21
c) 55
d) 14
Clarification: 14 is not a fibonnaci number.
a) Fibonacci number can be calculated by using Dynamic programming
b) Fibonacci number can be calculated by using Recursion method
c) Fibonacci number can be calculated by using Iteration method
d) No method is defined to calculate Fibonacci number
Clarification: Fibonacci number can be calculated by using Dynamic Programming, Recursion method, Iteration Method.int main()
{
int n = 10,i;
if(n == 1)
printf("0");
else if(n == 2)
printf("1");
else
{
int a = 0, b = 1, c;
for(i = 3; i <= n; i++)
{
c = a + b;
________;
________;
}
printf("%d",c);
}
return 0;
}
a) c = b
b = a
a = b
b = c
b = c
a = b
a = b
b = a
Clarification: The lines “a = b” and “b = c” should be added to complete the above code.
a) F(n) = F(n) + F(n – 1)
b) F(n) = F(n) + F(n + 1)
c) F(n) = F(n – 1)
d) F(n) = F(n – 1) + F(n – 2)
Clarification: The relation F(n) = F(n – 1) + F(n – 2) can be used to find the nth fibonacci number.int fibo(int n)
{
if(n == 1)
return 0;
else if(n == 2)
return 1;
return ________;
}
int main()
{
int n = 5;
int ans = fibo(n);
printf("%d",ans);
return 0;
}
a) fibo(n – 1)
b) fibo(n – 1) + fibo(n – 2)
c) fibo(n) + fibo(n – 1)
d) fibo(n – 2) + fibo(n – 1)
Answer: b
Clarification: The line fibo(n – 1) + fibo(n – 2) should be inserted to complete the above code.int fibo(int n)
{
if(n == 1)
return 0;
else if(n == 2)
return 1;
return fibo(n - 1) + fibo(n - 2);
}
int main()
{
int n = 5;
int ans = fibo(n);
printf("%d",ans);
return 0;
}
a) if(n == 1)
b) else if(n == 2)
c) return fibo(n – 1) + fibo(n – 2)
d) both if(n == 1) and else if(n == 2)
Clarification: Both if(n == 1) and else if(n == 2) are the base cases.int fibo(int n)
{
if(n == 1)
return 0;
else if(n == 2)
return 1;
return fibo(n - 1) + fibo(n - 2);
}
int main()
{
int n = 5;
int ans = fibo(n);
printf("%d",ans);
return 0;
}
b) O(2*n)
c) O(n2)
d) O(2n)
Answer: d
Clarification: The time complexity of the above recursive implementation to find the nth fibonacci number is O(2n).int fibo(int n)
{
if(n == 1)
return 0;
else if(n == 2)
return 1;
return fibo(n - 1) + fibo(n - 2);
}
int main()
{
int n = 5;
int ans = fibo(n);
printf("%d",ans);
return 0;
}
b) O(2*n)
c) O(n2)
d) O(2n)
Clarification: The space complexity of the above recursive implementation to find the nth fibonacci number is O(1).int fibo(int n)
{
if(n == 1)
return 0;
else if(n == 2)
return 1;
return fibo(n - 1) + fibo(n - 2);
}
int main()
{
int n = -1;
int ans = fibo(n);
printf("%d",ans);
return 0;
}
b) 1
c) Compile time error
d) Runtime error
Clarification: Since negative numbers are not handled by the program, the function fibo() will be called infinite times and the program will produce a runtime error when the stack overflows.int fibo(int n)
{
if(n == 1)
return 0;
else if(n == 2)
return 1;
return fibo(n - 1) + fibo(n - 2);
}
int main()
{
int n = 5;
int ans = fibo(n);
printf("%d",ans);
return 0;
}
b) 2
c) 3
d) 5
Clarification: The program prints the 5th fibonacci number, which is 3.int fibo(int n)
{
if(n == 1)
return 0;
else if(n == 2)
return 1;
return fibo(n - 1) + fibo(n - 2);
}
int main()
{
int n = 5;
int ans = fibo(n);
printf("%d",ans);
return 0;
}
b) 6
c) 8
d) 9
Clarification: The function fibo() will be called 9 times, when the above code is executed.int fibo(int n)
{
if(n == 1)
return 0;
else if(n == 2)
return 1;
return fibo(n - 1) + fibo(n - 2);
}
int main()
{
int n = 10;
int ans = fibo(n);
printf("%d",ans);
return 0;
}
b) 34
c) 55
d) 13
Clarification: The program prints the 10th fibonacci number, which is 34.