问题 填空题

写出下列程序的执行结果。
swap(p1,p2)
int*p1,*p2;
int p;
p=*p1;*p1=*p2;*p2=p;

main()
int a,b,*p1,*p2;
scanf("%d%d",&a,&b);
p1=&a;p2=&b;
if(a<b)swap(p1,p2);
printf("\na=%d,b=%d\n",a,b);

若a=7,b=8,则程序的运行结果为______。

答案

参考答案:a=8,b=7

解析:本题中,swap(p1,p2)函数的作用是交换两个形参的值,因为函数的形参是地址,形参和实参进行的是地址传递,所以通过swap函数可以实现数据交换的目的。在主函数中,if语句的控制条件a<b成立(a=7,b=8),所以调用swap函数交换a、b的值。

名词解释
选择题