问题 单项选择题

以下程序的输出结果是
int f()
static int i=0;
int s=1;
s+=i; i++;
return s;

main ( )
int i,a=0;
for (i=0;i<5; i++) a+=f();
printf ( "%d\n" ,

A.;
 

答案

参考答案:D

解析: 本题考核的知识点是静态变量static的应用。在C语言中声明为static型的变量,在整个程序运行期间,静态局部变量在内存的静态存储区中占据永久性的存储单元。即使退出函数后,下次再进入该函数时,静态局部变量仍使用原来的存储单元。由于并不释放这些存储单元,因此这些存储单元中的值得以保留; 因而可以继续使用存储单元中原来的值。本题中函数f()中定义了一个static型变量i,故每调用一次函数f(),i的值加 1,返回s的值等于i,在主函数中用了一个for循环,该循环执行了5次,每次都调用f()函数,将其返回值累加到变量a中,故悬后a的值为1+2+3+4+5=15。所以,4个选项中D为所选。

选择题
多项选择题