for three years是一段时间,前面应该用连续性动词,死是瞬间性动词,所以has died for...是错的,不可以这样说。has been dead for three years.是对的我们还可以这样说this old man died three years ago.