选C的话,正确的句子应该是It had been ten years since xxx joined the army.
这题是强调句.强调ten years,还原成陈述句就是joined the army ten years ago.
强调句就是把要强调的东西提前就是了.
如 China has a large population.
如果要强调large的话,就把它提前,即It is large that China has the poulation.
第二题
考的是be said to的用法,一般是用作BE SAID TO DO,但是依据题意“据说文章被登到杂志里了”为过去完成时,就要用have done了.
以上拙见.
魍魉同学加油哦~!