永发信息网

这道C语言题怎么解?

答案:2  悬赏:80  手机版
解决时间 2021-06-09 13:10
  • 提问者网友:抽煙菂渘情少年
  • 2021-06-08 22:21
下面程序运行时输入5,4则对应的输出结果是 D 。
int sum(int k )
{static int y=0;int i;
for(i=1;i<=k;i++)y+=i;
return y;
}
main()
{ int m,n;
scanf(“%d,%d”,&m,&n);
printf(“%d\n”,sum(m)+sum(n));
}
(61) A、54 B、0 C、40 D、50
麻烦给出详细解答步骤
最佳答案
  • 五星知识达人网友:一把行者刀
  • 2021-06-08 23:12

提醒楼主一下scanf里面输入的时候不加逗号,


int sum(int k )
{static int y=0;int i;
for(i=1;i<=k;i++)y+=i;
return y;
}
这个函数里面y是静态变量, 调用结束不释放内存的


这句printf(“%d\n”,sum(m)+sum(n));


先执行sum(m), 也就是sum(5) = 15


此时y=15不会改变, 因为是static静态变量


然后执行sun(n), 也就是sum(4);循环里面执行4次, 第一次y+=15+1=16;第二次是+2=18,


第三次是+3=21, 第四次是+4=25


和刚才和结果15一起就是40


结果是选择C


运行截图你看


全部回答
  • 1楼网友:零点过十分
  • 2021-06-09 00:04
static int y=5;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