四、完成程序题(本大题共5小题,每小题4分,共20分)
46.在下面程序的下划线处填上正确的语句,使其得到下面的输出结果。
x=2,y=3
#include<iostream.h>
class Sample
{
int x,y;
public:
Sample( ){
x=y=0;
}
Sample(int a,int b){
x=a;
(__________)
}
void disp( )
{
cout<<"x="<<x<<",y="<<y<<endl;
}
}(___________)
void main( )
{
Sample s(2,3),*p=&s;
p - >disp();
}
47.在下划线处填上适当的语句,使程序的输出结果如下:
n=30
#include< iostream.h >
template< class T >
class Sample
{
T n;
public:
Sample( ){ }
Sample(T i){_________}
Sample<T>&operator+(const Sample<T>&);
void disp( ){cout<<"n="<<n<<endl;}
};
template<class T>
Sample<T>&Sample<T>::operator+(const Sample<T>&s)
{
static Sample<T>temp;
return temp;
}
void main( )
{
Sample<int>s1(10),s2(20),s3;
s3=s1+s2;
s3.disp();
}
48.在下划线处填上适当的语句,使程序的输出结果如下:
1 2 3 4 5 6 7 8 9 10
#include<iostream.h>
class Sample
{
int A[10][10];
public:
int &operator()(int,int);
};
int &Sample::operator()(int x,int y)
{
return A[x][y];
}
void main()
{
Sample a;
int i,j;
_________
for(j=0;j<10;j++)
_________
for(i=0;i<l0;i++)
cout<<a(i,1)<< " ";
cout<<endl;
}
49.在下划线处填上适当的句子,完成函数的定义。
#include<iostream.h>
class Sample
{
int x;
public:
Sample( ){ };
_________{x=a;}
_________{x=a.x++ +10;}
void disp( ){cout<<"x="<<x<<endl;}
};
void main( )
{
Sample s1(2),s2(s1);
s1.disp( );
s2.disp( );
}
50.输入一个字符串,将其逆序后输出。
#include<iostream>
using namespace std;
void main()
{
char a[50];memset(a,0,sizeof(a));
int i=0,j;
char t;
cin.getline(a,50,'\ n';
for(i=0,j=strlen(a)-1;i<_________;i++,j ―― )
{
t=a[i];
a [j]=t;
}
cout<<a<<endl;
}