若有以下程序 #include int*f(int*s,int*t) {intk; if(*s<*t){k=*s;*s=*t;*t=k;} returns; } main() {inti=3,j=5,*p=&i,*q=&j,*r; r=f(p,q); pr

admin2020-05-19  28

问题 若有以下程序
#include
int*f(int*s,int*t)
{intk;
if(*s<*t){k=*s;*s=*t;*t=k;}
returns;
}
main()
{inti=3,j=5,*p=&i,*q=&j,*r;
r=f(p,q);
printf("%d,%d,%d,%d,%d\n",i,j,*p,*q,*r);
}
则程序的输出结果是

选项 A、5,3,3,5,5
B、3,5,5,3,5
C、3,5,3,5,5
D、5,3,5,3,5

答案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选项正确。
转载请注明原文地址:https://jikaoti.com/ti/mLG0FFFM
0

相关试题推荐
最新回复(0)