A-A+

若有以下程序 include<stdio.h> int*f(int*s int*t){ in

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

问题详情

若有以下程序 include<stdio.h> int*f(int*s,int*t){ int*k;if(*S<*t){ k=s;s=t;t=k;) returns;) main(){ inti=3,3=5,*p=&i,*q=&j,*r; r=f(p,q); printf(%d,%d,%d,%d,%dn,i,j,*P,*q,*r);) 则程序的输出结果是
A.3,5,5,3,5
B.5,3,5,3,5
C.5,3,3,5,5
D.3,5,3,5,5

请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:D
本题考查了返回值为指针的函数,函数f的土要功能为第一个参数小于第二个参数,那么交换指针的指向,这对于实参指向的数据时没有影响的。最后返回比较大的元素的地址。主函数中p指向i,q指向j,调用r=f(p,q),返同q的地址,因此*p=3,*q=5,*r=5。

考点:程序