The simple past is used to refer to states or actions at a specific instant in time in the past or during a specified period of time that ended in the past, so (c) clearly refers to the period that ended at the time john got married. You must have known this, since you said "John had girlfriends before he got married", not "John has had girlfriends before he got married".
The present perfect refers to states or actions that continue up to the present, so (a) would include any girlfriends john has had since he got married in addition to the ones he had before. But since he is known to be a faithful husband, the answers to (a) and (c) should be the same. Of the two, I prefer (c), since (a) could be taken to insinuate that John continued to see other women after he got married.
In a contextual vacuum, (b) doesn't work. A moment or period of time needs to be specified.
All of these answers assume "girlfriend" to mean a female with whom one is romantically involved.