有以下程序: #inchde<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;

admin2020-06-16  6

问题 有以下程序:
#inchde<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选项。
转载请注明原文地址:https://kaotiyun.com/show/bKCp777K
0

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