10、以下程序程序运行后的输出结果是( )。int f(int n){ static int a=1; n+=a++; return n;}main(){ i

10、以下程序程序运行后的输出结果是()。intf(intn){staticinta=1;n+=a++;returnn;}main(){inta=3,s;s=f(a);s... 10、以下程序程序运行后的输出结果是( )。

int f(int n){ static int a=1;
n+=a++; return n;}

main(){ int a=3,s;
s=f(a);s=s+f(a);printf("%d\n",s);}

A.7 B.8 C.9 D.10
能说的详细点吗?
展开
 我来答
wqn123love
2013-03-12 · 超过10用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:24.3万
展开全部
int f (int n)
int f(int n){ static int a=1;
n+=a++; return n;}
函数里的a是静态变量,函数返回时不内存不回收,所以第一次进入函数时a为1,第二次为2
n+=a++相当于n=n+a++,a++表示先使用a,再自加1。所以第二次进来时a=2;然后选c很清楚了吧
White_MouseYBZ
推荐于2018-03-05 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6635万
展开全部
9,所以C正确,选C——s=f(a)==n+=a++==3+1==4。s=s+f(a)==4+n+a++==4+3+2==9。为什么a第一次是1第二次是2?因为a是static变量,它的值不随函数退出而消失,而要保留到下一次被访问。毕。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沧海雄风2009
2018-03-02 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:2846万
展开全部
#include <stdio.h>

int f(int n)

static int a=1; 
n+=a++; 
return n;
}

main()

int a=3,s; 
s=f(a);   // 3=3+ a++ -> n = 3+ a; a++ 所以这时 a=2 返回4
s=s+f(a);   // s = 4 + f(a)    ->   n = n + a->n=n+2;   返回5   4+ 5 = 9
printf("%d\n",s);
}

9
Press any key to continue
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-02-24
展开全部
输出结果是
C.9
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-03-28
展开全部
#include <stdio.h>
int f(int n){
  static int a=1;
  n+=a++;
  return n;
}
int main(){
  int a=3,s;
  s=f(a);
  s=s+f(a);
  printf("%d\n",s);
  return 0;
}

亲你到 这里 这里 去试一下就知道答案了。这种太简单了的题目不建议问哦

第一次调用 f 函数, 实际参数 main.a = 3, 因此调用 f(3) ,

f.n = 3

f.a = 1

f.n += f.a++ // 这句等价于: f.n = f.n + f.a; f.a++;

因此有: f.n = 4; f.a =2

返回 f.n 到主程序,因此返回 4 到 main, 我们有 main.s = f的返回值 = 4

第二次调用 f 函数, 实际参数 main.a = 3, 因此调用 f(3) 

f.n = 3

此时因为前一次调用之后 f.a = 2. 因此 

f.n += f.a++ // 这句等价于: f.n = f.n + f.a; f.a++;

因此有: f.n = 5; f.a =3

返回 f.n 到主程序,因此返回 5 到 main, 我们有 main.s = main.s + f 的返回值,

也就是:  s = 4 + 5 = 9。

如果这还看不懂,继续踩而不是赞的都是猪头。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式