c++程序设计课后练习答案Word文档格式.docx

上传人:b****3 文档编号:7063316 上传时间:2023-05-07 格式:DOCX 页数:72 大小:32.60KB
下载 相关 举报
c++程序设计课后练习答案Word文档格式.docx_第1页
第1页 / 共72页
c++程序设计课后练习答案Word文档格式.docx_第2页
第2页 / 共72页
c++程序设计课后练习答案Word文档格式.docx_第3页
第3页 / 共72页
c++程序设计课后练习答案Word文档格式.docx_第4页
第4页 / 共72页
c++程序设计课后练习答案Word文档格式.docx_第5页
第5页 / 共72页
c++程序设计课后练习答案Word文档格式.docx_第6页
第6页 / 共72页
c++程序设计课后练习答案Word文档格式.docx_第7页
第7页 / 共72页
c++程序设计课后练习答案Word文档格式.docx_第8页
第8页 / 共72页
c++程序设计课后练习答案Word文档格式.docx_第9页
第9页 / 共72页
c++程序设计课后练习答案Word文档格式.docx_第10页
第10页 / 共72页
c++程序设计课后练习答案Word文档格式.docx_第11页
第11页 / 共72页
c++程序设计课后练习答案Word文档格式.docx_第12页
第12页 / 共72页
c++程序设计课后练习答案Word文档格式.docx_第13页
第13页 / 共72页
c++程序设计课后练习答案Word文档格式.docx_第14页
第14页 / 共72页
c++程序设计课后练习答案Word文档格式.docx_第15页
第15页 / 共72页
c++程序设计课后练习答案Word文档格式.docx_第16页
第16页 / 共72页
c++程序设计课后练习答案Word文档格式.docx_第17页
第17页 / 共72页
c++程序设计课后练习答案Word文档格式.docx_第18页
第18页 / 共72页
c++程序设计课后练习答案Word文档格式.docx_第19页
第19页 / 共72页
c++程序设计课后练习答案Word文档格式.docx_第20页
第20页 / 共72页
亲,该文档总共72页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c++程序设计课后练习答案Word文档格式.docx

《c++程序设计课后练习答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《c++程序设计课后练习答案Word文档格式.docx(72页珍藏版)》请在冰点文库上搜索。

c++程序设计课后练习答案Word文档格式.docx

p=newint[100];

for(inti=0;

i<

100;

i++)

{

*(p+i)=i;

}

for(i=0;

cout<

*(p+i)<

deletep;

3.编写完整的程序,它读入15个float值,用指针把它们存放在一个存储快里,然后输出这些值和以及最小值。

algorithm>

//用于数组排列的头文件

float*p;

p=newfloat[15];

输入15个float类型的值:

<

15;

i++)

cin>

>

*(p+i);

15;

sort(p,p+15);

\n最小的是:

*(p)<

4.声明如下数组:

inta[]={1,2,3,4,5,6,7,8};

先查找4的位置,讲数组a复制给数组b,然后将数组a的内容反转,再查找4的位置,最后分别输出数组a和b的内容。

iostream>

algorithm>

functional>

inta[]={1,2,3,4,5,6,7,8},b[8];

数组a中‘4’的位置是:

find(a,a+8,4)<

//查找4的位置

copy(a,a+8,b);

//将数组a复制给数组b

reverse_copy(b,b+8,a);

//把数组b,逆向复制给a,完成a的逆转

数组a反转后,‘4’的位置是:

//在查找4的位置

数字a的内容:

