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

admin2020-04-18  30

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

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

答案A

解析 程序执行过程为:for循环i=1,调用函数sum(1), init=0,data=1,返回init=0+1=1,输出1;i=2,调用函数sum(2),data=2,init=1,返回init=1+2=3,输出3;i=3,调用函数sum(3),data=3,init=3,返回init=3+3=6,输出6;i=4,调用函数sum(4),data=4,init=6,返回init=6+410,输出10;i=5,调用函数sum(5),data=5,init=10,返回init=10+5=15,输出15;i=6,退出for循环。本题运行后的输出结果是1,3,6,10,15, A选项正确。
转载请注明原文地址:https://jikaoti.com/ti/udG0FFFM
0

最新回复(0)