Interview Question on C Language

Only available on StudyMode
  • Topic: C, Pointer, Data types
  • Pages : 3 (1011 words )
  • Download(s) : 85
  • Published : December 10, 2012
Open Document
Text Preview
(1) What is meaning of following declaration? int(*ptr[5])(); (a)ptr is pointer to function. (b)ptr is array of pointer to function (c)ptr is pointer to such function which return type is array. (d)ptr is pointer to array of function. (e)None of these Ans: (b) Explanation: Here ptr is array not pointer. (2) What is meaning of following pointer declaration? int(*(*ptr1)())[2]; (a)ptr is pointer to function. (b)ptr is array of pointer to function (c)ptr is pointer to such function which return type is pointer to an array. (d)ptr is pointer array of function. (e)None of these Answer: (c) Exp: (3)What is size of generic pointer in c? (a)0 (b)1 (c)2 (d)Null (e)Undefined Ans: (c) Size of any type of pointer is 2 byte (In case of near pointer) Note. By default all pointers are near pointer if default memory model is small. (4)

What will be output of following c code? #include int main(){ int *p1,**p2; double *q1,**q2; clrscr(); printf("%d %d ",sizeof(p1),sizeof(p2)); printf("%d %d",sizeof(q1),sizeof(q2)); getch(); return 0; } (a)1 2 4 8 (b)2 4 4 8 (c)2 4 2 4 (d)2 2 2 2 (e)2 2 4 4 Answer: (d) Exp: Size of any type of pointer is 2 byte (In case of near pointer) (5) What will be output if you will compile and execute the following c code? #include int main(){ char huge *p=(char *)0XC0563331; char huge *q=(char *)0XC2551341; if(p==q) printf("Equal"); else if(p>q) printf("Greater than"); else printf("Less than"); return 0; }

(a)Equal (b)Greater than (c)Less than (d)Compiler error (e)None of above Output: (a) Explanation: As we know huge pointers compare its physical address. Physical address of huge pointer p Huge address: 0XC0563331 Offset address: 0x3331 Segment address: 0XC056 Physical address= Segment address * 0X10 + Offset address =0XC056 * 0X10 +0X3331 =0XC0560 + 0X3331 =0XC3891 Physical address of huge pointer q Huge address: 0XC2551341 Offset address: 0x1341 Segment address: 0XC255 Physical address= Segment address * 0X10 + Offset address =0XC255 * 0X10...
tracking img