Hi khpark85,
You're right about the answer being
All four of the remaining answers are "sort of" correct, in that they are all bad things, i.e. none of them are virtuous. The correct answer is the opposite of virtue, which means having high moral standards. All four of the remaining answers can be thought of a sub-sets of the opposite of virtue, but not the opposite itself, which needs to be a word for morally wrong.
Let's take a closer look at the remaining four answers.
To be "cruel" is to be a kind of wicked (i.e. evil, the opposite of virtue), but to be wicked you are not limited to being just cruel (cruel is a sub-set of wicked, but wicked is not a sub-set of cruel). This same logic can be applied to unjust (which means unfair or prejudiced) and depraved (which means perverted or deviant).
Answer b) iniquitous, is a little more tricky. Iniquitous means grossly unfair or morally wrong, and that is a good synonym for wicked. BUT in this sentence, we need a noun, not an adjective (because virtue is a noun, and we are looking for an opposite noun).
Iniquitous is an adjective that describes a noun, for example, "an iniquitous act" where the adjective iniquitous describes the noun, act. Wicked can be an adjective ("She is a wicked woman.") or a noun ("The woman is wicked.") In this sentence wicked is the noun we are looking for!
I hope this helps.
Good luck!
David