问题 填空题

以下程序的输出结果是______。
#include <stdio.h>
int fun(int x)
static int t=0;
return(t+=x);

main()
int s,i;
for(i=1 ;i<=5;i++) s=fun(i);
printf("%d\n",s);

答案

参考答案:O

解析: static类型的变量是静态变量,本题中的静态变量t为静态局部变量。静态局部变量是在编译时赋初值的,即只赋初值一次,在程序运行时它已有初值。以后每次调用函数时不再重新赋初值而只是保留上次函数调用时的值。本题在多次调用fun函数的过程中,只在第一次调用时t的初值为0,以后每次调用函数时不再重新赋初值,而只是保留上次函数调用结束时的值,所以本程序的作用相当于将1到5数字进行累加,故输出结果为15。

单项选择题
判断题