有以下程序: #include int a=2; int f(int k) { static int n=0; int m=0; n++;a++;m++;k++; return n+m+a+k;

admin2019-01-11  22

问题 有以下程序:
    #include
    int a=2;
    int f(int k)
    {  static int n=0;
    int m=0;
    n++;a++;m++;k++;
    return n+m+a+k;
    }
    main()
    {  int k;
    for(k=0;k<2;k++)printf("%d,",f(k));
    printf("\n");
    }
    程序运行后的输出结果是(    )。

选项 A、6,9,
B、6,10,
C、6,6,
D、6,7.

答案A

解析 static表示定义一个静态分布变量,变量只会初始化一次,在for循环体内调用f()函数,f()函数是将当前的n,m,a,k值加1后进行累加返回主函数输出。第二次累加时,n值初始值为1,因此输出分别为6,9,答案为A选项。
转载请注明原文地址:https://kaotiyun.com/show/9Zxp777K
0

随机试题
最新回复(0)