c语言的一道选择题
有以下程序:#include<stdio.h>intf(intn);main(){inta=3,s;s=f(a);s=s+f(a);printf("%d\n",s);}i...
有以下程序:
#include <stdio.h>
int f(int n);
main()
{ int a=3,s;
s=f(a);s=s+f(a); printf("%d\n",s);
}
int f(int n)
{ static int a=1;
n+=a++;
return n;
}
程序运行后的输出结果是( )。
A) 9
B) 8
C) 7
D) 10
这个n没赋值怎么知道是多少啊? 展开
#include <stdio.h>
int f(int n);
main()
{ int a=3,s;
s=f(a);s=s+f(a); printf("%d\n",s);
}
int f(int n)
{ static int a=1;
n+=a++;
return n;
}
程序运行后的输出结果是( )。
A) 9
B) 8
C) 7
D) 10
这个n没赋值怎么知道是多少啊? 展开
5个回答
展开全部
A
s=f(a);时调用f(3),n=n+a 就是n=3+1 然后a在自加1变为2,由于a是静态变量,下次调用时不会被初始化,保留上次的值2. 函数返回n的值是4赋给s
s=s+f(a); 时调用f(3),n=n+a 即n=3+2 返回5
s=4+5
s=9
谢谢给予采纳!
s=f(a);时调用f(3),n=n+a 就是n=3+1 然后a在自加1变为2,由于a是静态变量,下次调用时不会被初始化,保留上次的值2. 函数返回n的值是4赋给s
s=s+f(a); 时调用f(3),n=n+a 即n=3+2 返回5
s=4+5
s=9
谢谢给予采纳!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
注意n是函数的形参,是由主函数的实参调值进入的。所以s=f(3),代入下面的函数,n=3。然后依次累加即可。注意static 是静态变量,会储存之前保存的值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是A)9吧如果对了我解释下 如果错了就算了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是A吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询