The answer is D. One reason the United States has a two-party system is that much of American election law is written to discourage non-major party candidates.
In fact, there are some other third-parties, however the number of votes that these other parties gather during elections aren't enough to grant them federal funding and make it possible for them to participate in federal elections. The way federal elections work is that each state has a set of voters and the party that gathers the majority of them, wins the state, for that reason it makes no sense to back up a party that has no chance to win the majority of the votes.
Therefore, the tendency remains in voting for the only two parties that have an opportunity of winning majority.