C Programming - Complicated Declarations
Exercise : Complicated Declarations - Find Output of Program
- Complicated Declarations - General Questions
- Complicated Declarations - Find Output of Program
- Complicated Declarations - Point Out Errors
- Complicated Declarations - True / False Questions
- Complicated Declarations - Yes / No Questions
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;
}
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;
}
Answer: Option
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.
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;
}
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;
}
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);
}
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers