★C语言练习题,读程序写结果题,第二题
intfun(intn){staticinta=3;intt=0;if(n%2){staticinta=5;t+=a++;}else{staticinta=5;t+=a+...
int fun(int n)
{ static int a=3;
int t=0;
if(n%2)
{ static int a=5;
t+=a++;}
else
{ static int a=5;
t+=a++;}
return t+=a++;}
main()
{ int i,s=0;
for(i=0;i<3;i++)
s+=fun(i);
printf("s=%d\n",s);}
正确答案:27
怎么样能算出??? 展开
{ static int a=3;
int t=0;
if(n%2)
{ static int a=5;
t+=a++;}
else
{ static int a=5;
t+=a++;}
return t+=a++;}
main()
{ int i,s=0;
for(i=0;i<3;i++)
s+=fun(i);
printf("s=%d\n",s);}
正确答案:27
怎么样能算出??? 展开
3个回答
展开全部
第一题
while 循环体语句由
a--;和printf("%d",a);构成
第一次循环 a=10 a>7 a=a-1=9 打印结果9
第二次循环 a=9 a>7 a=a-1=8 打印结果8
第三次循环 a=8 a>7 a=a-1=7 打印结果7
第四次循环 a=7 a=7 循环结束
最后结果就是987
第二题
a-- 是在while的循环体语句,而printf("%d",a);不是 那么
第一次循环 a=10 a>7 a=a-1=9
第二次循环 a=9 a>7 a=a-1=8
第三次循环 a=8 a>7 a=a-1=7
第四次循环 a=7 a=7
打印结果7
所以这两个题目主要区别是 循环体内的语句个数不同导致打印结果不同
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
while 循环体语句由
a--;和printf("%d",a);构成
第一次循环 a=10 a>7 a=a-1=9 打印结果9
第二次循环 a=9 a>7 a=a-1=8 打印结果8
第三次循环 a=8 a>7 a=a-1=7 打印结果7
第四次循环 a=7 a=7 循环结束
最后结果就是987
第二题
a-- 是在while的循环体语句,而printf("%d",a);不是 那么
第一次循环 a=10 a>7 a=a-1=9
第二次循环 a=9 a>7 a=a-1=8
第三次循环 a=8 a>7 a=a-1=7
第四次循环 a=7 a=7
打印结果7
所以这两个题目主要区别是 循环体内的语句个数不同导致打印结果不同
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
展开全部
你好!!!
这里考到:局部变量隐藏全局变量.还有静态数据类型;
只要掌握者2点知识就可以了。
我运行的答案是28。
http://zhidao.baidu.com/question/181483892.html
这是我前几天回答的,和你的题目就是一样的!!!
这里考到:局部变量隐藏全局变量.还有静态数据类型;
只要掌握者2点知识就可以了。
我运行的答案是28。
http://zhidao.baidu.com/question/181483892.html
这是我前几天回答的,和你的题目就是一样的!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
正确答案是28.
根据静态变量和同名变量的就近原则。
当第一次调用的时候 fun(0),返回8 ,8=5+3
fun(1) 返回9,最外部a为静态变量 9=5+4
fun(2) 返回11, 11= 6+ 5 ,最外部a为静态变量在相加的时候为5,另外
else
{ static int a=5;
t+=a++;}
这个a也是静态变量,在n=0时的自增操作已经为6。
根据静态变量和同名变量的就近原则。
当第一次调用的时候 fun(0),返回8 ,8=5+3
fun(1) 返回9,最外部a为静态变量 9=5+4
fun(2) 返回11, 11= 6+ 5 ,最外部a为静态变量在相加的时候为5,另外
else
{ static int a=5;
t+=a++;}
这个a也是静态变量,在n=0时的自增操作已经为6。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询