Find Output Of Program

Question 1 :

What will be the output of the program?

#include < stdio . h >

int main()
{
    int i;
    i = printf("How r u\n");
    i = printf("%d\n", i);
    printf("%d\n", i);
    return 0;
}


A).
How r u
7
2
B).
How r u
8
2
C).
How r u
1
1
D). Error: cannot assign printf to variable
Answer : Option B

Explanation :

In the program, printf() returns the number of charecters printed on the console
i = printf("How r u\n"); This line prints "How r u" with a new line character and returns the length of string printed then assign it to variable i.
So i = 8 (length of '\n' is 1).

i = printf("%d\n", i); In the previous step the value of i is 8. So it prints "8" with a new line character and returns the length of string printed then assign it to variable i. So i = 2 (length of '\n' is 1).

printf("%d\n", i); In the previous step the value of i is 2. So it prints "2".


Question 2 :

What will be the output of the program?

#include < stdio . h >
#include
int main()
{
    float i = 2.5;
    printf("%f, %d", floor(i), ceil(i));
    return 0;
}


A). 2, 3
B). 2.000000, 3
C). 2.000000, 0
D). 2, 0
Answer : Option C

Explanation :

Both ceil() and floor() return the integer found as a double.
floor(2.5) returns the largest integral value(round down) that is not greater than 2.5. So output is 2.000000.
ceil(2.5) returns 3, while converting the double to int it returns '0'.
So, the output is '2.000000, 0'.


Question 3 :

What will be the output of the program?

#include < stdio . h >
int main()
{
    int i;
    i = scanf("%d %d", &i, &i);
    printf("%d\n", i);
    return 0;
}


A). 1
B). 2
C). Garbage value
D). Error: cannot assign scanf to variable
Answer : Option B

Explanation :

scanf() returns the number of variables to which you are provding the input.
i = scanf("%d %d", &i, &i); Here Scanf() returns 2. So i = 2.
printf("%d\n", i); Here it prints 2.


Question 4 :

What will be the output of the program?

#include < stdio . h >
int main()
{
    int i;
    char c;
    for(i=1; i <= 5; i++)
    {
        scanf("%c", &c); /* given input is 'b' */
        ungetc(c, stdout);
        printf("%c", c);
        ungetc(c, stdin);
    }
    return 0;
}


A). bbbb
B). bbbbb
C). b
D). Error in ungetc statement.
Answer : Option C

Explanation :

The ungetc() function pushes the character c back onto the named input stream, which must be open for reading.
This character will be returned on the next call to getc or fread for that stream.
One character can be pushed back in all situations.
A second call to ungetc without a call to getc will force the previous character to be forgotten.


Question 5 :

What will be the output of the program?

#include < stdio . h >
#include

int main()
{
    char *i = "55.555";
    int result1 = 10;
    float result2 = 11.111;
    result1 = result1+atoi(i);
    result2 = result2+atof(i);
    printf("%d, %f", result1, result2);
    return 0;
}


A). 55, 55.555
B). 66, 66.666600
C). 65, 66.666000
D). 55, 55
Answer : Option C

Explanation :

Function atoi() converts the string to integer.
Function atof() converts the string to float.

result1 = result1+atoi(i);
Here result1 = 10 + atoi(55.555);
result1 = 10 + 55;
result1 = 65;

result2 = result2+atof(i);
Here result2 = 11.111 + atof(55.555);
result2 = 11.111 + 55.555000;
result2 = 66.666000;
So the output is "65, 66.666000" .