下列程序的运行结果是(  )。    #include<iostream.h>    voidfun(int &a,int b=3)    {    static int i=2;    a=a+b+i;    i=i+a;    }    void ma

admin2010-06-06  38

问题 下列程序的运行结果是(  )。    #include<iostream.h>    voidfun(int &a,int b=3)    {    static int i=2;    a=a+b+i;    i=i+a;    }    void main()    {    int x=5,y=2;    fun(x,y);    cout<<x<<",";    fun(x);    cout<<x<<endl;    }

选项 A、5,2
B、7,11
C、11,23
D、9,23

答案D

解析 由程序中的主函数main入手,定义了变量x=5,y=2。然后调用fun函数,其中a为引用地址,其改变会影响实参的改变。 fun函数中的i=2定义为静态变量,有效到文件结束。所以主函数中第一个输出x值为函数fun中的a值,即9。而i=11。第二次调用fun函数时,x=9,i=11,所以a=9+11+3=23。
转载请注明原文地址:https://jikaoti.com/ti/RlW0FFFM
0

最新回复(0)