There is the big difference between these verbs. Мочь - can ; to be able to do. Хотеть - to want; to wish. For example: if a person can do smth., it is not means he want to do this. In turn, if a person wants to do smth., it is not means he will be able to do this.
In whole, all depends on the sentences. you must learn every particular way.
about your questions: 1. both of phrases are possible. They mean a person will be able to buy ( you have enough money, time, etc.) 2. both of these phrases good. But these phrases don't explain, a person can eat or cannot.