正确答案:
C
解析:
static变量又称为静态变量,编译时,将其分配在内存的静态存储区中,在整个程序运行期间都不释放这些存储单元,即使退出函数,下次再进入该函数时,静态局部变量仍使用原来的存储单元,值是上一次函数调用结束时的值。程序执行过程为:执行for循环,i=2,t=1,调用函数fun(2),定义静态局部变量t=1,此变量的作用域为函数fun中,定义局部变量i=1,for循环实现t=1×1×2=2,返回2,主函数中t=1+2=3;当i=3时,t=3,调用函数fun(3),静态局部变量上次调用后结果t=2,局部变量i=1,for循环实现t=2×1×2×3=12,返回12,t=3+12=15。最后输出t为15,答案选择C选项。