int f(int n); main() { int a=3,s; s=f(a); s=s+f(a); printf("%d\n",s); } int f(int n)10362{ static int a=1;n+=a++;return n;} 语句n+=a++中的a=3还是a=1?它是静态局部变量,主函数中的a=3是对整个程序起作用吗?

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/28 03:18:25
intf(intn);main(){inta=3,s;s=f(a);s=s+f(a);printf("%d\n",s);}intf(intn)10362{staticinta=1;

int f(int n); main() { int a=3,s; s=f(a); s=s+f(a); printf("%d\n",s); } int f(int n)10362{ static int a=1;n+=a++;return n;} 语句n+=a++中的a=3还是a=1?它是静态局部变量,主函数中的a=3是对整个程序起作用吗?
int f(int n); main() { int a=3,s; s=f(a); s=s+f(a); printf("%d\n",s); } int f(int n)10362
{ static int a=1;
n+=a++;
return n;
} 语句n+=a++中的a=3还是a=1?它是静态局部变量,主函数中的a=3是对整个程序起作用吗?

int f(int n); main() { int a=3,s; s=f(a); s=s+f(a); printf("%d\n",s); } int f(int n)10362{ static int a=1;n+=a++;return n;} 语句n+=a++中的a=3还是a=1?它是静态局部变量,主函数中的a=3是对整个程序起作用吗?
代码好乱!这两段代码是同一个程序是吧?
我理解你的程序是这个:
int f(int n);
main()
{
int a=3,s;
s=f(a); //可以看做s = f(3)
s=s+f(a); //这里f()函数又被调用一次
printf("%d\n",s);
}
int f(int n)
{ static int a=1;
n+=a++; //n = n+a++;此处a是静态变量,并且执行该语句后进行自加操作
return n;
}
那回答问题.首先main函数里的变量a不是静态的,作用域在main函数里.而f()函数里的a是局部静态变量,那么在f()函数里可以实现累加,在f()里可访问.LZ可以当做两变量看待.所以,main函数里的a一直是3不变.而f()函数里a第一次调用时是1,调用后是2(也就是第二次调用前f()函数里a的值),再第二次调用后是3.
以上个人理解,不对之处批评指正.

C++进制转换问题#include using namespace std;int F(int,int);int main(){int num;int n;coutnum>>n;int z;z=F(num,n);cout 这个代码的意思#include int f(int n){if (n == 1){return 1;}return f(n-1)+n*n;}int main(){int n;while (scanf(%d,&n) == 1){printf(%d ,f(n));}return 0;} c语言 求Fibonacci数列前N项的函数,从主函数输出数列,哪错了..#include#includevoid main(){ int feibo(int n);int n;printf(input n);scanf(%d,&n);printf(%d,int feibo(int n));}int feibo(int n){int i;int f[n]={1,1};for (i=2;i 我想搞个X的Y次方的 算法 #include stdafx.hint main(int argc,char* argv[]){int pow(int x,int y);int a,b,c;scanf(%f,%f,&a,&b);c=pow(a,b);printf(%f ,c);return 0;}int pow(int x,int y){int i,z;i=1;z=x;while(i #include int f(int n); main() {int a=3,s; s=f(a);s=s+=(a);printf(%d ,s); } f(int n) {st解释一下#includeint f(int n);main(){int a=3,s;s=f(a);s=s+=(a);printf(%d ,s);}f(int n){static int a=1;n+=a++;return n;} 麻烦不要复制百度上的答案,int fa(int x){ return x*x; }int fb(int x){ return x*x*x; }int f(int (*f1)(),int (*f2)(),int x){ return f2(x)-f1(x); }main(){ int i;i=f(fa,fb,2); printf(“%d ”,i);} c语言求阶乘的函数int fac(int n){static int f=1; f=f*n; return(f);}main(){int i; for(i=1;i 37、有以下程序 int a=2; int f(int *a) {return (*a)++;} main( ) { int s=0; { int a=5; s+=f(&a); } s+答案为什么是C,37、有以下程序 int a=2; int f(int *a) {return (*a)++;} main( ) { int s=0; { int a=5; s+=f(&a); } s+=f(&a); printf(%d void Function() { printf(Call Function! ); } int main() { void (*p)(); *(int*)&p=(int)Function; #include void f(int *p,int*q); main() {int m=1,n=2,*r=&m; f(r,&n);printf(%d,%d,m,n);}#include void f(int *p,int*q);main(){int m=1,n=2,*r=&m;f(r,&n);printf(%d,%d,m,n);}void f(int *p,int *q){p=p+1;*q=*q+1;}运行后的结果是A 1,3 B 1,2 说说为 int a=2; int f(int a); {return (a)++;} main() {int s=0; {int a=5; s+=f(&&a);} s+=f(&&a); printf(%da=2;int f(int a);{return (a)++;}main(){int s=0;{int a=5;s+=f(&&a);}s+=f(&&a);printf(%d ,s);}执行的输出结果是()A 10 B 9 C 7 D 8 #include void f(int*x,int y) {*x=y+1;y=*x+2;} main() {int a=2,b=2; f(&a,b); printf(%d %d#includevoid f(int*x,int y){*x=y+1;y=*x+2;}main(){int a=2,b=2;f(&a,b);printf(%d %d,a,b);} 16、下面程序的运行结果是:int f( int a[],int n) { if(n>1) return a[0]+f(&a[1],n-1); else return a麻烦说明过程16、下面程序的运行结果是:int f( int a[],int n){ if(n>1) return a[0]+f(&a[1],n-1);else return a[0];}main ( ){ i int 还有int *f(); int f(int a[],int n) { if(n%2==0){ if(n>=1) return f(a,n-1)-a[n-1]; else return 0;} else { if(n>=1)int f(int a[],int n){ if(n%2==0){if(n>=1) return f(a,n-1)-a[n-1];else return 0;}else { if(n>=1)return f(a,n-1)+a[n-1];else return 0;}}main(){int aa[5]= c语言:main()?{int n;?scanf(%d,&n);?if(n++ main() { int n=4; while(n--) printf(%d,--n); } return的意思?#include int f(int i){printf(i=%d ,i);return 0;}int main(void){int i=10;f(i);return 0;}第一个return 为什么return几都是i=10这个答案?