有以下程序: #include int m=12; int fun(int x,int y) { static int m:3; m=x * y—m: return(m); } main(

admin2019-01-11  19

问题 有以下程序:
    #include
    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。第二次调用fun(a,b),函数的返回值为3,此时m=2,故输出为1。所以答案为B选项。
转载请注明原文地址:https://kaotiyun.com/show/SZxp777K
0

随机试题
最新回复(0)