The correct answer is has given.
Explanation:
The Present Perfect tense is formed using 'have/has' + past participle of the verb. Since 'John' is a singular subject, we use 'has'. The past participle of 'give' is 'given'. Thus, the correct form is 'has given'.