简答题
👁️ 浏览量:

试题题干

#include<stdio.h>
int f(int a)
{
static int d=10;/*静态变量*/
d+=a;
return d;
}
void main()
{
printf("f1=%d",f(3));
printf("f2=%d\n",f(5));

参考答案

试题解析

static int d=10;/*静态变量*/因为static是静态变量,所以d只初始化一次。 

在printf("f1=%d",f(3));中f(3)是int a=3,所以在执行第一次循环的时候,d=d+a,返回值d=10+3=13,故输出函数f1=13。

printf("f2=%d\n",f(5));中f(5)是int a=5,所以在执行第二次循环的时候,d=d+a,d的值为13,返回值d=13+5=18,故输出函数f2=18。