选择题
33.
若有以下程序:
#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。
提交答案
关闭