TopBottom

Followers



Click on more
SUBSCRIBE

Enter your email address:

Delivered by FeedBurner



VIDEO

Announcement: wanna exchange links? contact me at ravikrak@yahoo.com

Objective Type Questions on Pointers

Posted by Ravi Kumar at Sunday, September 25, 2011
Share this post:
Ma.gnolia DiggIt! Del.icio.us Yahoo Furl Technorati Reddit

1.What would be the output of the following program?
#include "stdio.h"
main( )
{
printf( "%d %d", sizeof(NULL),sizeof(" " ) );
}

(a) 1 1
(b) 1 2
(c) 2 1
(d) 2 2

Ans: c

2.How many bytes are occupied by near,far and huge
pointers?

(a) 2,2,4
(b) 2,4,4
(c) 2,4,2
(d) 2,2,2

Ans: b

4.Can anything else generate a Null Pointer Assignment
error?

(a) Yes
(b) No
(c) Can't say
(d) None

Ans: a

5. Are the three declarations char **apple, char
*orange[ ], and char cherry [ ] [ ] same?

(a) Yes
(b) No
(c) Can't say
(d) None

Ans: b

6.Can two different near pointers contain two different
addresses but refer to the same location in memory?

(a) Yes
(b) No
(c) Can't say
(d) None

Ans: b

7. Can two different far pointers contain two different
addresses but refer to the same location in memory?

(a) Yes
(b) No
(c) Can't say
(d) None

Ans: a

8. Can two different huge pointers contain two different
addresses but refer to the same location in memory?

(a) Yes
(b) No
(c) Can't say
(d) None

Ans: b

9.Would the following program give any warning on compilation?

#include "stdio.h"
main( )
{
int *p1,i=25;
void *p2;
p1=&i;
p2=&i;
p1=p2;
p2=p1;
}

(a) Yes
(b) No
(c) Can't say
(d) None

Ans: b

10.Would the following program give any warning on compilation?

#include "stdioh"
main( )
{
float *p1,i=25.50;
char *p2;
p1=&i;
p2=&i;
}

(a) Yes. Suspicious pointer conversion in function main
(b) No
(c) Can't say
(d) None

Ans: a

11.What warning would be generated on compiling the following
program?

main( )
{
char far *scr;
scr=0*B8000000;
*scr = 'A';
}

(a) Suspicious pointer conversion in function main
(b) Non-portable pointer assignment in function main
(c) Can't say
(d) None

Ans: b

12.How would you eliminate the warning generated on compiling
the following program?

main( )
{
char far *scr;
scr=0*B8000000;
*scr = 'A';
}

(a) Use the typecast scr= (char *far ) 0*B8000000;
(b) Use the typecast scr= (char far * ) 0*B8000000;
(c) Use the typecast scr= (char **far ) 0*B8000000;
(d) Use the typecast scr= (char far ** ) 0*B8000000;

Ans: b

13. In a large data model (compact, large, huge) all pointers
to data are 32 bits long,whereas in a small data model (tiny,
small,medium) all pointers are 16 bits long

(a) True
(b) False
(c) Can't say
(d) None

Ans: a

14. A near pointer uses the contents of CS register
(if the pointer is pointing to code) or contents of DS
register (if the pointer is pointing to data) for the
segment part,whereas the offset part is stored in the
16-bit near pointer

(a) True
(b) False
(c) Can't say
(d) None

Ans: a

15. What would be the output of the following program?

main( )
{
char far *a=0*00000120;
char far *b=0*00100020;
char far *c=0*00120000;
if(a==b)
printf("\nHello");
if(a==c)
printf("\nHi");
if(b==c)
printf("\nHello Hi");
if(a>b && a>c &&b>c)
printf("\nBye");
}

(a) Hello
(b) Hi
(c) Hello Hi
(d) Bye

Ans: d

16. What would be the output of the following program?

main( )
{
char huge *a=0*00000120;
char huge *b=0*00100020;
char huge *c=0*00120000;
if(a==b)
printf("\nHello");
if(a==c)
printf("\nHi");
if(b==c)
printf("\nHello Hi");
if(a>b && a>c &&b>c)
printf("\nBye");
}

(a) Hello
(b) Hi
(c) Hello Hi
(d) all

ans: d

17. Are the expressions *ptr++ and ++*ptr same?

(a) Yes
(b) No
(c) Can't Say
(d) None
Ans: b

18.Can you write another expression which does the same
job as ++*ptr?

(a) (ptr*)++
(b) *ptr++
(c) ptr*++
(d) (*ptr)++

Ans: d

19. What would be the equivalent pointer expression for
referring the same element as a[i][j][k][l]?

(a) *(*(*(*(a+i)+j)+k)+l)
(b) *(*(*(*a[i])[j])[k])[l])
(c) both
(d) None

Ans: a

20. What would be the output of the following program ?
main( )
{
int arr[ ]={12,13,14,15,16};
printf("\n%d %d %d",sizeof(arr),sizeof(*arr),
sizeof(arr[0]));
}

(a) 10 4 4
(b) 10 4 2
(c) 10 2 2
(d) 10 2 4

Ans: c

21.What would be the output of the following program
assuming that the array begins at location 1002?

main( )
{
int a[3][4]={1,2,3,4,
5,6,7,8,
9,10,11,12
};
printf( "\n%u %u %u",a[0]+1,*(a[0]+1),*(*(a+0)+1));
}

(a) 1004 2 2
(b) 1004 4 4
(c) 1002 2 2
(d) 1002 4 4

Ans: a

22. What would be the output of the following program
assuming that the array begins at location 1002?

main( )
{
int a[2][3][4]={ {
1,2,3,4,
5,6,7,8,
9,1,1,2
},
{
2,1,4,7,
6,7,8,9,
0,0,0,0
}
};
printf("\n%u %u %u %d",a,*a,**a,***a);
}

(a) 1002 1002 1002 2
(b) 1002 1002 1002 1
(c) 1004 1004 1004 1
(d) 1004 1004 1004 2

Ans: b

23. In the following program how would you print 50
using p?

main( )
{
int a[ ]={10,20,30,40,50};
char *p;
p = (char *) a;
}

(a) printf("\n%d",*( (int *)p+4) );
(b) printf("\n%d",( (int *)p+4) );
(c) printf("\n%d",*( (int )p+4) );
(d) printf("\n%d",*( (int **)p+4) );

Ans: a

24.In the following program add a statement in the
function fun( ) such that address
of a gets stored
in j

main( )
{
int *j;
void fun(int **);
fun(&j);
}
void fun(int **k)
{
int a=10;
}

(a) *k=&a;
(b) &a=*k;
(c) &k=*a;
(d) *a=&k;

Ans: a

25.How would you declare an array of three function
pointers where each function receives two ints and
returns a float?

(a) float (arr[3])(int,int);
(b) int (arr[3])(float,float);
(c) int (*arr[3])(float,float);
(d) float(*arr[3])(int,int);

Ans: d

Share |

Labels:

0 comments:

Post a Comment