选择题
33.
有以下程序:
#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
【答案解析】
局部变量覆盖全局变量,但是全局变量的声明周期还存在。f()函数调用完成后,由于m为全局变量,被修改为32,即函数的返回值为32,此时m=32/12,第二次调用f(a,b)函数,函数的返回值为3,此时m=2,故输出为1。所以答案为选项B。
提交答案
关闭