main()

{

char *p="hai friends",*p1;

p1=p;

while(*p!='\0') ++*p++;

printf("%s %s",p,p1);

}

Answers were Sorted based on User's Feedback



main() { char *p="hai friends",*p1; p1=p; while(*p!='\0') ++*p++;..

Answer / susie

Answer :

ibj!gsjfoet

Explanation:

++*p++ will be parse in the given order

> *p that is value at the location currently pointed by p
will be taken

> ++*p the retrieved value will be incremented

> when ; is encountered the location will be incremented
that is p++ will be executed




Hence, in the while loop initial value pointed by p is ‘h’,
which is changed to ‘i’ by executing ++*p and pointer moves
to point, ‘a’ which is similarly changed to ‘b’ and so on.
Similarly blank space is converted to ‘!’. Thus, we obtain
value in p becomes “ibj!gsjfoet” and since p reaches ‘\0’
and p1 points to p thus p1doesnot print anything.

Is This Answer Correct ?    6 Yes 1 No

main() { char *p="hai friends",*p1; p1=p; while(*p!='\0') ++*p++;..

Answer / sourav punoriyar

checked in gcc.

it gives segmentation fault(core dump),in gcc...
because the char *p="hai friends",is a pointer pointing to
this string in the code section,(this string is present in
code section.)
now,
++*p=this is ++(*p)=h+1=i,and stores it in p,but data in
code section cannot be modified so core dump.
if
*p++,first dereference and then increases the pointer....so
it will point to a now.

Is This Answer Correct ?    2 Yes 0 No

main() { char *p="hai friends",*p1; p1=p; while(*p!='\0') ++*p++;..

Answer / sourav punoriyar

but in turbo c it can be the given ans ,as given by susie,
as there it gets stored in datasection which is modifiable

Is This Answer Correct ?    1 Yes 0 No

Post New Answer

More C Code Interview Questions

void main () { int x = 10; printf ("x = %d, y = %d", x,--x++); } a. 10, 10 b. 10, 9 c. 10, 11 d. none of the above

2 Answers   HCL,


Predict the Output: int main() { int *p=(int *)2000; scanf("%d",2000); printf("%d",*p); return 0; } if input is 20 ,what will be print

2 Answers  


posted by surbhi just now main() { float a = 5.375; char *p; int i; p=(char*)&a; for(i=0;i<=3;i++) printf("%02x",(unsigned char) p[i]); } how is the output of this program is :: 0000ac40 please let me know y this output has come

2 Answers   GATE,


Write a function to find the depth of a binary tree.

13 Answers   Adobe, Amazon, EFI, Imagination Technologies,


main() { int i=300; char *ptr = &i; *++ptr=2; printf("%d",i); }

4 Answers   CSC,






main() { unsigned int i=10; while(i-->=0) printf("%u ",i); }

2 Answers   HP,


Write a program to receive an integer and find its octal equivalent?

7 Answers  


How can i find first 5 natural Numbers without using any loop in c language????????

2 Answers   Microsoft,


write a program in c to merge two array

2 Answers  


main() { show(); } void show() { printf("I'm the greatest"); }

2 Answers  


main() { int i=3; switch(i) { default:printf("zero"); case 1: printf("one"); break; case 2:printf("two"); break; case 3: printf("three"); break; } }

1 Answers  


void main() { static int i=5; if(--i){ main(); printf("%d ",i); } }

1 Answers  


Categories