若有以下程序: #include int *f(int *s,int *t) { int *k; if(*s<*t){ k=s; s=t;t=k; } retum s; } main

admin2021-06-15  23

问题 若有以下程序:
    #include
    int  *f(int  *s,int  *t)
    {  int  *k;
    if(*s<*t){  k=s;  s=t;t=k;  }
    retum  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

答案B

解析 在主函数中分别给整型变量i、j和指针型变量p、q赋初值,并声明指针变量r;调用f函数,并将实参变量p和q的值传递给形参变量s和t,而且f函数是指针型函数,即函数的返回值是一个地址。在f函数中,如果条件成立。则将指针变量s和t互换,并且将指针s的地址返回主函数。最后输出i,j,*p,*q,*r的值,即3,5,3,5,5。因此B选项正确。
转载请注明原文地址:https://jikaoti.com/ti/ZEz0FFFM
0

最新回复(0)