The correct option is
D so
The given sentence has to be filled with a conjunction. The first half of the sentence tells us about the situation, that it was cold. Looking at the sentence we can understand that - as it was cold, he put on his sweater. The blank must be filled with a conjunction that explains the reason.
Option C is correct - It was very cold, so he put on a sweater. 'So' is a conjunction, which is usually used to explain or give reason for a situation or an action.
Option A is incorrect, as 'and' is used to join two phrases or clauses. 'And' is never used to explain or give reasons, it simple used to join two sentences to make it a compound sentence.
Option B is incorrect, as 'but' is used to explain an excuse or a contrasting clause. 'But' can't be used to explain or give reasons.
Option D is incorrect, as 'or' is just used to link the alternatives. 'Or' can is used to refer to alternatives, but it can't be used to explain reasons.
Hence, C is the correct option