At a guess, since I haven't tried this, wait(1) automatically returns zero so that the calling function can continue to execute. In this case, the "return" only serves to terminate the function (which was about to happen anyway by reaching the end of the function).
Since you have U_answer declared in the first function you do not need it to be returned by the second function. However it should not even work if it is declared in the first function but only if it is declared globally.
Here is how functions work. When they are called from the first function that function stops and waits for that second function to finish or use a wait instruction, which basically adds that second function to a function manager to be called after all the other functions have had their turn. The only reason you need to return a value is if you need that information in the first function.
Now if you really need that info try this
while(key_space==off) { get_answer=show_yes_no();
wait(1); }
function show_yes_no() {
if(key_cul==on) { u_answer=1; } if (key_cur==on) { u_answer=2; }