有如下程序 #include<stdio.h> int sum(int data) { static int S=0; S=S+data; return S; } main() {

admin2019-01-11  25

问题 有如下程序
    #include<stdio.h>
    int sum(int data)
    {
    static int S=0;
    S=S+data;
    return S;
    }
    main()
    {
    int i;
    for(i=1;i<=3;i++)
    printf(’’%d,’’,sum(i));
    }
    程序运行后的输出结果是(    )。

选项 A、1,3,6,
B、0,1,2,
C、1,2,3,
D、1,3,5,

答案A

解析 函数中,用static来声明变量,为静态局部变量,静态局部变量在内存的静态存储区中占据着永久性存储单元,退出函数时,变量不会消失,下一次调用时,值仍然存在。利用循环将1,2,3三个参数依次传入sum()函数,当1传入时计算得出S=1,因为S用static声明,所以其值不会消失,下次函数调用时此值仍为1;当下次调用时,2传入,s=1+2=3;当3被传入是,s=3+3=6,选项B、C、D错误,选项A正确;本题答案为A。
转载请注明原文地址:https://kaotiyun.com/show/xaxp777K
0

最新回复(0)