单选题 若有以下程序:
#include <stdio.h>
int *f(int *s, int *t)
{ int k;
if(*s<*t) {k=*s; *s=*t; *t=k;}
return s;
}
main( )
{int i=3,j=5, *p=&i, *q=&j, *r;
r=f(p,q);
printf("%d,%d,%d,%d,%d/n",i,j,*p,*q,*r);;
}
则程序的输出结果是______。
【正确答案】 D
【答案解析】[解析] 在主函数中分别给整型变量i、j和指针型变量p、q赋初值,并声明指针变量r;调用f函数,并将实参变量p和q的值传递给形参变量s和t,并且f函数是指针型函数,即函数的返回值将是一个地址。在f函致中,如果条件成立,则将指针变量s和t的值互换,并且将指针s的地址返回主函数。最后输出i,j,* p,* q,*r的值,即5,3,5,3,5。因此D选项正确。