A-A+

若有以下程序 include<stdio.h> int*flint*S int*t){ in

2022-08-12 18:58:52 问答库 阅读 197 次

问题详情

若有以下程序 include<stdio.h> int*flint*S,int*t){ intk; if(*S<*t){ k=*s;*s=*t;*t=k;} retums;} main(){ inti=3,j:5,*p=&i,*q=&j,*r; r=f(p,q); pfintf(%d,%d,%d,%d,%dn,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以后,返回i的地址,r指向j,同时i和j的值交换,i=5,j=3,p和q的指向不变,p指向i,q指向j。

考点:程序