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

admin2013-02-23  26

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

答案8

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

最新回复(0)