选择题
有以下程序:
#include <stdio.h>
int m=12;
int fun(int x,int y)
{ static int m=3;
m=x*y-m;
return(m);
}
main()
{ int a=7,b=5;
m=fun(a,b)/m;
printf('%d\n',fun(a,b)/m);
}
程序运行后的输出结果是
A、
2
B、
1
C、
3
D、
0
【正确答案】
B
【答案解析】
在函数内部,局部变量覆盖全局变量,但是全局变量的声明周期还存在。fun函数调用完成后,静态局部变量m=32,函数的返回值为32,此时全局变量m=32/12=2;第二次调用fun(a,b),函数的返回值为3,此时m=2,故输出为1。所以答案为选项B。
提交答案
关闭