若有以下程序 #include<stdio.h> int*f(int*s,int*t){ int*k;if(*s<*t){ k=s;s=t;t=k;} return s;} main(){ in

admin2013-10-19  10

问题 若有以下程序
    #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);
    pfintf("%d,%d,%d,%d,%d\n",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。
转载请注明原文地址:https://jikaoti.com/ti/WCn0FFFM
0

最新回复(0)