For the first part (same user) untick the option "Allow multiple answers per user" which is in Admin > Posting. There is also the option "Close questions with a selected answer" on the same page which is close to what you wanted.
There is no built-in way to allow only one answer (it kinda defeats the whole ethos behind Q&A sites, where other users can come along and post better answers). But it would be doable with a plugin.
Start here: http://www.question2answer.org/plugins.php
You'll want an event plugin. In your process_event function check for the 'a_post' event. Then take the answer's parentid (which is the ID of the question) and close the question. This should do it:
qa_post_set_closed($params['parentid'], true, null, 'Close reason');