Before function calls: a= 5 b= 10 At end of badswap, before return: x= 10 y= 5 After call to badswap: a= 5 b= 10 At end of goodswap, before return: x= 10 y= 5 After call to goodswap: a= 10 b= 5 At end of badswap, before return: x= 50 y= 2 Before float function calls: p= 3.14 q= 2.7 At end of goodswap for floats,before return: x= 2.7 y= 3.14 After call to float goodswap: p= 2.7 q= 3.14 At end of badswap, before return: x= 3 y= 2