《C语言程序设计教程第二版》习题答案文档格式.docx

上传人:b****4 文档编号:16686920 上传时间:2022-11-25 格式:DOCX 页数:18 大小:24.23KB
下载 相关 举报
《C语言程序设计教程第二版》习题答案文档格式.docx_第1页
第1页 / 共18页
《C语言程序设计教程第二版》习题答案文档格式.docx_第2页
第2页 / 共18页
《C语言程序设计教程第二版》习题答案文档格式.docx_第3页
第3页 / 共18页
《C语言程序设计教程第二版》习题答案文档格式.docx_第4页
第4页 / 共18页
《C语言程序设计教程第二版》习题答案文档格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

《C语言程序设计教程第二版》习题答案文档格式.docx

《《C语言程序设计教程第二版》习题答案文档格式.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计教程第二版》习题答案文档格式.docx(18页珍藏版)》请在冰豆网上搜索。

《C语言程序设计教程第二版》习题答案文档格式.docx

{inti;

for(i=0;

=19;

%8d"

fib(i));

fib(inti)

{return(i<

=1?

1:

fib(i-1)+fib(i-2));

11235813213455

891442333776109871597258441816765

4.源程序:

#include"

math.h"

;

{doublex,x0,deltax;

x=1.5;

do{x0=pow(x+1,1./3);

deltax=fabs(x0-x);

x=x0;

}while(deltax>

1e-12);

%.10f\n"

x);

1.3247179572

5.源程序略。

(分子、分母均构成斐波那契数列)

结果是32.66026079864

6.源程序:

{inta,b,c,m;

Pleaseinputa,bandc:

"

scanf("

%d%d%d"

&

a,&

b,&

c);

if(a<

b){m=a;

a=b;

b=m;

c){m=a;

a=c;

c=m;

if(b<

c){m=b;

b=c;

%d%d%d\n"

a,b,c);

123456789

789456123

7.源程序:

{inta;

%d"

a);

printf(a%21==0?

Yes"

:

No"

42

Yes 

3第2章C语言概述 

一、单项选择题(第34页)

1-4.BDCB5-8.AABC

二、填空题(第35页)

1.主2.C编译系统3.函数函数4.输入输出5.头6..OBJ7.库函数8.文本

三、应用题(第36页)

5.sizeof是关键字,stru、_aoto、file、m_i_n、hello、ABC、SIN90、x1234、until、cos2x、s_3是标识符。

8.源程序:

{inta,b,c;

%d%d"

b);

c=a;

1234

3412 

4第3章数据类型与运算规则 

一、单项选择题(第75页)

1-5.DBACC6-10.DBDBC11-15.ADCCC16-20.CBCCD21-25.ADDBC26-27.AB

二、填空题(第77页)

1.补码2.±

(10^-308~10^308)3.int(整数)4.单目自右相左5.函数调用6.a或b7.18.65,89

三、应用题(第78页)

1.109

2.执行结果:

11

0

12

5第4章顺序结构程序设计 

一、单项选择题(第90页)

1-5.DCDAD6-10.BACBB

二、填空题(第91页)

1.一;

2.5.1690003.

(1)-2002500

(2)I=-200,j=2500(3)i=-200

j=25004.a=98,b=765.000000,c=4321.0000005.略6.0,0,37.38.scanf("

%lf%lf%lf"

9.1313.000000,13.00000010.a=a^c;

c=c^a;

a=a^c;

(这种算法不破坏b的值,也不用定义中间变量。

三、编程题(第92页)

1.仿照教材第27页例2-1。

{inth,m;

%d:

h,&

m);

%d\n"

h*60+m);

9:

23

563

3.源程序:

{inta[]={-10,0,15,34},i;

=3;

%d\370C=%g\370F\t"

a[i],a[i]*1.8+32);

-10℃=14°

F0℃=32°

F15℃=59°

F34℃=93.2°

F

{doublepi=3.14159265358979,r=5;

r=%lgA=%.10lfS=%.10lf\n"

r,2*pi*r,pi*pi*r);

r=5A=31.4159265359S=49.3480220054

5.源程序:

{doublea,b,c;

if(a+b>

c&

a+c>

b&

b+c>

a)

{doubles=(a+b+c)/2;

SS=%.10lf\n"

sqrt(s*(s-a)*(s-b)*(s-c)));

elseprintf("

Dataerror!

456

SS=9.9215674165

{inta=3,b=4,c=5;

floatd=1.2,e=2.23,f=-43.56;

a=%3d,b=%-4d,c=**%d\nd=%g\ne=%6.2f\nf=%-10.4f**\n"

a,b,c,d,e,f);

m=a;

567

675

averageof%d,%dand%dis%.2f\n"

a,b,c,(a+b+c)/3.);

679

averageof6,7and9is7.33

9.不能。

修改后的源程序如下:

{inta,b,c,x,y;

x=a*b;

y=x*c;

a=%d,b=%d,c=%d\n"

x=%d,y=%d\n"

x,y);

6第5章选择结构程序设计 

一、单项选择题(第113页)

1-4.DCBB5-8.DABD

二、填空题(第115页)

1.非002.k==0

3.if(abs(x)>

4)printf("

error!

4.if((x>

=1&

x<

=10||x>

=200&

=210)&

x&

1)printf("

5.k=1(原题最后一行漏了个d,如果认为原题正确,则输出k=%。

6.8!

Right!

117.$$$a=08.a=2,b=1

三、编程题(第116页)

1.有错。

正确的程序如下:

%d,%d,%d"

min=%d\n"

a>

b?

b>

c?

c:

b:

a>

{unsignedlonga;

%ld"

for(;

a;

a%10),a/=10);

12345

54321

3.

(1)源程序:

{intx,y;

x);

if(x>

-5&

0)y=x;

=0&

5)y=x-1;

=5&

10)y=x+1;

y);

(2)源程序:

if(x<

10)if(x>

-5)if(x>

=0)if(x>

=5)y=x+1;

elsey=x-1;

elsey=x;

(3)源程序:

elseif(x>

=0)y=x-1;

-5)y=x;

(4)源程序:

switch(x/5)

{case-1:

if(x!

=-5)y=x;

break;

case0:

y=x-1;

case1:

y=x+1;

4.本题为了避免考虑每月的天数及闰年等问题,故采用面向对象的程序设计。

现给出Delphi源程序和C++Builder源程序。

Delphi源程序:

procedureTForm1.Button1Click(Sender:

TObject);

begin

edit3.Text:

=format('

%.0f天'

[strtodate(edit2.text)-strtodate(edit1.text)]);

end;

procedureTForm1.FormCreate(Sender:

Edit2.Text:

=datetostr(now);

button1click(form1)

C++Builder源程序:

void__fastcallTForm1:

Button1Click(TObject*Sender)

{

Edit3->

Text=IntToStr(StrToDate(Edit2->

Text)-StrToDate(Edit1->

Text))+"

天"

FormCreate(TObject*Sender)

Edit2->

Text=DateToStr(Now());

Button1Click(Form1);

(运行于Windows下)

{unsigneda,b,c;

请输入三个整数:

if(a&

a==b&

a==c)printf("

构成等边三角形\n"

elseif(a+b>

if(a==b||a==c||b==c)printf("

构成等腰三角形\n"

构成一般三角形\n"

不能构成三角形\n"

565

构成等腰三角形

20)y=1;

elseswitch(x/60)

{case0:

y=x/10;

default:

y=6;

{unsignedm;

floatn;

if(m<

100)n=0;

elseif(m>

600)n=0.06;

elsen=(m/100+0.5)/100;

%d%.2f%.2f\n"

m,m*(1-n),m*n);

450

450429.7520.25

8.2171天(起始日期和终止日期均算在内)

本题可利用第4小题编好的程序进行计算。

把起始日期和终止日期分别打入“生日”和“今日”栏内,单击“实足年龄”按钮,将所得到的天数再加上1天即可。

9.源程序:

{unsignedlongi;

i);

%ld%d\n"

i%10,(int)log10(i)+1);

99887

75

10.源程序:

unsignedj[10],m=0;

i;

){j[m++]=(i+2)%10;

i/=10;

m;

m--)i=i*10+j[m-1];

%ld\n"

i);

6987

8109

(注:

要加密的数值不能是0或以0开头。

如果要以0开头需用字符串而不能是整数。

) 

7第6章循环结构程序设计 

一、单项选择题(第142页)

1-4.BCCB5-8.CBCA

二、填空题(第143页)

1.原题可能有误。

如无误,是死循环2.原题有误。

如果把b=1后面的逗号改为分号,则结果是8。

3.204.115.2.4000006.*#*#*#$7.8528.①d=1.0②++k③k<

=n9.①x>

=0②x<

amin

三、编程题(第145页)

1.源程序:

{inti=1,sum=i;

while(i<

101){sum+=i=-i-2;

sum+=i=-i+2;

sum);

执行结果:

51

{doublep=0,n=0,f;

{scanf("

%lf"

f);

if(f>

0)p+=f;

elsen+=f;

%lf%lf%lf\n"

p,n,p+n);

3.源程序:

{unsigneda;

for(;

%d,"

\b\n"

23456

6,5,4,3,2

{unsignedlonga,b,c,i;

%ld%ld"

c=a%1000;

b;

i++)c=c*a%1000;

if(c<

100)printf("

0"

10)printf("

c);

12957

009

5.略

6.原题提供的计算e的公式有误(前面漏了一项1)。

正确的公式是e=1+1+1/2!

+1/3!

+…+1/n!

+…

(1)源程序:

{doublee=1,f=1;

intn;

for(n=1;

n<

n++){f/=n;

e+=f;

e=%.14lf\n"

e);

e=2.71828182845905

f>

1e-4;

e=%.4f\n"

e=2.7183

{unsignedlonga=0,b=1,c=0;

inti,d;

d);

for(i=1;

=(d+2)/3;

%10ld%10ld%10ld"

a,b,(a+=b+c,b+=c+a,c+=a+b));

本题还可以用递归算法(效率很低),源程序如下:

unsignedlongfun(inti)

{returni<

=3?

i:

fun(i-1)+fun(i-2)+fun(i-3);

{inti,d;

scanf("

=d;

%10ld"

fun(i));

15

123611203768

125230423778143126324841

for(i=1010;

=9876;

i+=2)

if(i/100%11&

i%100%11&

i/10%100%11&

i/1000!

=i%10&

=i/10%10&

i/100%10!

=i%10)printf("

%d"

102410261028103210341036…………98749876

applewatermelonpear\n"

=100;

if((k=100-i-j)*2==400-i*4-j*40)

%4d%7d%9d\n"

i,j,k);

applewatermelonpear

5590

24472

43354

62236

81118

stdio.h"

#defineN4/*N为阶数,可以改为其他正整数*/

{intm=N*2,i,j;

\n"

),i++)

putchar(N-abs(i-N)<

=abs(j++-N)?

'

'

*'

));

如果把N值改为5,则执行结果如下:

*

***

*****

*******

*********

作者:

宁西贯通 

2006-5-723:

41 回复此发言 

--------------------------------------------------------------------------------

8说明 

注意:

上面最后一题的输出结果应该是由星号组成的一个菱形,

9第7章数组 

一、单项选择题(第192页)

1-4.BBCC5-8.AABA

二、填空题(第194页)

1.1 

4

8

16

32

64

128

256

512

2.①a[age]++②i=18;

26 

3.①break②i==8

4.①a[i]>

b[j]②i<

3③j<

5.①b[j]=a[j][0]②b[j]<

a[j][k]6.a[k++]=a[j]

三、编程题(第196页)

1.源程序:

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

4;

for(j=0;

a[i][j]);

if(i==j||i+j==3)s+=a[i][j];

s);

}/*注:

5矩阵不能照此计算!

*/

12345678910111213141516

68

2.源程序:

{inti,a[36];

a[0]=2;

=29;

i++)a[i]=a[i-1]+2;

=35;

i++)a[i]=a[(i-30)*5+2];

i++)printf("

%d\t"

a[i]);

2468101214161820

22242628303234363840

42444648505254565860

61626364656

3.源程序:

stdlib.h"

time.h"

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

当前位置:首页 > 考试认证 > IT认证

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

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