C++程序设计课后习题答案.docx

上传人:b****8 文档编号:9534274 上传时间:2023-02-05 格式:DOCX 页数:30 大小:21.94KB
下载 相关 举报
C++程序设计课后习题答案.docx_第1页
第1页 / 共30页
C++程序设计课后习题答案.docx_第2页
第2页 / 共30页
C++程序设计课后习题答案.docx_第3页
第3页 / 共30页
C++程序设计课后习题答案.docx_第4页
第4页 / 共30页
C++程序设计课后习题答案.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

C++程序设计课后习题答案.docx

《C++程序设计课后习题答案.docx》由会员分享,可在线阅读,更多相关《C++程序设计课后习题答案.docx(30页珍藏版)》请在冰豆网上搜索。

C++程序设计课后习题答案.docx

C++程序设计课后习题答案

第1章C++语言简介

一、简答题

1.请介绍C++语言的发展过程

C++语言源于C语言,1972年,AT&T公司设计了C语言并得到广泛应用。

为了使得C语言能够支持面向对象技术,在20世纪80年代,Bell实验室设计了一门新的语言C++。

1985年起,C++语言开始进入商业应用阶段,并由此进入了高速发展时期,各种面向对象程序设计思想与技术逐步融入到C++语言之中。

在C++语言标准中,先后提供了对虚函数、重载、继承、模板和命名空间技术的支持。

现在的C++语言已经是一门完全独立的语言,而不再是对C语言的简单扩充。

2.试比较C++语言与Java语言的优缺点。

(1)安全性。

用Java语言编写的程序,其安全性要高于用C++语言编写的程序。

Java语言对语法做了更多的限制,添加了更多的数据检测内容,从而减少了程序出错的概率。

更重要的是,Java语句取消了指针数据类型,并且添加了内存自动回收功能,从而避免了系统内容出错的情况。

而这一切都是C++程序设计中极其容易出现错误的地方。

(2)效率。

虽然C++程序的安全性相对低于Java程序,但是,C++程序的运行效率确是Java程序难以企及的。

一方面,Java程序需要Java虚拟机对中间代码进行解释执行,而C++程序则是一次编译后可以立即执行;另一方面,在C++程序中,指针数据类型的使用可以大幅度提高程序运行效率和程序的灵活性,而这都是Java程序所不具备的。

二、程序设计题

创建一个简单C++程序,在屏幕上显示ThisisaC++program。

【步骤】

用户利用VC6.0开发工具,创建一个空的Win32控制台项目,在项目中添加一个空的cpp文件,添加如下代码。

#include

usingnamespacestd;

intmain(intargc,char**argv)

{

cout<<"ThisisaC++program."<

system("PAUSE");

return0;

}

第2章数据描述与基本运算

简答题

1.请指出下面标识符中,哪些是合法的变量名称。

abc,_3x,_b为合法变量名称,其他为非法。

2.请指出下面哪些是合法的常量取值。

23,3e-5,'\n',12.56E,"abc"为合法常量取值。

3.请给出下面表达式的取值。

(1)-3+4*5–6=11

(2)-3+4%5–6=-5

(3)-3*4%-6/5=0

(4)(7+6)%5/2=1

4.请完成下列表达式。

(1)sin30°-tan20°:

sin(30*3.14/180)–tan(20*3.14/180)

(2)232-:

pow(232,-sqrt(a*a+b*b))

5.求表达式值。

(1)1<4&&4>10=0;

(2)!

(5>=15)||(2<4-3)=true;

第3章C++语句

一、简答题

1.答:

语句是程序设计语言中的最小可执行单位,是构成程序的基础。

语句由表达式构成,与表达式相比较,语句需要有分号表示语句结束。

2.答:

C++语言与C语言有显著不同,首先,在语法格式上,C++除了兼容C语言语法外,还增加了很多新的表达方式,更重要的是,C++语言支持面向对象程序设计,涵盖了继承、封装与多态等重要内容,这是C语言中所不具备的。

