88问答网
所有问题
int f(int x) {static int k=0;x+=k--;return x;} f(f(6))的值为什么是5?谢谢
如题所述
举报该问题
推荐答案 2011-06-18
内层调用f(6)为第一次调用,k初始化为0,因为x赋值的中k为后缀,因此x的值为6返回,但是k已经自减为-1,并且静态局部变量保存这个值直到下次调用
第二次还是f(6),但是里面的k为-1,因此返回值为6-1,也就是5
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://88.wendadaohang.com/zd/gKMaBat1a.html
其他回答
第1个回答 推荐于2018-04-23
f(6): k=0; x=6+0 k=-1 return 6;
f(f(6))=f(6) k=-1; x=6-1; k=-2; return 5;
所以f(f(6))=5;
注意,x+=k-- 要先使用k的值,然后减一
static 是
静态变量
,一旦声明即拥有一块内存,直到程序执行完毕
本回答被网友采纳
第2个回答 2011-06-18
因为k 是static变量,函数结束后它的值还存在
第3个回答 2011-06-20
你少了一次循环
相似回答
关于C语言的问题
答:
static
int
k=0;
注意这个static变量,在执行s1后, k就不会初始化了(察看static变量相关知识),所以第2次执行s2的时候,k的初始值为6(s1执行完后
k=6)
,for循环条件不满足,一次也不会执行,所以s=0。我不知道你
为什么
会认为是1,for的三个参数,第一个是初始化,然后判断第2个蚕食满足才执行循环...
求解答C++的一道问题
答:
k是static int k静态局部变量,他
的值是
保留运算后的值的,跟全局变量处于同一存储区
f(f(
2))先算f(2)int
f(int
x){ static
int
k=0;x+=k
++
;return
x;}
x=2;x+=k++;由于第一次运行f 这个函数,k的值为0 ++在 k之后,就先用k的原值,再让k的值自加1 所以 f这个函数又相当于...
一个C语言题~~下面程序段的是多少
答:
1.k = f(3) 就是调用 int
f(int
x)
这个函数, 传入的参数是3, 即 x=3. 然后你代入进去,
static
y=1;y++; //y=1+1 =2
;x+=
y; // x = x+2 = 3+2 = 5
return
x;
//所以返回的x =5 即
k=f(
3) = 5.2.
f(k)
=
f(5)
//由第一步得到的k值代入。static y=...
...int
f(int
x)
{ static
int
k=0; x+=k
--
; return
x;
答:
第一次进入函数,k是初始化值,0 之后每次进入函数,k值是上次退出函数的值.
f(f(
3)) 就是先调用f(3) 然后再用返回值做参数 调用一次f 第一次 f(3) 退出时k=-1 返回值x为3 第二次 f(f(3
))=f(
3) 这时k=-1 自减后 k=-2, 返回值x值为2 所以最终结果是2 ...
C语言的一道题
答:
返回5,9,详细过程如下:首先是s
=f(
2),进入f函数,k=2,k++这时k=3,k+m=3+2=5,所以s为5 下面是print函数,第一个s值为5,所以显示5,第二个为f(s),进入f函数,此时m值为5,由于k为
static
型变量,所以k为上次保留的3,则k++为4,k+m=4
+5=
9 因此为5和9 ...
C语言的问题
答:
int
f(int
m
){ static
int
k=0;
//这个是静态变量,初始值为0 //static 定义的静态变量,第一次修改后的值,第二次时,他仍然存在 int s=0;for
(;k
<=m;k++)s++; //使得s和k都自加到(m+1
)return
s;} void main(){ int s1,s2;s1
=f(5);
//使得k和s1都等于了6 s2=f...
...
int
f()
{ static
int i
=0;
int s=1; s
+=
i; i++
; return
s
; }
_百度...
答:
static
int
i
=0是
静态变量,也就是说在程序整个生命周期里都是稳定存在的。因此每调用一次
f()
,由于i++而增加1;s是局部变量,每次调用都重新分配而初始化为0 因此f()返回是1,2,3,4,5……,每次调用都加1 了解这点,问题就好解决了。
c语言的题目,
为什么
结果是(3,
6)
,s不是没初始化吗,求解释,代码如下_百度...
答:
你对内存里面的一些分配都不是很清楚,静态变量在你定义的时候编译器是会自动初始化为0的。建议你看下关于内存管理方面的知识。
大家正在搜
static int i的默认值
static int i=0
int fun(int n)
static int i
int f(int x)
c语言static int
static const
c++static
java static
相关问题
如果求f(f(3)),输出是2,那个k是一直是0还是会变呢?...
int f(int x) {static int k=0;k...
c语言中int f(int x){int k=0; x+=k...
int a=1;int f(int c){static in...
C语言问题 有以下程序: #include<stdio.h>...
fun(int x) {static int a=3;a+=...
static int x=0;和static int x;x...
C语言程序阅读