ly新标准C++程序设计教材120章课后题答案Word格式.docx

上传人:b****6 文档编号:16268185 上传时间:2022-11-22 格式:DOCX 页数:36 大小:58.31KB
下载 相关 举报
ly新标准C++程序设计教材120章课后题答案Word格式.docx_第1页
第1页 / 共36页
ly新标准C++程序设计教材120章课后题答案Word格式.docx_第2页
第2页 / 共36页
ly新标准C++程序设计教材120章课后题答案Word格式.docx_第3页
第3页 / 共36页
ly新标准C++程序设计教材120章课后题答案Word格式.docx_第4页
第4页 / 共36页
ly新标准C++程序设计教材120章课后题答案Word格式.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

ly新标准C++程序设计教材120章课后题答案Word格式.docx

《ly新标准C++程序设计教材120章课后题答案Word格式.docx》由会员分享,可在线阅读,更多相关《ly新标准C++程序设计教材120章课后题答案Word格式.docx(36页珍藏版)》请在冰豆网上搜索。

ly新标准C++程序设计教材120章课后题答案Word格式.docx

D

5•以下程序段不正确的是(A)o

A.intmain(){

classA{intv;

Aa;

=3;

return0;

B.intmain(){

classA{public:

A*p;

};

=&

a;

return0;

C.intmain(){

A*p=newA;

p->

v=4;

deletep;

return0;

D.immain(){

Aa:

a.p=newA;

delete;

A

6•实现一个学生信息处理程序。

输入:

姓名,年龄,学号(整数)。

第一学年平均成绩•

第二学年平均成绩,第三学年平均成绩,第四学年平均成绩。

输岀:

姓名,年龄,学号,

4年平均成绩。

例如:

Tom18781780809070

输出:

Tom,18,7817,80

要求实现一个代表学生的类,并非所有成员变量都是私有的。

#include<

iostream>

#include<

cstdlib>

面程序的输岀结构是:

5,5

请填空:

usingnamespacestd;

classBase{

intk;

Base(intn):

k(n){

}

classBig{

Baseb;

Big{

intmain(){

Biga1(5);

Biga2=a1;

cout<

vvv"

"

vvcout<

vvreturn0;

(intn):

v(n),b(n)

(Big&

x):

v,b完成附录“魔静世界大作业”中提到的第一阶段作业

(省略)

第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类的成员函数,不能加成员变量。

cstring>

classComplex{

doubler,i;

voidPrint(){

coutv<

rvv"

+"

vvivv"

i"

vvendl;

abcd-efgh-abcd-

2.abcd-

3.

3.abcd-efgh-

4.efgh-

5.c

6.abcd-

7.ijAl-

8.ijAl-mnop

9.qrst-abcd-

10.abcd-qrst-abcd-uvwxyz

about

big

me

take

abed

qrst-abed-

estdlib>

string>

#include《algorithm〉

classMyString:

publicstring{

MyString():

string(){};

MyString(constchar*s):

string(s){};

MyString(conststring&

s):

string(s){};

MyStringoperator。

(ints,intl){

returnthis->

substr(s,l);

intmain()

{

MyStrings1("

abcd-"

),s2,s3("

efgh-"

),s4(s1);

MyStringSArray[4]={"

big"

me"

about"

take"

cout<

<

"

1."

<

si<

s2<

s3<

s4<

endl;

s4=s3;

s3=si+s3;

cout<

2."

3."

4."

s3<

5."

s4<

6."

s1[2]<

s2=si;

si="

ijkl-"

;

si[2]='

A'

7."

8."

si+="

mnop"

9."

s4="

qrst-"

+s2;

10."

si=s2+s4+"

uvw"

+"

xyz"

11."

s1<

sort(SArray,SArray+4);

for(inti=0;

i<

4;

i++)

SArray[i]<

成附魔兽世界作业中的的二阶段。

第15章

1•以下说法正确的是()

A.在虚函数中不能使用this指针

B.在构造甬数中调用虚函数,不是动态联编

C.抽象类的成员函数都是纯虚函数

D.构造函数和析构函数都不是虚构函数

2•写岀下面程序的输岀结果

A(){

virtualvoidfunc(){

v"

:

func"

v<

endl;

~A(){

virtualvoidfund(){

fund"

classB:

publicA{

B(){

func();

voidfun(){

~B(){

fund();

classC:

publicB{

C(){}

voidfunc(){

C:

~C(){

voidfund(){

Cc;

func

fund

3.写出下面程序的输出结果。

virtual〜A(){

DestructA"

virtual~B(){

coutvv"

DestructB"

vvendl;

virtual~C(){

DestructC"

A*pa=newC;

deletepa;

DestructC

DestructB

DestructA

4.写出下面程序的输出结果:

fun"

C(){

A*pa=newB();

pa_>

fun();

B*pb=newC();

pb->

fun

5•下面程序的输岀结果是

intnVal;

voidFun(){cout<

Fun"

voidDo(){coutvv"

Do"

virtualvoidDo(){

B:

voidDo(){

voidFun(){

coutvv'

voidCall(B&

p){

();

Call(c);

system("

PAUSE"

);

Fun

Do

6•下面程序的输岀结果是

destructorB

destructorA

请完整写出classA。

限制条件:

不能为classA编写构造函数。

"

destructorB"

A*pa;

pa=newB;

cout«

destructorA"

«

7•下面的程序输岀结果是

virtualvoidDo(){cout<

voidFun(){coutvv'

voidCall(){

Fun();

Do();

intmain(){

Call(newA());

Call(newC());

A*p

8•完成附录魔兽世界大作业中提到的终极版本作业。

(省略)

第16章

1.C++标准类库中有哪几个流类,用途分别如何它们之问的关系如何

c++标准库中有istream,ostream,ifstream,ofstream,iostream,fstream等流类。

istream是用于输入的流类:

ostream是用于输出的流类:

ifstream是用于从文件读取数据的类:

ofstream是用于向文件写入数据的类:

iostream是既能用千输入,又能输出的类:

fstream是既能从文件读取数据,又能向文件写入数据的类。

ios是个抽象基类,它派生出istream和ostream;

istream派生出ifstream,ostream派生出ofstream,istream和ostream共同派生了iostream;

iostream派生出fstream。

2cin是哪个类的对象cout是哪个类的对象

cln是istream类的对象:

cout是ostream类的对象。

3编写程序,读取一行文字,然后将此行文字颠倒后输岀

输人样倒:

Theseare100dogs

输出样例:

.sgod001eseht

>

voidswap(char*s){

intlen,i;

chartmp;

len=strlen(s)-1;

for(i=0;

i<

=len/2;

++i){

tmp=s[i];

s[i]=s[len-i];

s[len-i]=tmp;

intmain(void){

chars[]="

Thereare100dods."

vsvv"

\n"

swap(s);

coutvvsvvendl;

4•编写程序,输入若干个实数,对于每个实数,先以非科学计数法输岀,小数点后面保

留5位有效数字;

再以科学计数法输出,小数点后面保留7位有效数字。

输入以Ctrl+Z

结束。

输入样例:

输出样例:

+001

+005

usingnamespacestd;

intmain()

doublenum;

while(cin>

num){

cpp处理后的结果生成为result2.cpp文件

输入样例:

iomanip>

usingnamepsacestd;

/*

testsample

*/

voidfunc(intn){

if(n){

”infunc”<

intmain()Pleasedoubleit,Thisisafile.

Pleasedoubleid.

fstream>

ifstreamin("

ofstreamout("

stringline;

stringcontent;

if(in)dat.要求是二进制文件,文件中的每个记录和上述类的对

象相对应。

students.dat最初不存在。

程序可以多次运行,如果第一敬运行程序后

students.dat生成了,则以后再运行时,程序应基干已经存在的students.dat进行操作。

程序运行时

能接受以下几种命令:

1)Add姓名学号成绩

例如IAddTom1234567

添加学生信息•姓名和学号都不会包含空格。

姓名由最多9个字母组成-学号是整

数。

可能重名,但学号不会重复。

如果发现相同学号的学生已经存在,则不添加学生信息,

而是输出:

“Aireadyentered”。

2)Search姓名

根据姓名查找学生信息,并输岀。

如果有重名的,把重名的学生信息全部输岀。

辅岀格

式为;

每个学生信息输出为一行,查不到则输出“NotFoundH。

3)Search学号

根据学号查找学生信息,并输出。

输出格式为:

姓名学号成绩

每个学生信息输出为一行。

查不到则输出“NotFound'

4)Modify学号成绩

根据学号修改学生的成绩并输出“Done。

如果找不到该学号的学生,则输出“Not

Found'

假定学生记录非常多,所以不能采取用一个大数组把全部学生记录都读取到内存的

答案:

#include<

cstdio>

classStudent

charname[50];

intstuID;

doublegrades;

voidAdd()

(name,50);

cin>

stuID>

grades;

voidshowData()

grades;

name<

stuID<

 

voidsetdata(){cout<

Done"

/**functiontowriteinabinaryfile.

voidwrite_record()

ofstreamoutFile;

("

ios:

binary|ios:

app);

Studentobj;

((char*)&

obj,sizeof(obj));

*functiontodisplayrecordsoffile

voiddisplay(){

ifstreaminFile;

binary);

while((char*)&

obj,sizeof(obj))){

();

*functiontosearchanddisplayfrombinaryfile

voidsearch(intn){

if())

*functiontomodifyarecord

voidmodify_record(intn){

fstreamfile;

ios:

in|ios:

out);

obj,sizeof(obj))){

if()){

\nEnterthenewdetailsofstudent"

intpos=-1*sizeof(obj);

(pos,ios:

cur);

下列函数模板中定义正确的是().

A.template<

classT1,classT2>

T1fun仃1,T2){returnTl+T2;

B.templatevclassT>

Tfun(Ta){returnT+a;

C.template<

classT1,classT2>

Tlfun(T1,T2){returnT1+T2;

D.templatevclassT>

Tfun(Ta,Tb){returna+br;

}答案:

2.下列类模板中定义正确的是().

classT1,ciaasT2>

classA:

{

T1b;

intfun(inta){returnT1+T2;

B.template<

classA{

intT2;

T1fun(T2a){returna+T2;

claasA{

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1