c语言,求计算过程,详细,高分。 答案是10 20 40 40

 我来答
厌学依丝9011
推荐于2016-07-25 · TA获得超过1390个赞
知道小有建树答主
回答量:514
采纳率:100%
帮助的人:565万
展开全部
这一题考的就是函数的形式参数和实际参数的区别。
首先是sub(x3,x4)
这里由于传入函数中的是形式参数(也就是程序另外声明了两个变量x,y,同时使x=x3,y=x4,而他们的值的改变跟x3,x4没关系),所以尽管函数交换了,其实也就是交换x,y的值,并没有影响到x3,x4,所以x3=10,x4=20;

而sub(x2,x1)也是同样的道理,不同的是在sub函数中,有一步x1=x,因为x1,x2是全局变量,所以这一步就使x1的值改变了,变为x的值了,而x的值是有x2传进去的,所以x1=40,x2还是没变,x2=40
AA5956
2015-11-30 · TA获得超过1869个赞
知道小有建树答主
回答量:705
采纳率:72%
帮助的人:472万
展开全部
1,全局变量与局部变量的作用域问题。x1,x2的作用域是全局的。所以在sub里面x1就是全局变量。

2.函数形参参数的值得改变不影响实参的值。
然后从头到尾分析这道题
sub(x3,x4) 执行完之后 x3=10,x4=20(因为sub没法改变实参的值,这个是考点,书上讲的很清楚了) ,x1=10(因为x1是全局变量。x = 10,x1=x ,x1就变成10);x2=40
sub(x2,x1)等价于sub(40,30)执行完之后 x1=40(x = 40,x1 = x 所以x1 = 40),x2=40(不变)
最后x3,x4,x1,x2 10,20,40,40
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-11-30
展开全部
sub函数运行时只改变堆栈中数值而不改变原数(因为你没有传入指针,只传入了数值),故sub两句代码无效。数据不变,按输出顺序写下即可。
追答
所以我的答案你满意吗?结果应该就是(x3=)10 (x4=)20 (x1=)30 (x2=)40
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
水宫御子88
2015-11-30 · TA获得超过2238个赞
知道大有可为答主
回答量:3792
采纳率:50%
帮助的人:754万
展开全部
sub()函数在main()函数后面,都没有什么声明,会报错的;假设已经声明了,这是按值传递,也不会交换的到值
追问
计算过程
追答
假设程序是调用了sub(),10 20 30 40,就是这样的结果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a1012144015
2015-11-30 · TA获得超过6415个赞
知道大有可为答主
回答量:9038
采纳率:40%
帮助的人:1360万
展开全部
就是数的交换呀,,,
更多追问追答
追问
求过程
计算过程
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式