For B, you need to look at SiCl4; it's a tetrahedral molecule, and has those four chlorine atoms all pulling in equal but opposite directions, causing their pull to cancel out. That's why it's left covalent. Whereas NaCl is an incredibly lop-sided molecule where the sodium has all but had its electron ripped out of it and gobbled up by the chlorine atom.
So that's what makes the difference between ionic and covalent molecules; ionic happens when there's a great electronegativity difference in the two. Covalent can either mean there's a small difference in electronegativity, or the molecule is arranged in such a way that it's dipole is canceled by opposite by equal pulls by its atoms.