C语言 42.下列程序的运行结果是( ) void fun(int *a,int *b) {int *k; �k=a;a=b;b=k; } main() {int a=3,

42.下列程序的运行结果是()voidfun(int*a,int*b){int*k;�k=a;a=b;b=k;}main(){inta=3,b=6,*x=&... 42.下列程序的运行结果是( )
void fun(int *a,int *b)
{int *k;
�k=a;a=b;b=k;
}
main()
{int a=3,b=6,*x=&a,*y=&b;
�fun(x,y);
�printf(〃%d %d〃,a,b);
}
A.6 3 B.3 6 C.编译出错 D.0 0
我要详细解答
展开
 我来答
哈欠聊科技
推荐于2017-09-04 · TA获得超过422个赞
知道小有建树答主
回答量:159
采纳率:0%
帮助的人:139万
展开全部
答案选B.

函数 fun(int* a,int* b)的两个参数类型都是int*型.
也就是说,参数变量a, b本身的值不会变.

当传入两个实参int* x , int* y后.
尽管fun里面作了交换操作,这种交换不会影响到原来的x,y变量值.

要象这样定义FUN函数,才有意义.
void fun(int *a,int *b)
{int k;
�k=*a;*a=*b;*b=k;
}
百度网友094230b
推荐于2018-03-19
知道答主
回答量:1
采纳率:100%
帮助的人:889
展开全部
很多答案虽然选对了,但是其实是错的,这里不仅a,b的值不变,指针也不变,换句话说就算printf("%d %d",*x,*y),答案也是一样的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fancyivan
2010-08-31 · TA获得超过837个赞
知道小有建树答主
回答量:633
采纳率:0%
帮助的人:436万
展开全部
B 3 6

fun里交换的只是x,y的指向,即将y指向了b,x指向了a,而a,b本身不会变。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ggang123abc
2010-08-31
知道答主
回答量:44
采纳率:0%
帮助的人:20.1万
展开全部
B
fun里边交换的只是x,y里保存的地址,即将x的地址指向了b,y的地址指向了a,实际上a,b并没有参与fun函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
高中的信息
2010-08-31
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
答案是A。首先运行main()主函数,执行到fun(x,y)函数时,调用viod fun()函数,赋值交换,改变a,b的值,printf()输出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式