问题
单项选择题
有下列程序:
#include<stdio.h>
void fun(int*a,int*b)
int*c;
c=a;a=b;b=c;
main()
int x=3,y=5,*p=&x,*q=&y;
fun(p,q);printf("%d,%d,",*p,*q);
fun(&x,&y);printf("%d,%d\n",*p,*q)
程序运行后的输出结果是( )。
A.3,5,5,3
B.3,5,3,5
C.5,3,3,5
D.5,3,5,3
答案
参考答案:B
解析: 本题子函数fun(int*a,int*b)调用的功能是交换形参a,b的值,在主函数中调子函数fun(p,q)和fun(&x,&y)后,实参p,q和&x,&y的值之间并没有发生交换,所以程序输出的结果为3,5,3,5。