21. 【解析】选C。考查含蓄虚拟语气和时态。but引导的句子交代了含蓄的条件“假如你没有动身去上海的话”,所以第一空要用would have done结构,此处省略了told you the truth;第二空中的动作发生在从句动作“went to see you”以前,属于过去的过去,应该用过去完成时。
22. 【解析】选B。考查主谓一致。not only. . . but also. . . 连接两个主语时,谓语动词要就近一致。
23.【解析】选D。考查状语从句。句意:他一旦下定决心,就没有人能让他改变。although虽然,尽管;unless除非,如果不;until直到;once一旦。