以下程序的输出结果是( )。 #include 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=

admin2017-10-24  37

问题 以下程序的输出结果是(  )。
#include
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);}

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

答案C

解析 题目中函数f为返回值为指针的函数,主要功能是返回s和t指向空间值大的数据的地址,同时如果s指向空间数据小于t指向空间的数据,那么交换。主函数p和q指向i和j,值为3和5,j的值大于i的值,因此调用函数f以后,返回j的地址,r指向j,同时i和j的值交换,i=5,j=3,p和q的指向不变,p指向i,q指向i,选项C正确。
转载请注明原文地址:https://kaotiyun.com/show/AIxp777K
0

最新回复(0)