「彼は誰と話しましたか?」といいたい場合、「Who did he talk with?」と「Whom did he talk with?」のどちらが正しいですか?

「Whom did he talk with?」が正しいです。

この質問のように、質問文で求めている「誰」が回答文の目的語になる場合は、「whom」が使用されます。

質問:Whom did he talk with?(彼は誰と話しましたか?)

回答:He talked with Adam.(彼はAdamと話しました)

質問で求めている「誰」は回答文の目的語である「Adam」となります。

難易度:7/10
関連リンク:「Who did you see?」と「Who saw you?」のどちらが、動詞「see」の過去形の疑問文として正しいですか?

「誰」と聞きたい場合、「who」と「whom」どちらを使えば良いですか?

質問が求めている「誰」が、回答文の主語になる場合、「who」を使います。また、質問が求めている「誰」が、回答文の目的語になる場合は、「whom」を使います。以下のように質問より回答を先に考えた方が分かりやすいでしょう。

(質問)(Who/Whom) bought the present?(誰がプレゼントを買いましたか?)

(回答)He bought the present. (彼がプレゼントを買いました。)

※ 質問で求められている「誰」が「he」であり、回答文の主語の為、質問では「who」になります。

(質問)Who bought the present? ◯

(質問)(Who/Whom) is the present for?(プレゼントは誰にですか? )

(回答)The present is for him.( プレゼントは彼にです。)

※ 質問で求められている「誰」が「him」であり、回答文の目的語の為、質問では「whom」になります。

(質問)Whom is the present for?  ◯

(質問)(Who/Whom) did he buy the present for?(彼は誰の為にプレゼントを買いましたか?)

(回答)He bought the present for her.(彼は彼女の為にプレゼントを買った)

※ 質問で求められている「誰」が「her」であり、回答文の目的語の為、質問では「whom」になります。

(質問)Whom did he buy the present for? ◯

難易度:8/10
関連リンク:「Whom are you waiting for?」と「For whom are you waiting?」、どちらが正しいですか?