if the speaker is to metion any specific time, such as yesterday, last night, he/she should put it this way" but she promised last night" if the speaker is not to metion any specific time, he/she should put it this way" but she had promised "
Without mentioning time, the correct answer could be 'she has promised'. This is the perfect tense.
But in this case the perfect tense was not one of the choices, so the simple past is just as good, even though, as you can see, the speaker didn't mention the exact time. Because the promise was clearly made ONE time in the past, we can use
a: no-because you are not talking about a present state of affairs b: correct- she promised she would come (completed action at a definite point in time- in the past- preceeds the fact that nancy is not coming tonight (near future- expresses an intention) c: not unless you can predict the future! d: possibly correct- but not in the sense you mean, I think. suggests that there is anot