Sail E0 Webinar

MCQs

Total Questions : 63 | Page 1 of 7 pages
Question 1.

In a function two return statements should never occur.


  1.    Yes
  2.    No
 Discuss Question
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
 Discuss Question
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
 Discuss Question
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
 Discuss Question
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
 Discuss Question
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
 Discuss Question
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
 Discuss Question
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
 Discuss Question
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
 Discuss Question
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
 Discuss Question
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


Latest Videos

Latest Test Papers