CC++程序设计教程 龚沛曾课后习题答案全集.docx

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

CC++程序设计教程 龚沛曾课后习题答案全集.docx

《CC++程序设计教程 龚沛曾课后习题答案全集.docx》由会员分享,可在线阅读,更多相关《CC++程序设计教程 龚沛曾课后习题答案全集.docx(30页珍藏版)》请在冰点文库上搜索。

CC++程序设计教程 龚沛曾课后习题答案全集.docx

CC++程序设计教程龚沛曾课后习题答案全集

习题一

一、

1、C2、A3、B4、C5、D6、A7、C8、B

二、

1、main

2、数字、下划线

3、字符串

4、#include、#define

5、hex

6、。

h

7、语法错误逻辑错误

8、Insert/RemoveBreakpoint

9、。

cpp

10、Fileview

三、略

********************************************************

习题二

一、

1、B2、C3、D4、C5、D6、C7、C8、B9、B10、B11、D

二、

1、x+y!

=a+b

2、pow((ln(10)+x*y),3)

3、sin(w*u)/(cos(45*3.14/180)+3*x*x)注:

对于函数cos,其要求的参数是弧度表示。

4、exp(3)+sqrt((2*x+3*y))

5、fabs(x—y)+(x+y)/(3*x)

6、1。

0/(1.0/r1+1。

0/r2+1.0/r3)

三、

1、a〉d&&b〈=d||a<=d&&b〉d(a和b中有且只有一个大于d)

2、z=(x>y?

x:

y)

3、x〈0&&y<0

4、x+y>z&&x+z〉y&&y+z>x

5、int(x*100+0.5)/100.0

6、d〉0&&d<=100&&d%2==0

7、x%5==0||y%5==0

8、n%k==0?

n/k:

n/k+1

四、

1、略

2、主要语句:

x%2==0?

cout〈<”偶数":

cout〈〈”基数";

3、主要语句:

cout〈

4、主要语句:

year%400==0||year%4==0&&year%100!

=0?

cout<〈"闰年":

cout<〈"非闰年”;

5、主要语句:

y=ln(x*x+3)/ln(10)+3.14/2*cos(40*3.14/180);

******************************

第三章

一、

1.C2。

D3。

D(该答案后还应附“其他值")4。

C

5。

B6。

C7。

A8。

C9.B

二、

(1)输入两个正整数给m和n.

(2)20

(3)s=288

(4)AB20ega5

(5)*

**

***

三、

(1)c==’)’

count==0

count>0

count

(2)cin>〉m>〉n

m=m-n

n=n-m

(3)n=m

n=n/5

m=m+5

四、

1、

#include”iostream.h"

#include"math。

h"

voidmain()

