Wednesday 4 January 2012

Placement Questions-5

What is the output of the following Program?
main()

{
 int c[ ]={2.8,3.4,4,6.7,5};
int j,*p=c,*q=c;
 for(j=0;j<5;j++) 
    { 
printf("%d",*c);
++q; 
}

for(j=0;j<5;j++)
{
 printf(" %d ",*p); ++p;
 }
}


Answer:
2 2 2 2 2 2 3 4 6 5
Explanation:
Initially pointer c is assigned to both p and q.
In the first loop, 
since only q is incremented and not c , the value 2 will be printed 5 times.
In second loop p itself is incremented.
So the values 2 3 4 6 5 will be printed.

4 comments:

  1. we will get an error if u execute this program because instead of "%d" he placed "d"

    ReplyDelete
  2. Look at it clearly its "%d" itself.Not "d".....!!!

    ReplyDelete
  3. first for loop prints the initial address of c array for five times
    n
    second for loop prints 2 3 4 6 5

    ReplyDelete
  4. No akash thats not the correct answer but good try...
    Can do better try again....!!

    ReplyDelete

host gator coupon