中易网

C语言选择题static

答案:2  悬赏:0  
解决时间 2021-04-22 09:31

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+ +;}
returnt+a+ +;
}
main( )
{ int s=a,i;
for(i=0;i<3;i+ +) s+ =f(i);
printf("%d\n",s);
}

程序运行后的输出结果是( )。
A)26 B)28 C)29 D)24

最佳答案

选C


我帮你把变量名改一下,意思是一样的.


int a=2;
int f(int n)
{ static int b=3;
int t=0;
if(n%2){ static int c=4; t+ =c++;}
else{ static int d=5; t+ =d++;}
returnt+b++;
}
main( )
{ int s=a,i;
for(i=0;i<3;i+ +) s+ =f(i);
printf("%d\n",s);
}


s+=f(i),即s=s+f(i)=a+f(i)=2+f(i)


当i=0时,s=2+f(0)


0%2=0,所以执行else{ static int d=5; t+ =d++;}
t=t+(d++)=0+5=5,然后d=d+1=6,由于是static类型,所以下次进来这里的时候d=6


returnt+b++;即5+3=8,然后b=b+1=4,由于b是static类型,所以下次的b=4


所以f(0)=8,所以s=2+8=10


当i=1时s=s+f(1)=10+f(1)


1%2=1,所以执行{ static int c=4; t+ =c++;}


t=t+(c++)=0+4=4,然后c=c+1=5,由于是static类型,所以下次进来这里的时候c=5


returnt+b++;即4+4=8,b=b+1=5,下次的b=5


所以f(1)=8,所以s=10+f(1)=18


当i=2;


2%2=0,所以执行else{ static int d=5; t+ =d++;}
t=t+(d++)=0+6=6,然后d=d+1=7由于是static类型,所以下次进来这里的时候d=7


returnt+b++;即6+5=11,然后b=b+1=6,由于b是static类型,所以下次的b=6


所以f(2)=10,所以s=18+11=29

全部回答

C!

我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么续费红钻一个小时了还没提示已续费?
谁用过沙宣的洗发水,感觉怎么样?
DNF中,如果我今天拜了师傅,今天解除了,明
在开县东部新区拆迁安置还建房买房可以办到房
安徽颖上距离铜川多少公里
跪求一个《永恒之塔》手动刷钱方法,金币太不
dnf网络老是中断怎么回事?
大宇电动车行地址在什么地方,想过去办事
我中专学的财会专业,现在想自考大专,不知道
成都到龙泉湖怎么走
占用农民耕地的赔偿标准-河北易县
北京国展招聘会地址
科廷科技大学 建筑专业怎么样?在哪个校区?
南翔镇到华翔路格林豪泰开车怎么走
东申底村地址有知道的么?有点事想过去
推荐资讯
我想在一号店开店 主营汽车用品 如遮阳挡 擦
哈尔滨市呼兰区学院路通地铁么
LOL这个赛季什么时候发框框?
成都移动畅聊卡到底是怎么资费的?
问题: 请问,怎么才知道女人排卵期到来了...
谁家灶头无烟火有人看完吗?最后有成情侣的没
DNF小小挂今天怎么下载不了了?
脑子怎么会那么大?
苹果平板电脑怎么上网
我有个方形砚台,带个圆盖,盖上有朵花还是果
EMS邮件从深圳到山西临汾翼城得要多长时间?
赛尔号阿卡西亚怎么打?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?