永发信息网

下面程序执行后的输出结果是 (求详细过程)

答案:2  悬赏:30  手机版
解决时间 2021-03-09 16:56
#include
int a=2;
int f(int n)
{ static int a=3;
int t=0;
if (n%2){static int a=4;t+=a++;}
else {static int a=5;t+=a++;}
return t+a++;
}
int main()
{ int s=a,i;
for (i=0;i<3;i++)s+=f(i);
printf("%d",s);
return 0;
}
最佳答案
一开始,s被赋值,为2
接着3次循环,
第一次,i= 0,%2求余为0做了else t= 5,a= 5,返回值8 (因为在内部调用,到了外面还是用a=3)

第二次,i= 1,a= 4,t= 4返回值8(外部a因前一次a++,所以为4)

第三次i= 2,a= 6,t= 6,返回值11(外部a因前一次a++,所以为5)[ 同理第一次使用else的时候a++了,所以不是5而是6了 ]

把三次返回值加起来,就是所输出s 29= 8+8+11+2
注意static的用法,区分局部和全局~
全部回答
答案是c,输入2后k的值为2执行case2,此时输出2,因为case2后面没有break;跳出循环语句,所以再执行case3,此时输出3,case3后有break;跳出循环。程序结束
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
支付宝如何查询社保
携创电子商务承德运营中心地址在什么地方,想
女孩是不是不上床就没有感情
爱拍账号绑定在QQ哪里可以看到
笔记本电脑有哪几大模块组成?
土木本科毕业生,在施工一线学习了一年,可以
乳白色门配什么颜色地板好
育む 什么意思?怎么发音的?
java中,new demo()与demo d= new demo()
消费者付了全款,商家不提货属于欺诈行为吗?
花都出入境检验检疫局地址在什么地方,想过去
英一85分学姐偷偷告诉你,考研英语怎样才能拿
爱奇艺会员两个手机可以同时看一个电视剧吗
截止阀可以调节流量吗
于皞,刚刚我在夜空中看见两架飞机挨得很近,
推荐资讯
勾陈 子孙甲子水 ▅▅ ▅▅ 父母乙未土 应 ▅
男朋友说我,脑子短路了,反应慢半拍,是什么
单位名称、法定代表人、经济类型、组织机构代
喜德盛这个地址在什么地方,我要处理点事
汇通信诚租赁还款查询
远安县气象局在哪里啊,我有事要去这个地方
老人按满口牙要多少钱
保温门窗设计的要点在于()。
灰树花d阻分,请问对肺癌晚期有效吗
雪下的很大 (改成比喻句)
今日三明日四歇后语
20万左右外观霸气,越野性能出色的suv?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?