
求助~求解C语言题目~
有以下程序#include<stdio.h>intfun(){staticintx=1;x*=2;returnx;}main(){inti,s=1;for(i=1;i<=...
有以下程序
#include <stdio.h>
int fun ()
{ static int x=1;
x*=2;
return x;
}
main()
{ int i, s=1;
for( i=1; i<=3; i++ ) s*=fun();
printf ("%d\n”, s);
}
程序运行后的输出结果是( )
A 64 B 10 C 30 D 0
问下这个x*=2是什么意思。。。然后求这个题的详细过程~ 展开
#include <stdio.h>
int fun ()
{ static int x=1;
x*=2;
return x;
}
main()
{ int i, s=1;
for( i=1; i<=3; i++ ) s*=fun();
printf ("%d\n”, s);
}
程序运行后的输出结果是( )
A 64 B 10 C 30 D 0
问下这个x*=2是什么意思。。。然后求这个题的详细过程~ 展开
3个回答
展开全部
x*=2就是x=x*2;类似的还有+=、-+、/=等。这里的fun函数里的x为static,也就是为静态的,每次执行后其值会保留,而不会被重新赋值,也就是每执行一次fun函数,x都会变成原来二倍,说到这就明白了,第一次为s=s*fun()=1*2=2;第二次s=2*4=8;第三次s=8*8;所以是A
更多追问追答
追问
诶。。。那不是说调用后X的值不改变么。。。为什么不是一直是2.。。
追答
不改变不是停在一个数上永远不变,而是下次调用时会保留上次留下的值不变,本质上也就是说这个数的空间不会改变,而空间的内容可变
展开全部
x=x*2;//cou zi shu...
----
泥煤没说完呢……
fun 里面声明的 static 的 x 说明 x 存储在静态存储区,每次调用 fun 不会重新分配内存,x 的值也不会改变(初始化只是第一次初始化)。
----
泥煤没说完呢……
fun 里面声明的 static 的 x 说明 x 存储在静态存储区,每次调用 fun 不会重新分配内存,x 的值也不会改变(初始化只是第一次初始化)。
追问
哦哦,那还要过程。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
x * = 2 表示 x = x * 2
相应的
x += 2 表示x = x + 2
x -= 2 表示x = x - 2
输出结果相当于2*4*8=64
相应的
x += 2 表示x = x + 2
x -= 2 表示x = x - 2
输出结果相当于2*4*8=64
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询