简答题
👁️ 浏览量:

试题题干

以下程序不借助任何变量,把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。