填空题
[程序]
#include<iostream.h>
int *p;
void fun(int a,int &b)
{
p=&b;
a+=*p;
b+=a;
cout<<a<<"/t"<<b<<"/t"<<*p<<endl;
}
void main(void)
{
int x=20,y=30;
fun(x,y);
cout<<x<<"/t"<<y<<"/t"<<*p<<endl;
}
执行以上程序后,输出的第一行是
1
,第二行是
2
。
【正确答案】
【答案解析】
50 80 80;20 80 80[解析] main函数中变量x=20,y=30;调用fun(x,y),在函数fun()中,变量a的值为20,b为main函数中y的引用,即b是main中的y;p=&b,即全局变量p保存了变量b的地址,a+=*p即a+=b,变量a的值为50;b+=a,变量b的值变为80;cout输出变量a、b和*p的值,即50、80、80;fun函数执行返回,cout输出变量x、y和*p的值,即20、80、80。
提交答案
关闭