若有以下程序 #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, *

admin2020-11-23  29

问题 若有以下程序
#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);
printf("%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://kaotiyun.com/show/xM3p777K
0

相关试题推荐
最新回复(0)