I'm a native English speaker. You can say "can I buy you a coffee" several different ways in Italian. "vi posso offrire un caffè?" or "posso offrirti un caffè?" = can I buy you a coffee? But, this quiz question uses "del" not "un." As to your question about offering instead of buying, you'll have to ask a native Italian speaker.
It seems to me more a english language problem than italian . A litteral translation of "can I buy you a coffee" would be "Posso comprarvi un caffe ?" or, if singular, " Posso comprarti un caffe" that in italian are expressions that we don't use at all. More common are "Ti pago un caffè" or "Vi pago un caffè" "I pay you a coffe" or, interrogative, "Can i pay you a coffee"
"vi" is a direct object pronoun meaning "you" plural. You may find this link helpful: http://italian.about.com/library/fare/blfare116a.htm
Not always. We offer people some coffee too. I would offer "a" drink if it came in a single serving, like a can of soda. But if I had to pour it from a bottle or coffee pot, I would offer "some" drink, which also tends to show that, since it's not pre packaged, the exact amount is not really known or could be specified. If I offered you a coke, u get a can. If I offer you some coffee, you could answer "just a small cup" or "full it to the brim" or something that indicated exactly how much u want.
By using potere interchangeably for May and Can, it there not a more formal way to express this in Italian. When we say "May I offer you coffee," we are asking for permission to do so, "Can I offer you coffee" means you are asking the customer if you are capable of such.