The Rest Of It
1. Which of the following statements are true.
1. We have to declare a label before using it.
Ans: False. Labels are not declared.
2. Scope of a label is limited to the function in which it is placed.
Ans: True.
3. A label can be placed in the middle of an expression.
Ans: False. Label is placed at the beginning of a statement.
4. As a good programming practice we should avoid using goto
Ans: True.
5. Use of goto is recommended only for cases where we do not know how control will flow.
Ans: False. Use of goto is not recommended.
2. Which of the following statements are true.
1. Inline functions are textually substituted in the program.
Ans: False. Inline functions are merely an optimization hint.
2. inline is a hint to compiler to optimize execution time of a function.
Ans: True.
3. A static variable is initialized before program execution begins.
Ans: True
4. A local static variable can be accessed by any function in the file.
Ans: False. It is visible only inside the function. You can however use a pointer to access it.
5. An extern variable declaration does not allocate any memory for the variable.
Ans: True.
3. Which of the following statements are true.
1. In a recursive function, we should check base condition before recursive call.
Ans: True.
2. An infinite recursion will eventually evaluate to zero.
Ans: False. It will keep running forever.
3. A recursive function cannot be called with pointer arguments.
Ans: False. It can be called with any type of arguments.
4. If a function calls itself, it is called direct recursion.
Ans: True.
4. Implement recursive program for computing n factorial.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include <stdio.h> unsigned long int factorial(unsigned long n) { if (1 == n) { return 1; } return n * factorial(n-1); } int main ( int argc, char *argv[]) { unsigned int num = 0; unsigned long result = 0; printf ( "Enter a positive number: " ); scanf ( "%u" , &num); if (num == 0) { result = 1; } else { result = factorial(num); } printf ( "%u! = %lu\n" , num, result); return 0; } |
5. Implement recursive program for computing nth Fibonacci number.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include <stdio.h> unsigned long int fibonacci(unsigned long n) { if (0 == n) { return 0; } if (1 == n) { return 1; } return (fibonacci(n-1) + fibonacci(n-2)); } int main ( int argc, char *argv[]) { unsigned int num = 0; unsigned long result = 0; printf ( "Which <u>Fibonacci</u> Number would you like to find: " ); scanf ( "%u" , &num); result = fibonacci(num); printf ( "F(%u) = %lu\n" , num, result); return 0; } |