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

admin2019-12-17  30

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

选项 A、4,5,6,7,
B、4,7,10,13,
C、4,6,8,10,
D、3,5,7,9,

答案C

解析 主函数中变量k作为for语句的循环变量,取值0、1、2、3,同时也作为实参通过调用函数f传递给形参变量m。由于变量a是全局变量,变量n是static静态变量,因此k=0时,f函数中,语句return  n+m+a;即1+0+3=4;k=1时,f函数中,语句return  n+m+a;即2+1+3=6;k=2时,f函数中,语句return  n+m+a;即3+2+3=8;k=3时,f函数中,语句return n+m+a;即4+3+3=10。因此C选项正确。
转载请注明原文地址:https://jikaoti.com/ti/8ZG0FFFM
0

最新回复(0)