问题 单项选择题

以下程序的输出结果是 int f() { stadc 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) ; }

A.20

B.24

C.25

D.15

答案

参考答案:D

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

单项选择题
单项选择题