Here are the matches for the word combinations with their meanings:
1) to have a heart of gold - f) to be very kind, helpful, to think about other people
2) to be a pain in the neck - e) to be a big problem
3) to have eyes bigger than the stomach - g) to take more food that you can eat
4) to have a good head on your shoulders - a) to be clever, brainy
5) to bring somebody to their knees - c) to win a victory over somebody
6) to have a finger in every pie - d) to do many things at the same time
7) to walk with your nose in the air - b) to think that you're better than other people