I agree with porter completely, i don't understand why people think that they are testing C skills by asking this question, and other big mistake is stating that this is the exact answer.
as far as the code is concerned
to understand the consequence of the statement p = p + 40,a person need to know that p would be pointing to a memory location 40 bytes ahead
but using this knowledge, no body can predict the output.How can somebody state the output is "mno"
if he/she state's that while using compiler X on operating system Y on Z bit machine we may get the output "mno" is acceptable.
I am sorry man, please don't take it as a offense
Rakesh UV