Both sentences, "He asked for my phone number" and "He has asked for my phone number", are grammatically valid sentences that make perfect sense in context.
The first is simple past: action happening at a specific time in the past. The second is past perfect: action happening at an unspecified time in the past. In this context, there isn't much difference: At some time in the past, he asked for her phone number. Simple past CAN be used with a specific time, like "Yesterday he asked for my phone number." You can't use a specific time with past perfect. It's often used to distinguish an unspecified time from a specific time. Like, "Did he ask you yesterday?" "No, but he has asked me."
Actually, depending on context, all three answers are potentially valid. So this is another of those "Guess which answer the teacher is thinking is correct" questions rather than a "Guess the answer that is correct" question. If you have not been told who Charles Dickens is and when he wrote "Great Expectations", then your knowledge of English literature is fairly important to getting it right.
Since the novel was written in 1860 and Dickens is dead, logic suggests that the teacher expects you to use the past tense (as is most common), to talk about a past event:
"Great Expectations" was written by Charles Dickens (in 1860).
Otherwise, if it is a new novel and Dickens is still alive, it's not uncommon for English speakers to use the present tense to talk about its creation, especially if the author is present. For example, imagine a radio show on which they discuss contemporary literature
Hello and welcome to our show Literature and You. Today we review a particularly interesting new work, "Great Expectations", which is written by renowned author Charles Dickens, and who is today's guest on our show. Welcome Mr. Dickens!
To complicate this, English speakers sometimes use the present tense to focus on the current existence of the novel itself, rather than the action of the writer. In this case "written by Charles Dickens" can be interpreted as a participle phrase:
"Great Expectations", the classic novel, is often included in grade school required reading lists. It is written by Charles Dickens.
While this is not common it should not be discounted, since this is how English speakers actually talk, not how they should talk.
Lastly, suppose this sentence is part of a kind of stream-of-consciousness historical narrative:
The year is 1859. Charles Darwin's "The Origin of Species" is causing a furor in the halls of Cambridge. "Great Expectations" has been written by Charles Dickens (but not yet published), etc.
Again, this is not common, but you should be aware that it's possible in the right context.
In any case, it's a poorly-written question -- but that's not unusual in many English classes, even when the teacher is a native speaker. Yes, (c) is the obvious answer, but a good test question should have one and only one possible answer.
Best Answer
No, it is completely false that you have to use the past simple when you use "today": it sounds as if somebody has tried to give you a simplified rule, which simply doesn't work.
You can use the present perfect when the event has some present relevance, but what that present relevance is can take different forms.
If you say it hasn't been delivered today then you are choosing to treat the period of time over which it might be delivered as continuing up to the present. This might imply that it still could be delivered (it doesn't necessarily have this implication, but it could have).
If you say it wasn't delivered today, then you are choosing to treat the period of time over which it might be delivered as having finished. This probably implies that it cannot still be delivered today.
But, as usual with perfect and continuous tenses, you have a choice of which form you use, depending on how you wish to present the temporal relationships between the events and the present.
On another subject, I find "It was attempted to deliver" extremely awkward, and possibly ungrammatical in my version of English: I would say either "they/someone tried to deliver" or "there was an attempt at delivery".
However, I have a suspicion that impersonal passives like that are more common in Indian English than my (British) English: certainly "today morning" is characteristic of Indian English, being unknown in British and American English.