试题题干
以下程序不借助任何变量,把a,b中的值进行交换。
main()
{
int a,b;
printf("Input a,b:");
scanf("%d%d,________"); /*第一空*/
a+=b;
b=a-________; /*第二空*/
a=_________; /*第三空*/
printf("a=%d,b=%d\n",a,b);
}
参考答案
试题解析
在scanf()语句中,是要输入a和b,即输入语句为scanf("%d%d,&a,&b"); ,故第一空填入&a,&b;
因为是不借助任何变量,使a和b的值进行交换,所以利用a+=b;把a与b的和赋给a,即b=a-b;是用a-b得到a的值,即把a的值赋给b,则第二空填入b;
因为已经把a赋给了b,所以a=a-b;得到的是最初b的值,即把b的值赋给a,即第三空填入b。