Monday, June 8, 2009

What is the output of following programme ?

main()
{
int a=2,*f1,*f2;
f1=f2=&a;
*f2+=*f2+=a+=2.5;
*f1+=*f1+=a+=2.5;
printf("\n%d %d %d",a,*f1,*f2);
}

Choice
a) 18,18,18
b) 10,10,10
c) 72,72,72
d) 64,64,64
e) 26,26,26

2 comments:

Zahid Ghadialy said...

I am not sure if the answer is correct. According to you, the correct answer is 26 but according to me its 72. Just to be absolutely sure, I wrote a program and tested using VC8 (ok, i used C++ but the result would be the same).

Vikram said...

I tested it on Linux fedora machine. And answer is 26/26/26. Actually the answer is quiet surprising