C Programming

Find Output of Program

C Programming Exercise Mode

Find Output of Program

Practice and master this topic with our carefully crafted questions.

10 Questions
15 Minutes
0% Completed
QUEST ? !
Question 1

What is the output of the program in Turbo C (in DOS 16-bit OS)?

#include<stdio.h>
int main()
{
    char *s1;
    char far *s2;
    char huge *s3;
    printf("%d, %d, %d\n", sizeof(s1), sizeof(s2), sizeof(s3));
    return 0;
}


A
2, 4, 6
B
4, 4, 2
C
2, 4, 4
D
2, 2, 2
Correct Answer: Option C

Any pointer size is 2 bytes. (only 16-bit offset)
So, char *s1 = 2 bytes.
So, char far *s2; = 4 bytes.
So, char huge *s3; = 4 bytes.
A far, huge pointer has two parts: a 16-bit segment value and a 16-bit offset value.

Since C is a compiler dependent language, it may give different output in other platforms. The above program works fine in Windows (TurboC), but error in Linux (GCC Compiler).

Question 2

What is the output of the program

#include<stdio.h>
int main()
{
    struct emp
    {
        char name[20];
        int age;
        float sal;
    };
    struct emp e = {"Tiger"};
    printf("%d, %f\n", e.age, e.sal);
    return 0;
}

A
0, 0.000000
B
Garbage values
C
Error
D
None of above
Correct Answer: Option A

When an automatic structure is partially initialized remaining elements are initialized to 0(zero).

Question 3

What is the output of the program?

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


A
20
B
0
C
Garbage Value
D
Error
Correct Answer: Option

extern int a; indicates that the variable a is defined elsewhere, usually in a separate source code module.

printf("%d\n", a); it prints the value of local variable int a = 20. Because, whenever there is a conflict between local variable and global variable, local variable gets the highest priority. So it prints 20.

Question 4

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
0
B
3.14
C
4
D
3
E
Compile Error
Correct Answer: Option E
2 Errors
1. Type mismatch in redeclaration of fun
2. Type mismatch in parameter aa
Question 5

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, 5
B
3, 2, 515
C
515, 2, 3
D
None of these
Correct Answer: Option B

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.

Question 6

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
3, 2, 2
C
0, 0, 0
D
2, 3, 3
Correct Answer: Option C

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

Question 7

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
Correct Answer: Option A

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

Question 8

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
Correct Answer: Option B
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 9

In the following program how long will the for loop get executed?

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


A
The for loop would not get executed at all
B
The for loop would get executed only once
C
The for loop would get executed 5 times
D
The for loop would get executed infinite times
Correct Answer: Option D

During the for loop execution scanf() ask input and then printf() prints that given input. This process will be continued repeatedly because, scanf() returns the number of input given, the condition is always true(user gives a input means it reurns '1').

Hence this for loop would get executed infinite times.

Question 10

What will be the output of the program?

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


A
40 40
B
20 40
C
20
D
Error
Correct Answer: Option B

In case of a conflict between a local variable and global variable, the local variable gets priority.