Functions(C Programming ) Questions and Answers

Question 1.

In a function two return statements should never occur.


  1.    Yes
  2.    No
Explanation:-
Answer: Option B. -> No


No, In a function two return statements can occur but not successively.
Example:


#include<stdio.h>
int mul(int, int); /* Function prototype */
int main()
{
int a = 0, b = 3, c;
c = mul(a, b);
printf("c = %d\n", c);
return 0;
}
/* Two return statements in the mul() function */
int mul(int a, int b)
{
if(a == 0 || b == 0)
{
return 0;
}
else
{
return (a * b);
}
}


Output:
c = 0



Question 2.

Is it true that too many recursive calls may result into stack overflow?


  1.    Yes
  2.    No
Explanation:-
Answer: Option A. -> Yes

Yes, too many recursive calls may result into stack overflow. because when a function is 

called its return address is stored in stack.

After sometime the stack memory will be filled completely. Hence stack overflow error will occur.



Question 3.

Usually recursion works slower than loops.


  1.    Yes
  2.    No
Explanation:-
Answer: Option A. -> Yes

When a recursive call is made, the function/process clones itself and then process that funtion. 

This leads to time and space constrains.

In a loop, there is no recursive call involved that saves a lot of time and space too.



Question 4.


Will the following functions work?


int f1(int a, int b)
{
return ( f2(20) );
}
int f2(int a)
{
return (a*a);
}
  1.    Yes
  2.    No
Explanation:-
Answer: Option A. -> Yes


Yes, It will return the value 20*20 = 400
Example:


#include<stdio.h>
int f1(int, int); /* Function prototype */
int f2(int); /* Function prototype */
int main()
{
int a = 2, b = 3, c;
c = f1(a, b);
printf("c = %d\n", c);
return 0;
}
int f1(int a, int b)
{
return ( f2(20) );
}
int f2(int a)
{
return (a * a);
}


Output:
c = 400



Question 5.

Maximum number of arguments that a function can take is 12


  1.    Yes
  2.    No
Explanation:-
Answer: Option B. -> No

No, C can accept upto 127 maximum number of arguments in a function.



Question 6.

If a function contains two return statements successively, the compiler will generate 

warnings. Yes/No ?


  1.    Yes
  2.    No
Explanation:-
Answer: Option A. -> Yes


Yes. If a function contains two return statements successively, the compiler
will GENERATE "Unreachable code" warnings.
Example:


#include<stdio.h>
int mul(int, int); /* Function prototype */
int main()
{
int a = 4, b = 3, c;
c = mul(a, b);
printf("c = %d\n", c);
return 0;
}
int mul(int a, int b)
{
return (a * b);
return (a - b); /* Warning: Unreachable code */
}


Output:
c = 12




Question 7.

Names of functions in two different files linked together must be unique


  1.    True
  2.    False
Explanation:-
Answer: Option A. -> True

True, If two function are declared in a same name, it gives "Error: Multiple declaration 

of function_name())".



Question 8.

Every function must return a value


  1.    Yes
  2.    No
Explanation:-
Answer: Option B. -> No

No, If a function return type is declared as void it cannot return any value.



Question 9.

A function may have any number of return statements each returning different values.


  1.    True
  2.    False
Explanation:-
Answer: Option A. -> True

True, A function may have any number of return statements each returning different values and each return statements will not occur successively.



Question 10.

Functions cannot return a floating point number


  1.    Yes
  2.    No
Explanation:-
Answer: Option B. -> No


A function can return floating point value.
Example:


#include<stdio.h>
float sub(float, float); /* Function prototype */
int main()
{
float a = 4.5, b = 3.2, c;
c = sub(a, b);
printf("c = %f\n", c);
return 0;
}
float sub(float a, float b)
{
return (a - b);
}


Output:
c = 1.300000