有以下程序 #include int fun() {static int x=l: X*=2: return X: } main() {int i,s=l: for(i=l;i

admin2013-06-11  23

问题 有以下程序
    #include  
    int fun()
    {static int x=l:
    X*=2:
    return X:
    }
    main()
    {int i,s=l:
    for(i=l;i<=3,i++) s*=fun();  
    printf(“%d\n”,s);
    }
    程序运行后的输出结果是

选项 A、0
B、10
C、30
D、64

答案B

解析 fun函数中的变量x为静态局部变量,它在内存的静态存储区中占据着永久性的存储单元.即使退出fun函数也不释放x的存储单元,仍保留其原来的值,函数共调用了3次fun函数,第一次调用fun函数后,x=2,s=2;第二次调用fun函数后,x=l,s=8;第三次调用fun函数后.x=8,s=64。故程序运行后输出结果为64。
转载请注明原文地址:https://kaotiyun.com/show/VAJp777K
0

最新回复(0)