有以下程序 #include <stdio.h> int m=12; int fun( int x,int y ) { static int m=3; m= x * y - m ; return (m); } main() {

admin2020-10-26  41

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

最新回复(0)