• 有以下程序

    fun(int x, int y)
    { static int m=0, i=2;
    i+=m+1; m=i+x+y; return m;
    }
    main()
    { int j=1,m=1,k;
    k=fun(j,m); printf("%d,",k);
    k=fun(j,m); printf("%d\n",k);
    }
    执行后的输出结果是
    A)5,5
    B)5,11
    C)11,11
    D)11,5

    正确答案:B答案 B解析 : 在子函数 fun(int x,int y) 中 , 变量 m 和 i 声明为静态局部变量 , 所以经过第 1 次函数的调用后,局部静态变量 m 和 i 的值分为为 5 和 3 ,当第 1 次调用结束时,其值保持不变 ,所以第 2 次调用时 , m 和 i 的值分别为 5 和 3 , 也就是说在执行 “ i+=m+1 ” 时 , i 的值为 9 ,因此最终 m 的值为 11 。
  • 2021年06月07日 14时12分来自  问答库 >> 计算机类
  • 评论 0
  • 手机玩微博

    手机版 手机端
    Powered by 日新微博 © 2018 - 2020 日新网