for(inti=0;

i<

8;

a[i]<

"

\n数组b中的内容:

for(i=0;

b[i]<

第二章

一、单项选择

1.D;

2.D;

三、编程题

1.使用多种方法编写将两个字符串连接在一起的程序。

string>

//使用string类定义字符串,完成字符串连接

stringstr1("

C++"

),str2("

程序设计"

);

stringstr3;

str3=str1+str2;

//连接方式1

str3<

//使用char数组定义字符串,完成连接

charc1[]={"

c++"

},c2[]={"

program"

};

charc3[20];

inti=0,k=0;

20;

i++)//初始化c3

c3[i]='

\0'

i=0;

while(c1[i]!

='

c3[k]=c1[i];

i++;

k++;

while(c2[i]!

c3[k]=c2[i];

c3<

2.已知一个string的对象str的内容为“Wearehere!

”,使用多种方法输出“h”。

functional>

Wearehere!

str1[7]<

//通过数组

stringstr2=str1.substr(7,1);

//通过得到子字符串

str2<

char*p=find(str1.begin(),str1.end(),'

h'

//通过find函数

if(p)

*p<

第三章

一、填空题

1.函数原型声明;

2.inline

3.对象、对象指针、引用

4.函数func返回引用

5.int*fun(char,int&

二、单项选择题

1.A;

2.C;

3.C;

1.y=x*x-T;

错误,T是类型,不是变量,不能参加运算;

2.y没有类型,并且x的类型和template中的不一样。

iostream.h>

template<

classType>

Typemax(Typex,Typey)

return(x>

y)?

(x):

(y);

}

3.函数change的参数定义成了常量,只能使用参数,而无权修改他。

voidchange(string&

s)

s=s+"

pig!

1.编写一个求方程ax2+bx+c=0的根的程序,用3个函数分别求当b2-4ac大于零、等于零、和小于零时的方程的根。

要求从主函数输入a,b,c的值并输出结果。

math.h>

voidequation_1(inta,intb,intc)

doublex1,x2,temp;

temp=b*b-4*a*c;

x1=(-b+sqrt(temp))/(2*a*1.0);

x2=(-b-sqrt(temp))/(2*a*1.0);

两个不相等的实根"

x1="

x1<

x2="

x2<

voidequation_2(inta,intb,intc)

x2=x1;

两个相等的实根"

voidequation_3(inta,intb,intc)

doubletemp,real1,real2,image1,image2;

temp=-(b*b-4*a*c);

real1=-b/(2*a*1.0);

real2=real1;

image1=sqrt(temp);

image2=-image1;

两个虚根"

real1<

+"

image1<

j"

x2="

real2<

image2<

inta,b,c;

doubletemp;

输入a,b,c的值"

cin>

a>

b>

c;

方程为:

a<

x*x+"

b<

x+"

c<

=0"

if(temp>

0)

equation_1(a,b,c);

if(temp==0)

equation_2(a,b,c);

if(temp<

equation_3(a,b,c);

2.定义函数up(ch),如字符变量ch是小写字母就转换成大写字母并通过up返回,否则字符ch不改变。

要求在短小而完全的程序中显示这个程序是怎样被调用的。

charup(charc)

if(c>

=97&

&

c<

=122)

return(c-32);

else

returnc;

inti;

charc[15]={'

'

v'

e'

t'

E'

T'

%'

'

4'

Y'

i'

@'

9'

^'

for(i=0;

i<

up(c[i])<

"

3.编写主程序条用带实数r和整数n两个参数的函数并输出r的n次幂。

doublepower(doublea,intb)

doubleresult=1.0;

b;

result=result*a;

returnresult;

doubler;

intn;

r="

r;

n="

n;

r<

的"

n<

次幂是:

power(r,n)<

4.编写有字符型参数C和整形参数N的函数,让他们显示出由字符C组成的三角形。

其方式为第1行有1个字符C,第2行有2个字符C,等等。

voidprint_triangle(charc,intn)

inti,j;

i<

n;

for(j=0;

j<

=i;

j++)

{

cout<

c;

}

print_triangle('

a'

10);

5.编写一个ieqiu字符串长度的函数,strlen(),再用strlen()函数编写一个函数revers(s)的倒序递归程序,使字符串s逆序。

intstrlen(char*str)

intlen=0;

while(str[len]!

='

len++;

returnlen;

voidrevers(char*b)

charc;

intj,len;

len=strlen(b);

j=len/2-1;

while(j>

=0)

{

c=*(b+j);

*(b+j)=*(b+len-j-1);

*(b+len-j-1)=c;

j--;

b[len]='

charstr[]={"

1234567890"

str<

----的长度:

strlen(str)<

//倒序前

revers(str);

//

//倒序后

6.用函数模板实现3个数值中按最小值到最大值排序的程序。

template

voidsort(Ta,Tb,Tc)

Tarray[3],temp;

inti,j;

array[0]=a;

array[1]=b;

array[2]=c;

3;

j<

2;

j++)

if(array[j]>

array[j+1])

{

temp=array[j];

array[j]=array[j+1];

array[j+1]=temp;

}

array[0]<

array[1]<

array[2]<

sort(5,1,9);

7.利用函数模板设计一个求数组元素中和的函数,并检验之。

classT>

Tsum(Ta[],intn)

Ts=0;

s=s+a[i];

returns;

voidmain()

inta[5]={1,2,3,4,5};

ints=sum(a,5);

s<

8.重载上题中的函数模板,使他能够进行两个数组的求和。

Tsum(Ta[],intn)

template//重载上面的模板

Tsum(Ta[],intn,Tb[],intm)

returnsum(a,n)+sum(b,m);

intb[10]={1,2,3,4,5,6,7,8,9,10};

ints1=sum(a,5);

ints2=sum(b,10);

ints3=sum(a,5,b,10);

s1<

s2<

s3<

第四章

一、填空题

1.数据成员、成员函数;

2.类、析构函数不允许有参数和返回类型(可是显示地说明参数为void)、一个类有1个析构函数;

3.fun:

:

fun(fun&

)、fun:

fun(constfun&

1.C。

2.C。

3.没又答案,应该是A:

~A(void)、或A:

~A()。

4.B。

5.C。

6.C。

7.D

1.returnm;

---错误,没又定义变量m;

2.A.init(24,56);

---错误,没有声明对象A,init函数参数不对应;

Setx函数是int型但是没有返回值

四、完成程序题

1.

classbase

private:

//私有数据成员

inta,b;

public:

voidinit(intx,inty)//公有函数

a=x;

b=y;

voidprint()

cout<

2*"

-"

="

(2*a-b)<

basea;

a.init(68,55);

a.print();

2.

#include

classPoint

intm,n;

Point(int,int);

//整型变量,为参数的构造函数

Point(Point&

//复制构造函数的原型

print()

m="

m<

n="

Point:

Point(inta,intb)

m=a;

n=b;

Point(Point&

t)//复制构造函数的定义

m=t.m;

n=t.n;

Pointa(10,89);

Pointb(a);

b.print();

五、程序分析题

1.没有结果,因为没有main函数

如果加main函数

baseb(10,20);

输出:

初始化...10,20

Destory...10,20

55

六、编程题

1.设计一个点类Point,再设计一个矩形类,矩形类使用Point类的两个坐标点作为矩形的对角顶点。

并可以输出4个坐标值和面积。

使用测试程序验证程序。

classPoint//点类

private:

intx,y;

//私有成员变量,坐标

Point()//无参数的构造方法,对xy初始化

x=0;

y=0;

Point(inta,intb)//又参数的构造方法,对xy赋值

x=a;

y=b;

voidsetXY(inta,intb)//设置坐标的函数

intgetX()//得到x的方法

returnx;

intgetY()//得到有的函数

returny;

classRectangle//矩形类

Pointpoint1,point2,point3,point4;

//私有成员变量,4个点的对象

Rectangle();

//类Point的无参构造函数已经对每个对象做初始化啦,这里不用对每个点多初始化了

Rectangle(Pointone,Pointtwo)//用点对象做初始化的,构造函数,1和4为对角顶点

point1=one;

point4=two;

init();

Rectangle(intx1,inty1,intx2,inty2)//用两对坐标做初始化,构造函数,1和4为对角顶点

point1.setXY(x1,y1);

point4.setXY(x2,y2);

voidinit()//给另外两个点做初始化的函数

point2.setXY(point4.getX(),point1.getY());

point3.setXY(point1.getX(),point4.getY());

voidprintPoint()//打印四个点的函数

A:

("

point1.getX()<

point1.getY()<

)"

B:

point2.getX()<

point2.getY()<

C:

point3.getX()<

point3.getY()<

D:

point4.getX()<

point4.getY()<

intgetArea()//计算面积的函数

intheight,width,area;

height=point1.getY()-point3.getY();

width

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2