{floatx,y;

cout〈<"inputx:

"〈〈endl;

cin>>x;

if(x〈5)

y=fabs(x);

elseif(x〈20)

y=3*x*x-2*x+1;

else

y=x/5;

cout〈〈”x="<

2、

#include”iostream。

h"

voidmain()

{

floats,p,t,w;

cout<〈”inputs:

”<〈endl;

cin〉〉s;

switch(int(s)/1000)

{case0:

p=0;break;

case1:

p=0.05;break;

case2:

p=0.08;break;

case3:

case4:

p=0.1;break;

default:

p=0.15;break;

}

t=s*p;

w=s-t;

cout<<”纳税款=”<

3、

#include"iostream.h”

voidmain()

{intm,count=0;

for(m=100;m〈1000;m++)

{if(m%10+m/10%10+m/100==5)

count++;

cout<〈”count="<

4、

#include"iostream。

h”

voidmain()

{intm,n;

for(m=0;m〈=30;m++)

for(n=0;n<=30;n++)

if(m*2+n*4==90&&m+n==30)

cout〈〈”鸡:

”<

"<〈n〈〈endl;

}

5、

#include”iostream。

h"

voidmain()

{floate=1,t=1;

intn;

for(n=1;1/t>1e—6;n++)

{t=t*n;

e=e+1/t;

cout〈<"e=”〈〈e〈

}

6、

#include”iostream.h”

voidmain()

{intx,y;

for(x=1;x<=100;x++)

for(y=1;y<=100;y++)

if(x*x+2*x==y*y*y)

cout<〈"x=”<

7、

#include”iostream.h"

#include"stdio。

h”

voidmain()

{charch;

while((ch=getchar())!

='。

')

if(ch=='')

cout<〈endl;

else

cout〈

8、

#include”iostream.h"

#include"math.h”

voidmain()

{intm,k1,k2;

for(m=0;m<=1000;m++)

{k1=sqrt(m+100);

k2=sqrt(m+100+168);

if(k1*k1==m+100&&k2*k2==m+100+168)

cout〈

}

9、

二分法的步骤为等分区间[x1,x2]成[x1,x]和[x,x2],其中,若f(x)与f(x1)同号,则取[x,x2]作为新的区间,否则取[x1,x]作为新的区间,

依次类推,当新区间的长度或f(x)的绝对值小于eps时,x就作为所求的实根.

#include”iostream。

h"

#include”math。

h"

voidmain()

{floatx1=0,x2=10,x,y1,y2,y,eps=1e—6;

do{x=(x1+x2)/2;

y1=pow(x1,9)-4*pow(x1,5)-5*pow(x1,3)—270000;

y=pow(x,9)-4*pow(x,5)—5*pow(x,3)—270000;

if(y1*y>0)

x1=x;

else

x2=x;

}while(fabs(x2-x1)>eps);

cout〈〈x;

第四章

一、

1、C2、A、D3、A、B、C4、D5、C6、D7、A8、B

二、

1、678904321

2、144

3、m—n=14

三、

1、

#include"iomanip。

h"

{0,1}

x[i]=x[i—1]+x[i—2]

setw(5)〈

2、

rand()%100+1

j〈a[i]/2

”A(”<〈i<<")"

3、

b[m]=0

n

b[m]=b[m]/4

4、

gets(ch1)

gets(ch2)

*s1==*s2

r=0

5、

j=k=l=0

j〈M&&k〈N

c[l]=a[j]

c[l++]=b[k++]

k

j〈M

四、

1。

(1)

#include"stdlib。

h"

#include”iostream。

h”

voidmain()

{inta[4][4],b[4][4],c[4][4],i,j;

for(i=0;i〈4;i++)

for(j=0;j<4;j++)

a[i][j]=rand()%41+30;

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

for(j=0;j〈4;j++)

b[i][j]=rand()%35+101;

cout〈〈”矩阵A的内容如下:

\n”;

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

{for(j=0;j〈4;j++)

cout<

cout〈

cout〈〈"矩阵B的内容如下:

\n”;

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

{for(j=0;j〈4;j++)

cout<〈b[i][j]〈〈'’;

cout<〈endl;

}

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

for(j=0;j〈4;j++)

c[i][j]=a[i][j]+b[i][j];

cout<〈"矩阵C的内容如下:

\n”;

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

{for(j=0;j〈4;j++)

cout<

cout<〈endl;

}

(2)

#include"stdlib。

h"

#include”iostream.h”

voidmain()

{inta[4][4],t,i,j;

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

for(j=0;j〈4;j++)

a[i][j]=rand()%41+30;

cout〈〈"矩阵A的内容如下:

\n";

for(i=0;i〈4;i++)

{for(j=0;j〈4;j++)

cout<

cout〈〈endl;

}

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

for(j=0;j

{t=a[i][j];

a[i][j]=a[j][i];

a[j][i]=t;

}

cout<〈”转置后矩阵A的内容如下:

\n”;

for(i=0;i〈4;i++)

{for(j=0;j〈4;j++)

cout〈〈a[i][j]〈〈’’;

cout<

}

(3)

#include"stdlib。

h”

#include”iostream.h”

voidmain()

{inta[4][4],b[4][4],c[4][4],i,j,max,imax,jmax;

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

for(j=0;j〈4;j++)

a[i][j]=rand()%41+30;

for(i=0;i〈4;i++)

for(j=0;j〈4;j++)

b[i][j]=rand()%35+101;

cout<〈”矩阵A的内容如下:

\n";

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

{for(j=0;j〈4;j++)

cout<〈a[i][j]<〈'’;

cout〈

cout〈<"矩阵B的内容如下:

\n";

for(i=0;i〈4;i++)

{for(j=0;j<4;j++)

cout<〈b[i][j]<〈'’;

cout<〈endl;

}

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

for(j=0;j<4;j++)

c[i][j]=a[i][j]+b[i][j];

cout<<"矩阵C的内容如下:

\n";

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

{for(j=0;j〈4;j++)

cout〈〈c[i][j]<〈’’;

cout<〈endl;

max=c[0][0];

for(i=0;i〈4;i++)

for(j=0;j〈4;j++)

if(c[i][j]>max)

{max=c[i][j];

imax=i;

jmax=j;

cout<〈"max=c["<

}

(4)

#include”stdlib.h”

#include"iostream.h”

voidmain()

{inta[4][4],b[4][4],i,j;

for(i=0;i〈4;i++)

for(j=0;j<4;j++)

a[i][j]=rand()%41+30;

for(i=0;i〈4;i++)

for(j=0;j<4;j++)

b[i][j]=rand()%35+101;

cout<<"矩阵A的主对角线以下元素内容如下:

\n”;

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

{for(j=0;j〈=i;j++)

cout<

cout〈

cout<<”矩阵B的主对角线以上元素内容如下:

\n”;

for(i=0;i〈4;i++)

{for(j=i;j〈4;j++)

cout〈

cout〈

(5)

#include"stdlib。

h"

#include”iostream.h”

voidmain()

{inta[4][4],i,j;

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

for(j=0;j<4;j++)

a[i][j]=rand()%41+30;

cout<<"矩阵A的内容如下:

\n”;

for(i=0;i〈4;i++)

{for(j=0;j〈4;j++)

cout〈〈a[i][j]<<’';

cout〈〈endl;

}

for(j=0;j〈4;j++)

{intt=a[0][j];a[0][j]=a[2][j];a[2][j]=t;}

cout〈<”改变后矩阵A的内容如下:

\n”;

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

{for(j=0;j〈4;j++)

cout〈

cout<〈endl;

(6)

#include”stdlib.h"

#include”iostream.h”

voidmain()

{inta[4][4],i,j,s=0;

for(i=0;i〈4;i++)

for(j=0;j<4;j++)

a[i][j]=rand()%41+30;

cout<<"矩阵A的内容如下:

\n”;

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

{for(j=0;j<4;j++)

cout〈

cout<〈endl;

for(i=0;i〈4;i++)

for(j=0;j〈4;j++)

if(i==j||i+j==3)

s=s+a[i][j];

cout<〈"对角线元素之和为:

"<〈s〈

第五章习题

一、选择题

1。

下列叙述错误的是____A_____。

(A)主函数中定义的变量在整个程序中都是有效的。

(B)复合语句中定义的变量只在该复合语句中有效。

(C)其它函数中定义的变量在主函数中不能使用.

(D)形式参数是局部变量。

2.若函数的形参为一维数组,则下列说法中错误的是__B、C_______.

(A)形参数组可以不指定大小。

(B)调用函数时的对应实参必须是数组名.

(C)调用函数时,系统会为形参数组分配存储单元.

(D)函数中对形参的修改将会影响实参值。

3。

若函数的类型和return语句中的表达式的类型不一致,则____D_____。

(A)编译时出错。

(B)运行时出现不确定结果。

(C)不会出错,且返回值的类型以return语句中表达式的类型为准。

(D)不会出错,且返回值的类型以函数类型为准.

4.在函数调用语句f(g(x,y),z=x+y,(x,y));中,实参的个数是____A_____。

(A)3(B)4(C)5(D)7

5.以下关于定义重载函数的要求中,错误的是_____D_____。

(A)要求参数个数不同。

(B)要求至少有一个参数类型不同。

(C)要求参数个数相同时,参数类型不同。

(D)要求函数的返回值不同。

6.下面的函数定义正确的是_____D____。

(A)floatf(floatx;floaty)(B)floatf(floatx,y)

{returnx*y;}{returnx*y;}

(C)floatf(x,y)(D)floatf(intx,inty)

{intx,y;{returnx*y;}

returnx*y;}

7。

下面函数头的定义格式正确的是____C_____。

(A)voidsort(inta[n],intn)(B)voidsort(inta[][],intn)

(C)voidsort(inta[],intn)(D)voidsort(inta[],n)

8。

以下几种模板函数的定义错误的是____C_____。

(A)template

Tfun1(Ta,intb)

{……}

(C)template〈classT>

voidfun1(inta,intb)

{Ti;……}

9.下面4个程序中输出结果是125的有____C_____个。

(1)。

#include”iostream.h”

voidcube(intx)

{x=x*x*x;}

voidmain()

intx=5;cube(x);

cout〈〈x;

(3)。

#include”iostream。

h"

intcube(intx)

{x=x*x*x;return(x);}

voidmain()

intx=cube(5);//将x改为5

cout〈〈x;

}

(A)1(B)2(C)3(D)4

10.下面函数说明正确的是____C_____。

(A)voidf1(inta=3,intb,intc);

(B)voidf2inta,intb=3,intc);

(C)voidf3(inta,intb,intc=3);

(D)voidf4(inta,intb,int3);

11。

设函数m()的说明形式为voidm(int,int*);利用函数m()对数5和整数j作函数m()定义的计算,正确的调用形式为_____C_____。

(A)m(&5,&j)(B)m(5,j)(C)m(5,&j)(D)m(&5,j)

12。

设函数的说明为:

intfun(inta[],int&x);则下面调用该函数正确的是____B_____.

(A)fun(a,n);(B)x=fun(a,n);

(C)fun(a[10],n);(D)x=fun(a[],n);

二、写运行结果

1、

2、

3、

4、

5、

6、

三.程序填空

1。

【程序说明】

分段函数为

【程序段】

floaty(floatx)

{if(x〈=0)

return(x*x—x+1);

elsereturnx*x*x+x+3;

2.【程序说明】

函数backmove()是把字符指针x所指长度为n的字符串后移动m个位置,移出的字符移到串首.m、n为非负整数.如“abcdefghij”,后移动3个位置,成“hijabcdefg”。

【程序段】

voidbackmove(char*x,intn,intm)

inti,j;charw;

for(j=0;j〈m;j++)

{w=*(x+n-1);

for(i=0;i

*x=w;

}

3。

【程序说明】

函数index()为查找字符串sub是否是字符串st的子串。

若是,返回sub在st中首次出现的下标,否则返回-1。

字符串sub和st非空.如sub:

”cd",st:

"abcdefcd”,返回2。

【程序】

#include“iostream。

h”

#include

h>

voidmain()

{chars1[80],s2[80];

intindex(char[],char[]);

gets(s1);gets(s2);

if(index(s1,s2))

cout〈<”子串在字符串中首次出现的下标:

"〈〈index(s1,s2);

else

cout<<”找不到”;

intindex(charst[],charsub[])

{inti,j,k;

for(i=0;st[i]!

=’\0’;i++)

{for(j=i,k=0;sub[k]!

=’\0’&&st[j]==sub[k];k++,j++);

if(sub[k]=='\0')return(i);

return(0);

}

4。

【程序说明】

函数root为用二分法求方程f(x)=0在[x1,x2]的实根,精度为eps。

二分法求根的基本思想为f(x)在区间[a,b]上连续,f(a)与f(b)异号,区间中点c=(a+b)/2的f(c)符号和f(a)符号确定c代替a或b,使根所在区间每次减半,直到|a—b|

下面程序为求方程在[1,7]区间的实根,精度取10—6。

【程序】

#include“math。

h”

#include

h〉

doubleroot(doublex1,doublex2,doubleeps=1e-6)

{doublef(doublex);

doublex,y,y1;

y1=f(x1);

do{x=0.5*(x1+x2);

y=f(x);

if(y1*y>0。

0)x1=x;

elseif(y1*y<0。

0)x2=x;

}while(fabs(y)〉=eps&&fabs(x2-x1)>=eps);

return(x);

doublef(doublex)

{returnx*x*x—5*x*x+16*x—80;}

voidmain()

{cout〈

5。

【程序说明】下面程序的功能是求出二维数组中最大的元素所在的行号和列号.

【程序】

#defineSIZE13

#defineSIZE24

#include“iostream.h"

floatmax_value(floatx[][SIZE2],int&ii,i

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

当前位置:首页 > 教学研究 > 教学案例设计

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

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