3.(需要在程序中加入cmath头函数:

#include

(1)pow(1+x*y,6)

(2)a*sin(x+5)*sin(x+5)+b*cos(6*y-c);

(3)4*y*(1-pow(x,y))

(4)(4/y)/((5*x)/(7*y)-6/(5*z-8*x))

4.Continue与break都表示终止执行当前循环过程,continue语句要求重新回到循环开始处,重新判断循环条件,决定是否执行循环体;而break则要求退出循环,执行循环体后的语句。

5.typedefstruct_tmp

{

intage;

charsex;

}TMP;

TMPtmpInf[10];

二、程序设计题

1.参考代码

#include

#include

usingnamespacestd;

intmain(intargc,char**argv)

{

doubley=0.0;

intx=0;

cout<<"Pleaseinputx:

";

cin>>x;

if(x<-1)

y=-x+9;

elseif(x<0)

y=2*x+4.5;

elseif(x<1)

y=x*x+4*x-7;

else

y=3*sin(x)+12;

cout<<"y="<

}

2.参考代码

#include

#include

usingnamespacestd;

intmain(intargc,char**argv)

{

doublea=0.0;

doubleb=0.0;

doublec=0.0;

doublex=0.0;

doubledelta=0.0;

cout<<"Pleaseinputa:

";

cin>>a;

cout<<"Pleaseinputb:

";

cin>>b;

cout<<"Pleaseinputc:

";

cin>>c;

delta=sqrt(b*b-4*a*c);

if(delta<0)

cout<<"xisnorealnumber!

"<

elseif(delta==0)

cout<<"x="<<-b/(2*a)<

else

cout<<"x="<<(-b+delta)/(2*a)<<";"<<(-b-delta)/(2*a)<

return0;

}

3.参考代码

#include

#include

usingnamespacestd;

intfact(inta)

{

if(a==0||a==1)

return1;

else

returnfact(a-1)*a;

}

intmain(intargc,char**argv)

{

intx=0;

doubley=0.0;

doubletmp=0.0;

inti=0;

cout<<"Pleaseinputx:

";

cin>>x;

do

{

tmp=pow(x,i)/fact(i);

y=y+tmp;

i++;

}while(tmp>=pow(10,-8));

cout<<"e^"<

return0;

}

4.参考代码

#include

usingnamespacestd;

intleapyear(inta)

{

if((a%4==0&&a%100!

=0)||(a%400==0))

returna;

else

return-1;

}

intmain(intargc,char**argv)

{

intyear;

cout<<"Pleaseinputyear:

";

cin>>year;

if(leapyear(year)>0)

cout<

else

cout<

return0;

}

第4章数组与结构体

一、简答题

1.字符数组初始化通常两种形式,一是在定义时将其初始为空串,即赋值为{0};另外是使用memset函数,将字符数组设定为空或其他指定形式。

2.结构体与共用体有很多相似地方,但也有重要区别,主要是共用体在存储时使用覆盖技术,可以共用同一个存储空间,而结构体没有这个功能。

二、程序设计题

1.参考代码

#include

usingnamespacestd;

intmain(intargc,char**argv)

{

intscores[8]={0};

intmaxscore=0;

intminscore=0;

inttotalsocre=0;

doubleavgscore=0.0;

inti=0;

for(i=0;i<8;i++)

{

cout<<"PleaseinputNO."<

";

cin>>scores[i];

}

maxscore=scores[0];

minscore=scores[0];

totalsocre=scores[0];

for(i=1;i<8;i++)

{

if(scores[i]>maxscore)

maxscore=scores[i];

if(scores[i]

minscore=scores[i];

totalsocre=totalsocre+scores[i];

}

avgscore=(totalsocre-maxscore-minscore)/6.0;

cout<<"MaxScore:

"<

cout<<"MinScore:

"<

cout<<"AvgScore:

"<

return0;

}

2.参考代码

#include

usingnamespacestd;

typedefstruct_stuinf{

charname[16];

intsex;//0-man,1-woman

intage;

}STUINF;

intmain(intargc,char**argv)

{

STUINFstuInf[10]={0};

inti=0;

intages=0;

intmages=0;

intwages=0;

intmcount=0;

intwcount=0;

doubleavgages=0.0;

for(i=0;i<10;i++)

{

cout<<"PleaseinputNO."<

"<

cout<<"NAME:

";

cin>>stuInf[i].name;

cout<<"SEX(0-MAN;1-WOMAN):

";

cin>>stuInf[i].sex;

cout<<"AGE:

";

cin>>stuInf[i].age;

}

for(i=0;i<10;i++)

{

if(stuInf[i].sex==0)

{

mages+=stuInf[i].age;

mcount++;

}

else

{

wages+=stuInf[i].age;

wcount++;

}

}

ages=mages+wages;

cout<<"ManAvgAges:

"<

cout<<"WomanAvgAges:

"<

cout<<"AvgAges:

"<

return0;

}

第5章指针

一、简答题

1.运行结果:

3

23

123

2.运行结果:

a=5;b=-2;c=7

二、程序设计题

参考代码

#include

#include

usingnamespacestd;

voidgetStr(char*inStr,char*outStr,intinPos)

{

inti=0;

char*tmp=inStr;

while(*tmp!

='\0'&&i

{

tmp++;

i++;

}

i=0;

while(*tmp!

='\0')

{

*outStr=*tmp;

outStr++;

tmp++;

}

*outStr='\0';

}

intmain(intargc,char**argv)

{

charsrcStr[64]={0};

chardstStr[64]={0};

char*p=NULL;

intpos=0;

intstartpos=0;

inti=0;

fflush(stdin);

cout<<"PleaseinputSourceString:

";

cin.getline(srcStr,sizeof(srcStr));

cout<<"PleaseinputStartPosition:

";

cin>>startpos;

getStr(srcStr,dstStr,startpos);

cout<

return0;

}

第6章函数

一、选择题

CCAC

二、程序设计题

参考代码

#include

#defineARRCOUNT4

usingnamespacestd;

voidtest(int(&inArr)[ARRCOUNT])

{

inti=0;

intj=0;

inttmp=0;

for(i=0;i

{

for(j=0;j

{

if(inArr[j]

{

tmp=inArr[j];

inArr[j]=inArr[j+1];

inArr[j+1]=tmp;

}

}

}

}

intmain()

{

intarr[ARRCOUNT]={23,15,56,0};

test(arr);

inti=0;

for(i=0;i

cout<

}

第7章类与对象

一、选择题

DCDDC

二、程序设计题

参考代码

#include

usingnamespacestd;

classemployee

{

public:

employee();

~employee();

voidchangename(char*inStr);

voiddisplay();

protected:

charname[16];

charaddr[64];

charpostno[8];

};

employee:

:

employee()

{

memset(name,0,sizeof(name));

memset(addr,0,sizeof(addr));

memset(postno,0,sizeof(postno));

}

employee:

:

~employee()

{

memset(name,0,sizeof(name));

memset(addr,0,sizeof(addr));

memset(postno,0,sizeof(postno));

}

voidemployee:

:

changename(char*inStr)

{

memset(name,0,sizeof(name));

strcpy(name,inStr);

}

voidemployee:

:

display()

{

cout<<"Name:

"<

cout<<"Addr:

"<

cout<<"PostNO:

"<

}

intmain(intargc,char**argv)

{

employeeworker;

worker.display();

worker.changename("Tom");

worker.display();

return0;

}

第8章类的继承与派生

一、选择题

1~4CADB;5~8CDBA

二、程序设计题

1.参考代码

#include

usingnamespacestd;

classwehicle

{

public:

wehicle(intx,doubley);

~wehicle();

voidlistinf();

protected:

intwheels;

intweight;

};

wehicle:

:

wehicle(intx,doubley)

{

wheels=x;

weight=y;

}

wehicle:

:

~wehicle()

{

}

voidwehicle:

:

listinf()

{

cout<<"wheels:

"<

cout<<"weight:

"<

}

classcar:

publicwehicle

{

public:

car(intx,doubley,intz);

voidlistcar();

private:

intpassage_load;

};

car:

:

car(intx,doubley,intz):

wehicle(x,y)

{

passage_load=z;

}

voidcar:

:

listcar()

{

cout<<"carwheels:

"<

cout<<"carweight:

"<

cout<<"carpassages:

"<

}

intmain(intargc,char**argv)

{

wehiclewhc(4,5.0);

whc.listinf();

carmycar(4,5.0,4);

mycar.listcar();

return0;

}

2.参考声明如下

#include

usingnamespacestd;

classbuilding

{

protected:

intfloors;

introoms;

intareas;

};

classhouse:

publicbuilding

{

protected:

intbedrooms;

intbathrooms;

};

classoffice:

publicbuilding

{

intfireextings;

inttels;

};

3.参考代码

#include

usingnamespacestd;

classsofa

{

public:

sofa(){};

~sofa(){};

voidwatchTV();

};

voidsofa:

:

watchTV()

{

cout<<"YoucanwatchTV!

"<

}

classbed

{

public:

bed(){};

~bed(){};

voidsleep();

voidsetweight();

};

voidbed:

:

sleep()

{

cout<<"Youcansleep!

"<

}

voidbed:

:

setweight()

{

cout<<"Youcansetweight!

"<

}

 

classsofabed:

publicbed,publicsofa

{

public:

sofabed();

~sofabed(){};

voidfoldbed();

};

sofabed:

:

sofabed()

{

cout<<"Thisissofabed!

"<

}

voidsofabed:

:

foldbed()

{

cout<<"Youcanfoldbed!

"<

}

intmain()

{

sofabedthisbed;

thisbed.setweight();

thisbed.sleep();

thisbed.foldbed();

thisbed.watchTV();

return0;

}

第9章多态性与虚函数

一、选择题

CCCCC

二、程序设计题

1.参考代码

#include

usingnamespacestd;

classCSHARP//父类

{

publ

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

当前位置:首页 > 成人教育 > 自考

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

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