A-A+

有以下程序 include<stdio.h> intfun() {staticintx=l;

2022-08-12 18:51:02 问答库 阅读 197 次

问题详情

有以下程序 include<stdio.h> intfun() {staticintx=l; x*=2:returnx; } main() {inti,s=1; for(i=1;i<=2;i++)s=fun(); printff%dn,s); } 程序运行后的输出结果是
A.4
B.1
C.0
D.8

请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:A
在子函数fun()中定义局部静态变量x,其初值等于l,然后再把其值扩大1倍后返回。在主函数中执行for循环语句2次,调用函数fun()两次,所以变量s的值等于4。这里要强调的一点是当函数fun()执行完毕后,局部静态变量x的值不会丢失,仍然有效。

考点:程序