若有以下程序 #include inta=2; intf(intm) {staticintn; n=0;n++;a++; returnn+m+a; } main() {intk; for(k=0;k<4;k++)printf("%d,",f(k)); }

admin2015-07-31  24

问题 若有以下程序
#include
inta=2;
intf(intm)
{staticintn;
n=0;n++;a++;
returnn+m+a;
}
main()
{intk;
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://kaotiyun.com/show/VBDp777K
0

最新回复(0)