};
voidmain()
{
Pp1(10,20),p2;
p1.print();
p2.print();
}
第4题
#include
usingnamespacestd;
classtest
{
private:
intnum;
floatf1;
public:
test();
test(int,float);
intgeti(){returnnum;}
floatgetf(){returnf1;}
~test(){cout<<"Destructoriscalled!
"<};
test:
:
test(){
cout<<"defaultconstructoriscalled!
"<num=0;f1=0.0;
}
test:
:
test(intn,floatf){
cout<<"constructoriscalled!
"<num=n;f1=f;
}
voidmain()
{
test*p=newtest(5,3.6);
cout<geti()<<"\t"<getf()<deletep;
}
第5题
#include
#include
classBase{
private:
charmsg[30];
intn;
public:
Base(chars[],intm=0){
n=m;
strcpy(msg,s);
}
voidoutput(void){cout<};
classDerived:
publicBase
{private:
intn;
public:
Derived(intm=1):
Base("Base",m)
{n=m;}
voidoutput(void)
{cout<Base:
:
output();
}
};
voidmain(){
BaseB("BaseClass",1);
DerivedD;
B.output();
D.output();
}
五、根据要求完成程序
1、下面函数的功能是求数组中最大元素和数组的平均值,请填写完整。
#include
usingnamespacestd;
voidmain()
{
inta[10]={2,5,4,9,12,8,7,15,6,10};
intmax=a[0];
intsum=a[0];
____doubleavg_____
for(inti=1;___i<10__;i++)
{
sum=sum+a[i];
if(a[i]>max)
_____max=a[i]_______
}
avg=sum/10.0;
cout<<"最大的数是:
"<cout<<"平均值是:
"<}
2、下面函数是对整型数组进行递增排序(采用冒泡排序),请填写完整。
voidbubble_up(intlist[],intcount)//count是数组需要排序的元素个数
{
for(inti=0;ifor(intj=0;___jif(list[j]>list[j+1])
{
inttmp=list[j+1];
__list[j+1]=list[j]___
list[j]=tmp;
}
}
3、下面程序的功能是去掉字符串的前后空格,请填写完整。
#include
usingnamespacestd;
char*mytrim(_char*s__)
{
char*p=s;
//去掉字符串前面的空格
while(*p=='')
p++;
char*q=s;
//将p指向的字符串赋值给q
while(*p!
='\0')
{
__*q=*p__
q++;
__p++__
}
//去掉字符串后面的空格
while(*q=='')
{
__q--___
}
*(++q)='\0';
return__s_;
}
voidmain()
{
charstr[]="hello,welcometoc++!
";
cout<<"去掉空格字符之前的字符串为:
["<cout<<"去掉空格字符之后的字符串为:
["<}
程序的运行结果如下:
去掉空格字符之前的字符串为:
[hello,welcometoc++!
]
去掉空格字符之后的字符串为:
[hello,welcometoc++!
]
六、程序设计
设有D3Point类声明如下:
classD3Point
{
public:
D3Point();//D3Point类的缺省构造函数
D3Point(intx,inty,intz);//D3Point类的有参构造函数
D3Point(D3Point&p);//D3Point类的拷贝构造函数
~D3Point(){cout<<"destructoriscalled!
"<voidMove(intdx,intdy,intdz);
voidShow();
private:
intX,Y,Z;//D3Point类的私有数据成员
};
在类的声明外完成各个成员函数的定义,要求如下:
(1)缺省构造函数初始化X,Y,Z为0,并输出defaultconstructoriscalled!
(2)有参构造函数使用形参x,y,z初始化X,Y,Z,并输出constructoriscalled!
(3)拷贝构造函数使用形参p初始化X,Y,并输出copyconstructoriscalled!
(4)Move函数的功能是修改Point的X,Y,Z的值,X加dx,Y加dy,Z加dz
(5)Show函数的功能是显示Point的X,Y,Z的值,以X=?
Y=?
Z=?
形式显示。
参考答案
一.单选题
1
2
3
4
5
6
7
8
9
10
C
C
B
C
A
C
C
B
A
D
11
12
13
14
15
16
17
18
19
20
C
B
B
C
C
C
B
B
C
C
二.判断题
1
2
3
4
5
6
7
8
9
10
×
√
√
×
√
√
×
√
√
√
三.填空题
(1)
(2)
(3)
(4)
(5)
void
static
x!
=y&&i<=j
引用
地址
(6)
(7)
(8)
(9)
(10)
delete
Private(私有的)
封装
继承
多态
四.阅读程序,写出程序运行结果
1
2
6
HGFEDCBA
3
4
10,20
0,0
constructoriscalled
53.6
destructoriscalled
5
1baseclass
1
1base
五.程序填空
(1)
floatavg;或者doubleavg;
(2)
i<10或i<=9
(3)
max=a[i];
(4)
j(5)
list[j+1]=list[j];
(6)
char*s
(7)
*q=*p;
(8)
p++
(9)
q--;
(10)
s
六、编程题
D3Point:
:
D3Point()//定义D3Point类的缺省构造函数
{
X=0;
Y=0;
Z=0;
cout<<"defaultconstructoriscalled!
"<}//3分
D3Point:
:
D3Point(intx,inty,intz)//定义D3Point类的有参构造函数
{
X=x;
Y=y;
Z=z;
cout<<"constructoriscalled!
"<}//3分
D3Point:
:
D3Point(D3Point&p)//定义D3Point类的拷贝构造函数
{
X=p.X;
Y=p.Y;
Z=p.Z;
cout<<"copyconstructoriscalled!
"<}//3分
voidD3Point:
:
Move(intdx,intdy,intdz)
{//公有成员函数Move的定义
X+=dx;
Y+=dy;
Z+=dz;
}//3分
voidD3Point:
:
Show()
{//公有成员函数Show的定义
cout<<"X="<}//3分
WelcomeTo
Download!
!
!
欢迎您的下载,资料仅供参考!