答:本题两个he指代不明。句意不明,选项不全,网上找不到。答案不唯一。
请提供完整的题和出处。
此题句很有可能改自下文:
新概念三册对照译文Lesson22 By heart
。。。the gaoler decided to play a joke on his colleague to find out if, after so
many performances, he had managed to learn the contents of the letter by heart.
说明我的判断没有错,原题中的两个he不是同一人,作为单选题,应避免这个歧义。
从原文看,参考答案很可能是had known
不过正达美及热心网友从know的延续性心理状态的角度分析也有道理:
I know him. I got to know him ten years ago. I have known him for ten years.
I have got to know him.
get to know 是一个短暂的认识过程,know是稳定心理状态。尽管都译作认识, get to know与know是不一样的。前者是短暂动词,不可用于完成时的延续性用法,反过来,know是延续性用法,一般不用于完成时的结束性用法。不说:I have known him. 后需要加for 或since短语才完整。
其实有learn sth. by heart. 没有见过know sth. by heart的。
这是改题者的失误。
如果改用learn则用过去完成时最佳。为避免用两个he,前一个he用The gaoler较好:
The gaoler decided to find out if he had learned the contents of the letter by heart.
如果需要简写题句的话。
我想当然地说没有见过know sth. by heart,的,因为我将know 当作心理状态动词了。其实在这一词里就有:
One would expect them to know their parts by heart and never have cause to falter.
learn/ know by heart: 把……牢记在心
Eg.: The sentence is so important that you must learn it by heart.
所以:这里的know ... by heart =learn sth. by heart , 从by heat这个状语知道,know是行为动词
所以原题句
He(=The gaoler) decided to find out if he (= the aristocrat )had known(=learned) the contents of the letter by heart.
译:他决定弄清楚他是不是已经将信的内容牢记在心。
这是宾语从句 与虚拟无关
按说 可以是 一般过去时 也可以是过去完成时
但 know by heart 这里是表示当时状态的
所以 应该用 一般过去时 表示与主句谓语 动作发生时 的状态情况
再如 he wanted to know if she was a student.
一般不用 she had been
此处是虚拟语气,就是说如果怎么怎么样,这种情况都是固定过去式的。
if I was there
类似这样。
---------------------------------------------
说错了,没仔细看
下面重答
只有特别强调完成的动作时才用完成时。
但是必须加上完成的时间
I've known that one year ago.
没有for years 之类的词出现,没有特别强调过去完成时。就用一般过去时。
这是个宾语从句,不用做虚拟来解。