ly新标准C++程序设计教材1120章课后题答案Word文件下载.docx
- 文档编号:18274794
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:57
- 大小:30.72KB
ly新标准C++程序设计教材1120章课后题答案Word文件下载.docx
《ly新标准C++程序设计教材1120章课后题答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《ly新标准C++程序设计教材1120章课后题答案Word文件下载.docx(57页珍藏版)》请在冰豆网上搜索。
D.Aa,b;
if(a!
=b)a.func(5);
D
5.以下程序段不正确的是(A)。
A.intmain(){
classA{intv;
Aa;
a.v=3;
return0;
B.intmain(){
classA{public:
A*p;
Aa;
a.p=&
a;
return0;
C.intmain(){
classA{public:
A*p=newA;
p->
v=4;
deletep;
D.immain(){
Aa:
a.p=newA;
deletea.p;
A
6.实现一个学生信息处理程序。
输入:
姓名,年龄,学号(整数)。
第一学年平均成绩·
第二学年平均成绩,第三学年平均成绩,第四学年平均成绩。
输出:
姓名,年龄,学号,
4年平均成绩。
例如:
输入:
Tom18781780809070
输出:
Tom,18,7817,80
要求实现一个代表学生的类,并非所有成员变量都是私有的。
#include<
iostream>
#include<
cstring>
cstdlib>
//#include<
cstdio>
usingnamespacestd;
classStudent{
private:
intage,score1,score2,score3,score4;
charname[100],num[100];
doubleaverage;
public:
Student(charaname[],intaage,charanum[],intascore1,intascore2,intascore3,intascore4){
strcpy(name,aname);
age=aage;
strcpy(num,anum);
score1=ascore1;
score2=ascore2;
score3=ascore3;
score4=ascore4;
doublegetAverage(){
return(score1+score2+score3+score4)/4;
char*getName(){
returnname;
intgetAge(){
returnage;
char*getNum(){
returnnum;
};
intmain(){
charname[100],a,num[100];
cin.getline(name,100,'
'
);
cin>
>
age;
//a=getchar();
cin.getline(num,100,'
score1>
score2>
score3>
score4;
Students(name,age,num,score1,score2,score3,score4);
cout<
<
s.getName()<
"
"
<
s.getAge()<
s.getNum()<
s.getAverage();
}
第12章
1.以下说法中正确的是()。
A.一个类一定会有无参构造函数
B.构造函数的返回值类型是void
C.一个类只能定义一个析构函数,但可以定义多个构造函数
D.一个类只能定义一个构造函数,但可以定义多个析构函数
答案:
2.对于强过new运算符牛成的对象()。
A.程程序结束时自动析构
B.执行delete操作时才能析构
C.在包含new语句的函数返回时自动析构
D.在执行delete操作时会析构,如果没有执行delete操作,则在程序结束时自动析构
3.如果某函数的返回值是个对象,则该函数被调用时,返回的对象()。
A.是通过复制构造函数初始化的
B.是通过无参构造函数初始化的
C.用哪个构造函数初始化取决于函数的return语句是怎么写的
D.不需要初始化
4.以下说法LE确的是()。
A.在静态成员函数中可以调用同类的其他任何成员函数
B.const成员函数不能作用于非const对象
C.在静态成员函数中不能使用this指针
D.静态成员变量每个对象有各自的一份
5以下关于this指针的说法中不正确的是()。
A.const成员函数内部不可以使用this指针
B.成员函数内的this指针,指向成员函数所作用的对象
C.在构造函数内部可以使用this指针
D.在析构函数内部可以使用this指针
6.请写出下面程序的输出结果。
classCSample{
intx;
CSample(){cout<
”C1”<
endl;
CSample(intn){
x=n;
cout<
”C2,x=”<
n<
intmain(){
CSamplearray1[2];
CSamplearray2[2]={6,8};
CSamplearray3[2]={12};
CSample*array4=newCsample[3];
Return0;
C1
C2,x=6
C2,x=8;
C2,x=12
7.下面程序的输出结果是。
classSample{
Sample(){}
Sample(intn):
v(n){};
Sample(constSample&
x){v=2+x.v;
Sample&
PrintAndDouble(Sampleo)
{
o.v;
o.v=2*o.v;
returno;
intmain()
Samplea(5);
Sampleb=a;
Samplec=PrintAndDouble(b);
endl;
c.v<
//cout<
hex<
Sampled;
d=a;
d.v;
9
20
5
8.请写出下面程序的运行结果:
4,6
请填空:
classA{
intval;
A(intn){
val=n;
}
intGetVal(){
returnval;
classB:
publicA{
intval;
B(intn):
__________{
};
intGetVal(){
returnval;
}
Bb1
(2);
cout<
b1.GetVal()<
"
b1.A:
:
GetVal()<
\n"
;
Val(4),A(6)
9.下面程序的输出结果是
A(_______){
}
______GetObj(){
return_________;
a.val<
a.GetObj()=5;
intn=0
A&
*this
10.下面程序的输出结果是:
10
请补充Sample类的成员函数,不能增加成员变量
classSample{
intv;
Sample(intn):
v(n){
};
______________________
Sample(Sample&
obj){
this->
v=2*obj.v;
Sampleb=a;
b.v;
Sample(Sample&
This->
v=2*obj.v;
11.下面程序的输出结构是:
5,5
classBase{
intk;
Base(intn):
k(n){
classBig{
Baseb;
Big__________{
Big___________{
Biga1(5);
Biga2=a1;
a1.v<
a1.b.k<
a2.v<
a2.b.k<
(intn):
v(n),b(n)
(Big&
x):
v(x.v),b(x.b.k)
12.完成附录“魔静世界大作业”中提到的第一阶段作业
(省略)
第13章
1如果将运算符“[]”重载为某个类的成员运算符(也即成员函数),则该成员函数的
参数个数是()。
A.0个B.1个C.2个D.3个
2.如果将运算符“*”重载为菜个类的成员运算符(也即成员函数),则该成员函数的
A.0个B.1个C.2个D.0个或1个均可
3.下面程序的输出是
3+4i
5+6i
请补充Complex类的成员函数,不能加成员变量。
classComplex{
doubler,i;
voidPrint(){
r<
+"
i<
i"
}
//在这里补充
Complexa;
a="
3+4i"
a.Print();
5+6i"
Complex&
operator=(constchart[]){
if(!
t){
r=0.0;
i=0.0;
}else{
r=t[0]-'
0'
i=t[2]-'
}return*this;
4.下面的Mylnt类只有一个成员变量。
Mylnt类内部的部分代码被隐藏了。
假设下
面的程序能编译通过,且输出结果是:
4,1
请写出被隐藏的部分(要求编写的内容必须是能全部救进Mylnt类内部的,Mylnt的
成员函数不允许使用静态变量)。
classMyInt{
intnVal;
MyInt(intn){
nVal=n;
intReturnVal(){
returnnVal;
//在这里补充
//在这里补充
MyIntobjInt(10);
objInt-2-1-3;
objInt.ReturnVal();
objInt-2-1;
MyInt&
operator-(inti){
nVal-=i;
return*this;
5.下面的程序输出结果是
(4,5)
(7,8)
classPoint{
intx;
inty;
Point(intx_,inty_):
x(x_),y(y_){
//
___________________________
___________operator<
(________,constPoint&
p){
__________________________;
Return_____;
Point(4,5)<
Point(7,8);
friendostream&
operator<
(ostream&
o,constPoint&
p);
friendostream&
ostream&
o
o<
("
p.x<
p.y<
)"
endl
6.编写一个二维数组类Array2,使得程序的输出结果是
0,1,2,3,
4,5,6,7,
8,9,10,11,
next
classArray2
introw;
//数组行数
intcolumn;
//数组列数
int*ptr;
//指向二维数组的指针
Array2()
{
ptr=NULL;
Array2(intparaRow,intparaColumn):
row(paraRow),column(paraColumn)
ptr=newint[row*column];
Array2(Array2&
a):
row(a.row),column(a.column)
memcpy(ptr,a.ptr,sizeof(int)*row*column);
Array2&
operator=(constArray2&
a)
if(ptr)delete[]ptr;
row=a.row;
column=a.column;
~Array2()
int*operator[](inti)
returnptr+i*column;
int&
operator()(inti,intj)
returnptr[i*column+j];
intmain()
Array2a(3,4);
inti,j;
for(i=0;
i<
3;
++i)
for(j=0;
j<
4;
j++)
a[i][j]=i*4+j;
++i){
j++){
a(i,j)<
next"
Array2b;
b=a;
b[i][j]<
7.编写一个Mystring类,使得程序的输出结果是
1.abcd-efgh-abcd-
2.abcd-
3.
4.abcd-efgh-
5.efgh-
6.c
7.abcd-
8.ijAl-
9.ijAl-mnop
10.qrst-abcd-
11.abcd-qrst-abcd-uvwxyz
about
big
me
take
abcd
qrst-abcd-
string>
algorithm>
classMyString:
publicstring{
MyString():
string(){};
MyString(constchar*s):
string(s){};
MyString(conststring&
s):
string(s){};
MyStringoperator()(ints,intl){
returnthis->
substr(s,l);
MyStrings1("
abcd-"
),s2,s3("
efgh-"
),s4(s1);
MyStringSArray[4]={"
big"
me"
about"
take"
1."
s1<
s2<
s3<
s4<
s4=s3;
s3=s1+s3;
2."
3."
4."
s3<
5."
s4<
6."
s1[2]<
s2=s1;
s1="
ijkl-"
s1[2]='
A'
;
7."
8."
s1+="
mnop"
9."
s4="
qrst-"
+s2;
10."
s1=s2+s4+"
uvw"
+"
xyz"
11."
sort(SArray,SArray+4);
for(inti=0;
i++)
SArray[i]<
//s1的从下标0开始长度为4的子串
s1(0,4)<
//s1的从下标5开始长度为10的子串
s1(5,10)<
第14章
1.以下说法不正确的是(假设在公有派生情况下)()。
A.可以将基类对象赋值给派生类对象
B.可以
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ly 新标准 C+ 程序设计 教材 1120 课后 答案