有以下程序 #include <stdio.h> fun(int x, int y) { static int m=0, i=2; i+=m+1; m=i+x+y; return m;

admin2015-11-24  11

问题 有以下程序
     #include <stdio.h>
     fun(int  x, int  y)
     { static int  m=0, i=2;
       i+=m+1;    m=i+x+y;    return m;
     }
     main()
     { int  j=1, m=1, k;
       k=fun(j,m);    printf("%d,",k);
       k=fun(j,m);    printf("%d\n",k);
     }
执行后的输出结果是

选项 A、5, 11
B、5, 5
C、11, 11
D、11, 5

答案A

解析 static静态变量只在声明时初始化一次。因此m,n只是在第一个调用fun函数时初始化,第二次保持原来的只不变,不在进行初始化。因此第一次,可计算i=3,m=3+1+1=5,故打印为5,第二次i=4+5,m=9+1+1=11,故打印11。故答案为A选项。
转载请注明原文地址:https://kaotiyun.com/show/ANID777K
0

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