(1) flat -> ~ terraces to prevent soil erosion Terraces to prevent soil erosion -> ~ flat (2) terraces
And concludes:
Therefore, ~ flat.
There is an obvious gap here, one must assume that the terraces are built to prevent erosion in order to conclude ~ flat.
(B) correctly identifies the necessary assumption "terraces ..built to prevent soil erosion," if we negate it and say there are no terraces built to prevent soil erosion - notice that leaves open the possibility that there are no terraces at all or that there are only terraces built for other purpose - in either scenario the argument falls apart because without the fact that there are terraces built to prevent soil erosion, we can no longer conclude ~flat.
(C)tells that the terraces are of a kind that have been shown to prevent soil erosion. The fact that the terraces have been shown to prevent erosion is insufficient to exclude that they could not be built for any other purpose, hence we cannot infer that there are terraces that were built specifically to prevent soil erosion, which is a necessary assumption for the argument to follow logically.
Let me know if this helps and if you have any further questions.