Point Out Correct Statements

Question 1 :

Which of the following statements are correct about the program?

#include

int main()
{
    printf("%p\n", main());
    return 0;
}


A). It prints garbage values infinitely
B). Runs infinitely without printing anything
C). Error: main() cannot be called inside printf()
D). No Error and print nothing
Answer : Option B

Explanation :

In printf("%p\n", main()); it calls the main() function and then it repeats infinetly, untill stack overflow.


Question 2 :

There is a error in the below program. Which statement will you add to remove it?

#include
int main()
{
    int a;
    a = f(10, 3.14);
    printf("%d\n", a);
    return 0;
}
float f(int aa, float bb)
{
    return ((float)aa + bb);
}


A). Add prototype: float f(aa, bb)
B). Add prototype: float f(int, float)
C). Add prototype: float f(float, int)
D). Add prototype: float f(bb, aa)
Answer : Option B

Explanation :

The correct form of function f prototype is float f(int, float);


Question 3 :

Which of the following statements are correct about the function?

long fun(int num)
{
    int i;
    long f=1;
    for(i=1; i<=num; i++)
        f = f * i;
    return f;
}


A). The function calculates the value of 1 raised to power num.
B). The function calculates the square root of an integer
C). The function calculates the factorial value of an integer
D). None of above
Answer : Option C

Explanation :

Yes, this function calculates and return the factorial value of an given integer num.