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

admin2019-01-11  24

问题 有以下程序:
    #include
    int a=2;
    int f(int k)
    {  static int n;
    int m;
    m=n=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,8
B、6,9
C、6,6
D、6,7

答案A

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

相关试题推荐
最新回复(0)