C Programming - Complicated Declarations

1. 

What will be the output of the program?

#include<stdio.h>

int main()
{
    char far *near *ptr1;
    char far *far *ptr2;
    char far *huge *ptr3;
    printf("%d, %d, %d\n", sizeof(ptr1), sizeof(ptr2), sizeof(ptr3));
    return 0;
}

A. 4, 4, 8
B. 4, 4, 4
C. 2, 4, 4
D. 2, 4, 8

Answer: Option C

Explanation:

No answer description available for this question. Let us discuss.

2. 

What will be the output of the program in DOS (Compiler - Turbo C)?

#include<stdio.h>
double i;

int main()
{
    (int)(float)(char) i;
    printf("%d", sizeof((int)(float)(char)i));
    return 0;
}

A. 1
B. 2
C. 4
D. 8

Answer: Option B

Explanation:

Due to the C language is being platform dependent:

In Turbo C (DOS - 16 bit platform), the output will be 2.

But in GCC (Unix/Linux - 32 bit platform), the output will be 4.

3. 

What will be the output of the program?

#include<stdio.h>

int main()
{
    char huge *near *far *ptr1;
    char near *far *huge *ptr2;
    char far *huge *near *ptr3;
    printf("%d, %d, %d\n", sizeof(**ptr1), sizeof(ptr2), sizeof(*ptr3));
    return 0;
}

A. 4, 4, 4
B. 2, 2, 2
C. 2, 8, 4
D. 2, 4, 8

Answer: Option A

Explanation:

No answer description available for this question. Let us discuss.

4. 

What will be the output of the program (in Turbo C under DOS)?

#include<stdio.h>

int main()
{
    char huge *near *far *ptr1;
    char near *far *huge *ptr2;
    char far *huge *near *ptr3;
    printf("%d, %d, %d\n", sizeof(ptr1), sizeof(ptr2), sizeof(ptr3));
    return 0;
}

A. 4, 4, 8
B. 2, 4, 4
C. 4, 4, 2
D. 2, 4, 8

Answer: Option C

Explanation:

No answer description available for this question. Let us discuss.

5. 

What will be the output of the program?

#include<stdio.h>
typedef void v;
typedef int i;

int main()
{
    v fun(i, i);
    fun(2, 3);
    return 0;
}
v fun(i a, i b)
{
    i s=2;
    float i;
    printf("%d,", sizeof(i));
    printf(" %d", a*b*s);
}

A. 2, 8
B. 4, 8
C. 2, 4
D. 4, 12

Answer: Option D

Explanation:

No answer description available for this question. Let us discuss.