99问答网
所有问题
C语言问题 有以下程序: #include<stdio.h> int f(int m) { static int n=0; 求详解
如题所述
举报该问题
推荐答案 2019-12-22
#include
int f(int m)
{
static int n=0; //
静态变量
,只初始化一次,第二次为上一次的剩余结果
n+=m;
return n; //第一次n=1 第二次m=1,n+=m=2
}
void main()
{
int n=0;
printf("%d,",f(++n)); //++n,先自增,后调用n,相当于调用f(1)
printf("%d\n",f(n++)); //n++,先调用n,后自增,相当于调用f(1)
}结果为1,2
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/WztjOeWzvBtvvtzzOBj.html
其他回答
第1个回答 2019-12-26
这题主要考++n和n++的区别
++n:将n的值+1后作为表达式的值
n++:将n的值作为表达式的值后n自加1
相似回答
求大神讲解下这个
程序
,为什么最后输出结果不一样
答:
(7)
程序
结束,释放静态变量n。可以在每个结点加入调试信息,就可以明白哪里有
问题
了 如下:include<stdio.h>
int f(int m)
{ static int n = 0;printf("1n:%d\n",n);printf("1m:%d\n",m);n = n+m;printf("2n:%d\n",n);printf("2m:%d\n",m);return n;} main(){ int n =...
C语言有
几个试题不会,望指教
答:
1.
#include
<
stdio.h
> int fun
(int
m){
int
n=0;
//由于n在实际程序中,并不牵扯最终的运行结果,所以,n的分析暂时忽略。static int t=3;//定义静态变量t并且初始化t=3。注意
:static
定义了t后,表示,第一次调用的时候,t=3,//后来的调用到的是t运算得到的值,并不给t再初始化。m...
main
()
{
int
k; for(k
=0;
k<4;k++) print
f(
"%d,",f(k
));
}
答:
static是静态分布局部变量;
static int n=0
;这个初始化化只执行一次的意思 include<stdio.h> include<stdlib.h> int a=2;int
f(int m)
{ static int n;n=0;n++;a++;printf("n=%d\n",n);return n+m+a;} main(){ int k;for(k=0;k<4;k++) printf("%d,",f(k));system("pau...
c语言问题#include
<
stdio.h
>
int
f()
{
static
int i
= 0;
int s...
答:
然后,a=1,a+
=f()
,f()里面,由于 i 是静态变量
static
,所以i 的值被保存到现在,i=2,s没保存,s=1,s+=i,s=3;i+=2,i=4,返回s=3,得a+=3,a=4;接着,a=4,a+=f(),f()里面i=4,s=1,s+=i,s=5,i+=2,i=6,返回s=5,得a+=5,a=9;三次完毕,打印...
#include
<
stdio.h
>int
f(int
a
){int
b
=0;static
int c=3;b++;c++;r...
答:
答案 : 7 8 9 过程 此题考查静态局部变量 加了
static
的静态局部变量在函数调用以后内存没有释放(因为static修饰的局部变量内存分配在全局区(也叫静态区),未使用static关键字修饰的局部变量内存分配在栈区(栈区的生命周期是函数结束之后)),因为c被static关键字修饰,所以下次进入此函数,c的值是...
c语言问题
答:
} 和
include
<
stdio.h
> int
f(int
n){int
t
=0;static
int a=5; \*z在这个程序中,将a定义为static int型,并且在之后的语句中没有再对a重新定义,所以a一直为局部静态变量*\ if(n%2){a=6;t+=a++;} else{a=7;t+=a++;} return t+a++;} void main(){ int s=4,i=0;for...
有以下程序:
#include
<
stdio.h
> fun
(int
x, int y
)
{
static
int
m=
...
答:
c语言
的
static
变量是在程序加载的时候就为之分配内存的,一直到程序结束,而不像普通变量那样函数执行一次分配一次。fun函数中的局部变量m、i是静态局部变量(它的生存期为整个
源程序
,但是其作用域仍与自动变量相同,只能在定义该变量的函数内使用该变量。退出该函数后, 尽管该变量还继续存在,但不能...
有以下程序:
#include
<
stdio.h
> int
f(int
n);
main(
){int
a=3,s...
答:
} int
f(int
n
){
static
int a=1;//这里是静态变量,静态变量的特点是赋值语句仅执行一次 n+=a++;//这句话相当于n=n+a;a++;后置++先返回原数值,然后自变量+1 //所以第一次s=f(3
)n=
3,a=1;n+=1=4,a=2,f(a)=4 //s=4;//第二次f(3),n=3,(a=1这句话不执行),a=2...
C语言问题
答:
include
<
stdio.h
> int fun
(int
m
,int
n)
//返回值为int 的函数,mn是形参。
{static
s=1; //s是静态变量调用后,其值并不改变,保持最后一次的值。s++;return(s*(m+n));} main(
){
int a=0,b=1;printf("%d,",fun(a,b));printf("%d,",fun(a,b));//此处传入被调函数...
大家正在搜
有以下程序include
c语言 include 相对路径
include c语言
vi写c语言include
C语言include怎么使用
c语言include后面跟什么
c语言include的用法
include是不是C语言关键字
c语言中的include是啥意思
相关问题
c语言问题#include <stdio.h> int f(...
有以下程序 #include<stdio.h> int fu...
有以下程序: #include <stdio.h> fun(...
以下程序运行后的输出结果是 #include<stdio.h...
下面程序的输出结果 #include <stdio.h> i...
C语言的几道问题 请回答 谢谢有以下程序:#include ...
以下程序的输出结果是#include<stdio.h>int...
有以下程序: #include<stdio.h> int f...