根据晶体的类型和所含化学键的类型分析,离子化合物含有离子键,可能含有共价键,共价化合物只含共价键,双原子分子或多原子分子含有共价键.
【解析】
A、NaCl是离子晶体,NaCl中只含离子键,固体HCl分子晶体,HCl中只含共价键,故A错误;
B、NH4Cl和 MgF2都是离子晶体,MgF2中只含离子键,NH4Cl中含有离子键和共价键,故B错误;
C、固体CO2是分子晶体,二氧化硅是原子晶体,二氧化硅、二氧化碳都只含共价键,故C错误;
D、固体CO2和H2O都是分子晶体,CO2和H2O都只含共价键,故D正确;
故选:D.