D
分析:把(x+3)(x+n)展開得出x2+(n+3)x+3n,得出x2+mx-21=x2+(n+3)x+3n,推出m=n+3,-21=3n,求出即可.
解答:(x+3)(x+n)=x2+nx+3x+3n=x2+(n+3)x+3n,
∵x2+mx-21=(x+3)(x+n),
∴x2+mx-21=x2+(n+3)x+3n,
∴m=n+3,-21=3n,
解得:n=-7,m=-4,
故選D.
點評:本題口岸成了因式分解的意義,多項式乘以多項式法則,解二元一次方程組等知識點,關鍵是能得出m=n+3,-21=3n.