Showing posts with label Placement Questions. Show all posts
Showing posts with label Placement Questions. Show all posts

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.

Placement Question-4

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

{

char *p;

printf("%d %d ",sizeof(*p),sizeof(p));

}


Answer:
1 2
Explanation:
The sizeof() operator gives the number of bytes taken by its
operand. P is a character pointer, which needs one byte for storing its value (a
character). Hence sizeof(*p) gives a value of 1. Since it needs two bytes to store
the address of the character pointer sizeof(p) gives 2.

Placement Question-3

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

{

static int var = 5;

printf("%d ",var--);

if(var)

main();

}

Answer:
5 4 3 2 1
Explanation:
When static storage class is given, it is initialized once. The change
in the value of a static variable is retained even between the function calls. Main
is also treated like any other ordinary function, which can be called recursively.

Placement Question-2

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

{
float me = 1.1;
double you = 1.1;
if(me==you)

printf("I love U");

else

printf("I hate U");
}


Answer:
I hate U

Explanation:
For floating point numbers (float, double, long double) the values
cannot be predicted exactly.
Depending on the number of bytes, the precession

with of the value represented varies. 
Float takes 4 bytes and long double takes
10 bytes. So float stores 0.9 with less precision than long double.
Rule of Thumb:
Never compare or at-least be cautious when using floating point
numbers with relational operators (== , >, <, <=, >=,!= ) .

Placement Question-1

What is the output of the following program ?
void main()

{
int const * p=5; printf("%d",++(*p));

}

Answer:
Compiler error: Cannot modify a constant value.
Explanation:
p is a pointer to a "constant integer". But we tried to change the
value of the "constant integer".
host gator coupon