When a number starts with a leading "0", it's interpreted as an octal number, which can only use digits 0-7 (inclusive). Fix this, recompile and see what the output is.
Also, do you know that using %x will print out your number in hexadecimal?
(i) you are assigning simple ASCII string here that is literally "0x5000533008098217". But since you are defining 'pwwn' to be 8 byte long the string will be striped by compiler to first 8 characters so the assigned string becomes "0x500053" without 0 byte at the end.
(ii) this is just wrong, you cant assign any kind of number to a stack array directly. To set content to an array at this step is possible only with ways from my previous post.
Unless you write/find a custom function to do it, no you can't.
strcpy() will copy until 0 terminated char is reached and you have 0 char in second position so it will copy only first byte and leave the rest the same.