C 习题与解析(引用-03)

文章作者 100test 发表时间 2007:03:10 16:59:28
来源 100Test.Com百考试题网


题1.分析以下程序的执行结果
#include
void swap(int &.x,int &.y)
{
int temp.
temp=x. x=y. y=temp.
}
void main()
{
int x=10,y=20.
swap(x,y).
cout<<"x="<}
解:
这里的函数采用引用调用的方式,所以输出为:x=20,y=10
注意:在函数调用里,引用调用与传址调用的效果相同,但更加简洁直观。

题2.分析以下程序的执行结果
#include
void main()
{
int a[]={10,20,30,40},*pa=a.
int *&.pb=pa.
pb .
cout<<*pa<}
解:
pa为数组的指针,首先指向a[0],pb是pa的引用,当执行pb 时,也使pa指向了a[1],所以输出为:20

题3.分析以下程序的执行结果
#include
class Sample
{
int x.
public:
Sample(){}.
Sample(int a){x=a.}
Sample(Sample &.a){x=a.x 10.}
void disp(){cout<<"x="<}.
void main()
{
Sample s1(2),s2(s1).
s1.disp().
s2.disp().
}
解:
Sample类的Sample(Sample &.a)构造函数是一个拷贝构造函数,将a对象的x增1然后加上10后赋给当前对象的x,由于a是引用对象,所以输出为:
x=3 // 运算的结果
x=12 // 2 10



相关文章


C 习题与解析(引用-04)
[二级C试题天天练]C语言考试试题10
C 习题与解析(引用-03)
[二级C试题天天练]C语言考试试题8
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