C语言这个怎么做谢谢谢谢

 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)
后天一刻
2016-05-15 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:119
采纳率:0%
帮助的人:57万
展开全部

楼主治好了我多年的颈椎病~~~~~回归主题

fun(j=4,m=1) //代入计算  可知返回值m应该为8

第一次打印的值应该为8;

下一次调用前要知道 fun()函数里有个static关键词,意思是全局静态变量,也就是说,在上一次调用的m,i值都没有变,下一次调用到m或者i时将不会初始化。所以 我们来看一下第二次调用的过程

fun(int j=4,int m=1){
i=3+8+1;
m=12+4+1;}//返回值m应该为17

第二次打印应该为17,

更多追问追答
追问
还可以问你一个问题吗
可以吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦醒南天
2016-05-15 · 学习乃进步之根本,创作是快乐的源泉
梦醒南天
采纳数:109 获赞数:361

向TA提问 私信TA
展开全部
int fun(int x, int y)
{
    //m 和 i 都是static类型的变量,所以它们的值会一直保持直到程序结束
static int m=0, i=2;
i = i+m+1;
m = i+x+y;
return m;
}

int main(void)
{
int j=4, m=1, k;
//调用fun函数,这时 j=4,m=1,fun函数返回的值是((2+0+1)+4+1)=8
k = fun(j,m);
printf("%d,",k);
//调用fun函数,这时 j=4,m=1,fun函数返回的值是((3+8+1)+4+1)=17
//因为在fun函数里面,i的值已经变成3,m的值已经变成8
k = fun(j,m);
printf("%d\n",k);
return 0;
}

更多追问追答
追问
还可以问你一个问题吗
可以吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hubj627
2016-05-15 · TA获得超过175个赞
知道小有建树答主
回答量:120
采纳率:100%
帮助的人:86.1万
展开全部
答案8,17 。
追问
还可以问你一个问题吗
可以吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
懵懂青春ly
2016-05-15 · TA获得超过225个赞
知道答主
回答量:243
采纳率:0%
帮助的人:80.5万
展开全部
输出8,17
更多追问追答
追问
还可以问你一个问题吗
可以吗
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式