19.He would have made the speech but that he _____ a sore throat.
(A) has
(B) had
(C) had had
(D) has had
統計: A(3), B(107), C(91), D(7), E(0) #222513
詳解 (共 8 筆)
But that 的意思是「若非;要不是」,是條件句的另一種句型。它的後面接子句,不過我們也可將之改為「but for + 名詞」(而 but for 又等於 without)。
由於 But that 子句敘述的是事實,所以若為現在式,則使用簡單現在式,若為過去式,則使用簡單過去式。而主要子句係屬假設的敘述 (非事實),所以若與現在事實相反,則句型為「主詞 + would/should/could/might + 原形動詞」;若與過去事實相反,則句型為「主詞 + would/should/could/might + have + P.P.」。不過,它們也都可以改為用 if 引導的假設語氣條件句。注意:此時 if 子句的敘述必須分別與現在和過去事實相反。請看下面的例句 (第一句為問題中的句子) 並加以分析,以徹底瞭解這些實用句型及其變化:
- But that there is water, (現在事實的敘述) there would be no fish. (與現在事實相反) — (要不是有水,就不可能有魚)
= If there were no water, (若無水 — 與現在事實相反) there would be no fish.
= But for water, there would be no fish.
= Without water, there would be no fish. (but for = without,意思亦是「若非;要不是」,但後面接名詞) - But that you helped me, (過去事實的敘述) I would not have succeeded. (與過去事實相反) — (要不是你幫忙,我就不會成功)
= If you had not helped me, (如果沒有你的幫忙 — 與過去事實相反) I would not have succeeded.
= But for your help, I would not have succeeded.
= Without your help, I would not have succeeded.
重點提示:
1. But that 是從屬連接詞,意為「要不是」或「若非」,引出副詞子句。
若為現在事實用現在式,後接表相反於現在的主要子句;
若為過去事實則用過去式,後接表相反於過去的主要子句。
2. 相反於現在
But that S V, S+should (would, could, might)+V…
=But for the fact that S V, S+should (would, could, might)+V…
=But for N, S+should (would, could, might)+V…
=Without N, S+should (would, could, might)+V…
=If it were not for N, S+should (would, could, might)+V…
=Were it not for N, S+should (would, could, might)+V…
3. 相反於過去
But that S V-ed, S+should (would, could, might)+have V-en…
=But for the fact that S V-ed, S+should (would, could, might)+have V-en…
=But for N, S+should (would, could, might)+have V-en…
=Without N, S+should (would, could, might)+have V-en…
=If it had not been for N, S+should (would, could, might)+have V-en…
=Had it not been for N, S+should (would, could, might)+have V-en…
ex. 要不是他當時很窮,他早就出國去了。But that he was poor, he would have gone abroad.
http://www.nani.com.tw/slearn/sleng/eng_d/Chapter04/Chapter04_2.htm
thx~