I think it's the line
a[i]=b[k];
Doesn't this put the contents of b[k]
(which you have not initialized) into a[i]
(which you have populated with the get)? This overwrites the test value in a with blanks, (or whatever was in b's memory) Shouldn't you do the opposite?
But better is not to do it at all - you can just compare the characters in place in the a array.
k=strlen(a);
for(i=0; i<k/2; i++)
if(a[i] != a[k-i])
return "Not Palindrome";
return "Palindrome";