有以下程序 #include int *f(int *s,int *t) { if (*s < *t) *s=*t; return s; } main() { int i=3, j=5, *p=&i, *q=&j, *r; r=f(p,q); pri

admin2015-07-28  23

问题 有以下程序
#include
int *f(int *s,int *t)
{ if (*s < *t)
*s=*t;
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、5,5,5,5,5
B、3,5,5,5,5
C、5,3,3,3,5
D、3,5,3,5,5

答案A

解析 考查指针与函数。该函数进行的是地址传参,形参和实参指向的变量的值保持一致。函数f()中,(*s < *t)成立,则将*s=*t;,*s与*t的值均为5,返回值为5,即r=5。函数调用结束后,p、q指向的值也均为5,所以答案选A。
转载请注明原文地址:https://kaotiyun.com/show/KKJp777K
0

最新回复(0)