一个C语言的选择题
intd=1;fun(intp){staticintd=5;d+=p;printf("%d",d);return(d);}main(){inta=3;printf("%d...
int d=1;
fun(int p)
{static int d=5;
d+=p;
printf("%d ", d);
return(d);
}
main( )
{int a=3; printf("%d \n", fun(a+fun(d)));}
A) 6 9 9
B) 6 6 9
C) 6 15 15
D) 6 6 15
选c,可是为什么不是14呢 展开
fun(int p)
{static int d=5;
d+=p;
printf("%d ", d);
return(d);
}
main( )
{int a=3; printf("%d \n", fun(a+fun(d)));}
A) 6 9 9
B) 6 6 9
C) 6 15 15
D) 6 6 15
选c,可是为什么不是14呢 展开
4个回答
展开全部
static定义的变量值改变后不可恢复。即d=6,而不是5啦、、、
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
static int d=5定义静态局部变量
其只在第一次调用fun函数时赋初值5,然后fun(1)时它的值改变为6,由于其在静态存储区存放,故在fun函数调用结束后,其值不消失,所以在再次调用fun函数时,d=6,所以结果就是15了,选C,希望能够帮到您。
其只在第一次调用fun函数时赋初值5,然后fun(1)时它的值改变为6,由于其在静态存储区存放,故在fun函数调用结束后,其值不消失,所以在再次调用fun函数时,d=6,所以结果就是15了,选C,希望能够帮到您。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1。执行最里层的fun(d),即fun(1),打印出数字6,并且d此时值为6,返回6
2。执行外层的fun(a+6),即fun(9),注意,因为d为static类型,d此时值为6,故执行完后,打印15,d变为15,返回15。
3。执行printf函数,再次打印15。
所以选c了。
2。执行外层的fun(a+6),即fun(9),注意,因为d为static类型,d此时值为6,故执行完后,打印15,d变为15,返回15。
3。执行printf函数,再次打印15。
所以选c了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询