问题 单项选择题

有下列程序:
#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。

多项选择题
单项选择题