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

admin2009-01-15  23

问题 以下程序的输出结果是    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);     }

选项 A、20
B、24
C、25
D、15

答案8

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

最新回复(0)