以下程序运行后的输出结果是:int fun(int n){static int s=1;s*=n;return s;main(){int i,s=0;for(i=1;i<=4;i++){s+=f}}}
Posted 王睿丶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以下程序运行后的输出结果是:int fun(int n){static int s=1;s*=n;return s;main(){int i,s=0;for(i=1;i<=4;i++){s+=f}}}相关的知识,希望对你有一定的参考价值。
1、题目
2、知识点
- static的作用
- 函数调用
- for 循环
3、要做好的功课
一般情况下
那么得到当这个函数执行完,s这个变量就销毁(不存在)了
但是有了 static 修饰后的变量,他就有了一个新作用,看下图
4、开始解题
调用了 fun()方法(也叫函数)。那我们就开始带值去计算
第一次循环,s=0,i=1
s+=fun(i) => s+=fun(1) 执行这条代码,进入fun函数
n=1,s=1
s*=n的意思相当于 s = sn
s = 11 = 1
return 1;
再来看这行代码
因为s += fun(i),右边的fun(i)经过第一次计算完后,返回了1
所以main函数中,s += fun(i) => s = 0+1=1,s=1
第二次循环,s=1,i=2
进入fun函数计算,n=2,s=1(用上一次计算后的值)
s*=n => s=sn=12=2
return 2(返回2)
因为s += fun(i),右边的fun(i)经过第一次计算完后,返回了2
所以main函数中,s += fun(i) => 1+2 = 3,s = 3
第三次循环,s=3,i=3
进入fun函数计算,n=3,s=2(用上一次计算后的值)
s*=n => s=sn=23=6
return 6(返回6)
因为s += fun(i),右边的fun(i)经过第一次计算完后,返回了6
所以main函数中,s += fun(i) =>s= 3+6= 9,s = 9
第四次循环,s=9,i=4
进入fun函数计算,n=4,s=6(用上一次计算后的值)
s*=n => s=sn=46=24
return 24(返回24)
因为s += fun(i),右边的fun(i)经过第一次计算完后,返回了24
所以main函数中,s += fun(i) =>s= 9+24= 33,s = 33
以上是关于以下程序运行后的输出结果是:int fun(int n){static int s=1;s*=n;return s;main(){int i,s=0;for(i=1;i<=4;i++){s+=f}}}的主要内容,如果未能解决你的问题,请参考以下文章
如果关闭 fun() 后所有内存都被释放,那么输出如何打印 [重复]
在Dev c里运行成功并输出结果的 却在vs2010里不显示结果是为啥?
#include<stdio.h> main() int a[10]=1,2,3,4,5,6,7,8,9,10,*p=&a[3],*q=p+2; printf("%d\
有以下程序: main( ) int a[10]=1,2,3,4,5,6,7,8,9,10,*p=&a[3],*q=p-2; printf("%d\n",*p+*q);