Find Output Of Program

Question 6 :

What will be the output of the program?

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


A). 20
B). 40
C). Error
D). No Output
Answer : Option A

Explanation :

Whenever there is conflict between a local variable and global variable, the local variable gets priority.


Question 7 :

What is the output of the program

#include<stdio.h>
int main()
{
    int x = 10, y = 20, z = 5, i;
    i = x < y < z;
    printf("%d\n", i);
    return 0;
}


A). 0
B). 1
C). Error
D). None of these
Answer : Option B

Explanation :

Since x < y turns to be TRUE it is replaced by 1. Then 1 < z is compared and to be TRUE. The 1 is assigned to i.


Question 8 :

What is the output of the program

#include<stdio.h>
int main()
{
    extern int fun(float);
    int a;
    a = fun(3.14);
    printf("%d\n", a);
    return 0;
}
int fun(int aa)
{
    return (int)++aa;
}


A). 3
B). 3.14
C). 0
D). 4
E). Compile Error
Answer : Option E

Explanation :

2 Errors
1. Type mismatch in redeclaration of fun
2. Type mismatch in parameter aa


Question 9 :

What is the output of the program

#include<stdio.h>
int main()
{
    int a[5] = {2, 3};
    printf("%d, %d, %d\n", a[2], a[3], a[4]);
    return 0;
}

 


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

Explanation :

When an automatic array is partially initialized, the remaining elements are initialized to 0.


Question 10 :

What is the output of the program?

#include<stdio.h>
int main()
{
    union a
    {
        int i;
        char ch[2];
    };
    union a u;
    u.ch[0] = 3;
    u.ch[1] = 2;
    printf("%d, %d, %d\n", u.ch[0], u.ch[1], u.i);
    return 0;
}


A). 3, 2, 515
B). 515, 2, 3
C). 3, 2, 5
D). None of these
Answer : Option A

Explanation :

printf("%d, %d, %d\n", u.ch[0], u.ch[1], u.i); It prints the value of u.ch[0] = 3, u.ch[1] = 2 and it prints the value of u.i means the value of entire union size.

So the output is 3, 2, 515.