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

admin2010-12-16  30

问题 下列程序的运行结果是(    )。       #include<iostream.h>       void fun(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<<end

选项 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://kaotiyun.com/show/4Kjp777K
0

最新回复(0)