C程序设计4谭浩强完整版课后习题答案.docx

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

C程序设计4谭浩强完整版课后习题答案.docx

《C程序设计4谭浩强完整版课后习题答案.docx》由会员分享,可在线阅读,更多相关《C程序设计4谭浩强完整版课后习题答案.docx(108页珍藏版)》请在冰点文库上搜索。

C程序设计4谭浩强完整版课后习题答案.docx

C程序设计4谭浩强完整版课后习题答案

 

C程序设计(第四版)(谭浩强)第一章课后习题答案

P006向屏幕输出文字.

■I・U■■■■■■・1■■■IMIHI■■■■■■■■■I■I■■■■■■・I■I■[■■■■■I

#inelude<>代码均调试成功,若有失误大多不是代码问题.自已找找

intmain()

{

printf("Welcometo\n");

return0;}

P008求两个数的和

■Il・I■■■■■■■I■I■«■■!

!

■■■I■11!

■[■■■■■II■■■■:

■■■■■I■

#inelude<>

intmain()

{

inta,b,sum;

a=5;

b=4;

sum=a+b;

printf("Thesumis%d.\n",sum);return0;

}

P008调用函数比较两个数的大小

■I■IIMil■・■1■I■■II■IMMMI■I・■1■I

#inelude<>

intmain()

{

printf("Themaxis%d.\n"

e);

intmax(intx,inty);inta,b,e;seanf("%d,%d",&a,&b);e=max(a,b);

return0;

}

intmax(intx,inty){

intz;if(x>y)

z=x;

else

z=y;

return(z);}

P015

三个数的大小.(数字0表示课后练习题)

#inelude<>intmain()

{

inta,b,c,d;intmax(intx,inty,intz);printf("Pleaseinput3

numbers:

\n");

scanf("%d%d%d",&a,&b,&c);

d=max(a,b,c);printf(intmax(intx,inty,{

intm;

if(x>y&&x>z)

if(y>x&&y>z)

m=y;

if(z>y&&z>x)

m=z;

"Themaxis:

%d.\n"

intz)

m=x;

d);}

return(m);}

C程序设计(第四版)(谭浩强)第2章课

后习题答案

算法程序的灵魂

P017计算机1-5相乘的积.

■I■・IIMlMI■IM■IM■H■IMI■・t・

#include<>

int

main()

{

inti,s=1;

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

{

s=s*i;

n",s);

return0;

}

#include<>int

main()

{

inti,s=1;

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

可以是i=i+2

{

if(i%2!

=0)s=s*i;

else

continue;}

printf("Thesumis%d.\n",s);

return0;

}

P019按要求输出80分以上的学生信息.

■lllHIHIlMIIHIHnHIHIH«■■■:

!

■■■丨・1]・1■:

■■■[■■I■■■■!

!

■I■■■■■■■■]■1BII■■■■■■■I■I■[■■■■■I■I■M■■■!

■■■■I

暂时没法做.

P019判断2000-250(年中的闰年,并输出.

■■■■■・■・■■・■・nm■■・■n■■■■■■■■■■u・■・■■^bi・■■a■■n・■■am■■■■■■■■■・■■■■・■■■u■

年的概念是地球围绕太阳一周的时间(所谓公转周期)称为一年,这个周期是相当稳定的,很长时间也不会变动1秒,但是真正的一年是天(目前)。

所以,如果每年定义为365天的话,1年就会多出天,4年就会多出天,非常接近1天,这样闰年就出现了,也就是每4年要有1年设置为366天,来抵消这多出的1天。

规则为:

•)如果年份能被4整除,则该年计为闰年;可是,假如不做调整的话,当400年的时候,累计才多出天,接近于多出97天,闰年的设置却多出来100天,所以要在400年内,再撤销3个闰年。

怎么撤销呢就有了下面这个规则:

2)如果年份能被100整除,则不计为闰年;问题又来了,400年里有4个100年吧,去掉后四个100年后,又少了一个,所以再加一个规则就是:

3)如果年份能被400

整除,则计为闰年。

简单说来每400年里设置了97个闰年,也就是400里的前3个100年不设置闰年,误差被调整到400年仅有天。

#inelude<>

intmain()

{

inti;

for(i=2000;i<=2200;i++)

{

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

=0)||i%400==0)printf("%disaleap

year!

\n",i);

else

printf("%disnotaleapyear!

\n",i);

}

}

P020求⑴-(1/2)+(1/3)……+(1/99)-(1/100的值.

#inelude<>

intmain()

{

floatsign=1,sum=0,deno,term;for(deno=1;deno<=100;deno++)

{

term=sign*(1/deno);sum=sum+term;sign=(-1)*sign;}

printf("Thesumofdeno(指定值)is%f.\n",sum);

return0;

intmain()

#inelude

<>

 

 

inti,num,n;

if(num%i==O)n=1;break;

n=0;}

if(n==0){

);

printf("Pleaseinputanumber:

\n"

{

}

printf("Itisdoaprimenumber!

");}

else

{

printf("Itisnotaprimenumber!

");

}

return0;

要求用N-S图表示上列算法

■ii■I■i■■■■■■■[■■i■■■■■■■■■!

■11

还要伪代码

P036调换二个参数的值

■I■!

!

■[■■■■■■■[I■I■■■■■■*!

■ll・I■■!

■■■■■I■I■■■■■■■

#include<>

intmain()

{

chara='a',b='b',c;

c=a;

a=b;

b=c;

printf("anowis%c,bnowis%c!

\n",a,b);

return0;

}

P036输入1(个数,并输出最大的那一个数

■I■I■[■■■!

■■■■I■I■[■■■■■■■I■I■■:

■i■■■■■■■■■■■miMaMiMiHia[■!

■■■■■■■■

#include<>

intmain()

{

inti,a[10],s=0;

printf("Pleaseinput10numbers:

\n");

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

{

seanf("%d",&a[i]);

}

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

{

if(s

}

printf("%disthebiggestnumber!

\n",s);

return0;

}

P036

■ii■・■・

按大小顺序输出一些数.

 

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

}

{

{

printf("%d-",a[i]);

#inelude<>

intmain()

{

inti,j,a[4],s=0;

printf("Pleaseinput5numbers:

\n"

{

seanf("%d",&a[i]);

for(i=0;i<=3;i++){

for(j=i+1;j<=4;j++)if(a[i]>a[j])

s=a[i];

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

}

}

}

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

return0;

P036求1至100勺总合.

■1■I■■■■■■■■:

■[■■■[■■■■■■■■■I■I■I■I■■■■■!

■■I■[■■■"■I■1■■

#inelude<>

intmain()

{

inti,sum=0;for(i=0;i<101;i++)

sum=sum+i;

printf("Thesumofonetoonehundredis%d!

\n",sum);

return0;

P036判断一个数能否同时被3和5整除.

■II■・■m・^・■・■it■m■■■■Mtam■・■»■・^b・・・■■■■■■ti・・^B・^・・・■■■n■・^:

・^・・・■・■■・■・hib■・^b・・i・■

#inelude<>

intmain()

{

intn;

printf("Pleaseinputanumber:

\n");

seanf("%d",&n);

);

if(n%3==0&&n%5==0)printf("Canbedevideby3and5!

\n"

else

printf("Cannotbedevideby3and5!

\n");

return0;

}

P036输出100-200可的素数.

miimi■■mii■i■:

■・■・■n・ii■・

#include<>#include<>qrt是求根,属数学函数.

intmain(){

inti;

for(i=100;i<=200;i++)if(prime_number(i)==1)

printf("%d",i);

return0;

}

intprime_number(doublem){

intj,k;

k=(int)sqrt(m);for(j=2;j<=k;j++)

{

if(m%j==0)

return0;}

return1;

}

#inelude<>

#inelude<>

intmain()

{

inti;

for(i=100;i<=200;i++){

if(prime(i)==1)printf("%distheprimenumber!

\n"

}

return0;

}

intprime(intj){

intm,n;

m=(int)sqrt(j);

for(n=2;n<=m;n++)

{

if(j%n==0)

return0;}

return1;

}

请仿照来写.

P036最大公约数和最小公倍数

■ll・I■!

!

■I■【■■■■■I■ll・I■■■■■■■KBI■■■■■■■!

!

■■■■■■MaMaHiHmi■■■■■■■I

#inelude

<>main()

int

int

m,n,e,d;

ged();intlem();

scanf("%d%d",&m,&n);e=ged(m,n);

returny;}

intx,inty)

temp=x;

int

lem(

{

y=x%y;

printf("Pleaseinputtwonumber:

\n"

x=temp;

于号降序,大于号升序.

);

for

x=y;y=temp;

returnx*i;

(i=1;i<=y;i++)if(!

((x*i)%y))}

最简单的C程序设计一一顺序程序设计

P037

■II■・■・

把华氏温度转化为摄氏表示法

 

#inelude<>

floatF_to_C(floatinput_fah){

return

floatoutput_een;output_cen=9)*(input_fah-32);

output_een;}

floatC_to_F(floatinput_een)

{

floatoutput_fah;

intmain()

{

intchoice;

floatinput_fah,input_cen,output_fah,output_cen;printf("F_to_Cpress<1>

andC_to_Fpress<2>!

\n");

scanf("%d",&choice);

if(choice==1)

{

printf("Pleaseinputfahrenheit:

");

scanf("%f",&input_fah);output_cen=F_to_C(input_fah);

printf("The华氏is%d,摄氏is%d.",(int)input_fah,(int)output_cen);

}

if(choice==2)

{

printf("Pleaseinputcentigrade:

");

scanf("%f",&input_cen);

output_fah=C_to_F(input_cen);

printf("TheCentigradeis%d,andtheFahrenheit

is%d.",(int)input_cen,(int)output_fah);

}

return0;

}

P038计算存款利息(关于精度问题)

#include<>intmain()

{

floatp0=1000,r1=,r2=,r3=,p1,p2,p3;

p1=p0*(1+r1);

p2=p0*(1+r2);

p3=p0*(1+r3/2)*(1+r3/2);

printf("p1=%f\np2=%f\np3=%f\n",p1,p2,p3);

return0;

}

P055大写转换成小写

■I■I■I■■■■■■■I■I■【■■■■■■・I■I■[■■■Ml■皿I■■■■■■■■■I■[■■■■■■I■

#include<>

intmain()6个字母.

{

charc1,c2;

c1='A';

c2=c1+32;

printf("%c%d",c2,c2);return0;

}

P059给出三角形边长,算出面积.

■I■I■■■■■■■I■I■IIMIHIMI■■■I■■■■■■■■■«■【■"■■■I■II■I■■■■■■■■]■I■■■■■■■I■I■IMIHHI

#include<>

#include<>

intmain()

{

doublea=,b=,c=,s,area;s=(a+b+c)/2;

return0;

area=sqrt(s*(s_a)*(s_b)*(s_c));

printf("areais%f\n",area);}

P065求一无二次等式的根,默认两个不同根

■II■・■m・^・■・■ti■n■■■■Mtn^am■■■■・^Bn・・■■■・■■■r・■・■■^・■bi^b・■・t・u■■■^bii

#include<>

#include<>

intmain()

{

doublea,b,c,disc,x1,x2,p,q;

scanf("%lf%lf%lf",&a,&b,&c);

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

p=-b/*a);

q=sqrt(disc)/*a);

x1=p+q;

x2=p-q;

printf("x1=%\nx2=%",x1,x2);

return0;

}

P071用%ft出实数,只能得到六位小数

■ii・I■■■■■■■I■i■■i■■■■■■■■・i■■■i■■■■■■■■■i■■■■・・^■i■i■■■■

#include<>

#include<>

intmain()

{

doublea=;以是float.

printf("%.9f\n",a/3);

return0;

P072floa型数据的有效位数

■I■・I■IMIMI■I■II■II■・■・■・■II■I■

#inelude<>

#inelude<>

intmain()

{

floata;33252,float精度6位,所以第七位后不可信a=10000/;

printf("%f\n",a);

return0;

}

P078使用puteha函数输出

■I■■■■■■■I■I■[■■■WI■I!

■IKIHIMI■■■I■■■■■■■I■IHI■■■■11■I■■■IMBHII

#inelude<>

#inelude<>

intmain()

{

ehara=B,b='O',e='Y';

putehar(a);

putehar(b);

putehar(e);

putehar('\n');

putehar(101);putehar(66);

return0;

}

P079

使用geteh得到字符.

■■■■■■I■II■IMIHIHI■«■I■■■■■■・II■ll・[l

#inelude<>

#inelude<>

intmain()

{

ehara,b,e;a=getehar();b=getehar();e=getehar();

putehar(a);putehar(b);

putchar(c);return0;

}

putchar('\n');

 

P081getcha得到大写,putcha输出小写.

#include<>

#include<>

intmain()

{

chara,b;

a=getchar();

b=a+32;

putchar(b);

putchar('\n');

return0;

}

P082国民生产总值1(年后的增长倍数

■Il・I■I■■■■■■■I■I■I【■■■■■II■■■■■■■■■M・■M・I■■■■■■■■!

■I■■■■■■!

■I■I■・II■■■■■

#include<>

#include<>

intmain()

{

printf("Pis%lfwhen10yearslater.\n"

p);

doublep,r=,n=10;p=pow((1+r),n);

return0;}

P082求各种存款的利息数

miimi■■mii■i■:

i

 

#include<>

#include<>

intmain()

{

doublep,r,n;p=1000*(1+5*;printf("5yearsis%lf!

\n"

p=(1000*(1+2*);

p=(p*(1+3*);

printf("5yearsis%lf!

\n"

p=(p*(1+2*);

printf("5yearsis%lf!

\n"

p=1000*pow((1+,5);

printf("5yearsis%lf!

\n"

p);f输岀的是double型.

p);p=(1000*(1+3*);

p);明,是一样的.

p);p=1000*pow((1+4),4*5);

printf("5yearsis%lf!

\n",p);#include<>

#inelude<>

intmain()

{

doublem尸,d=300000,p=6000;

m=(log10(p/(p-d*r)))/(log10(1+r));

printf("%.1lf‘,m);lf.

return0;

}

P084字母密码转换,调用函数及临界处理.

■I・u■i■■ii・i■■!

■■■■■iibi■■■■■■■I■i■■■■■■■■・i■■■i■■■■■■■■■i■■■■■■■■■mi■■■■—i■i■■■■■■

#include<>

charprintcode(charf)

{

if(((int)f>86&&(int)f<91)||((int)f>118&&(int)f<123))

{

return(f-26+4);}

else

{

return(f+4);

}

}

intmain()

{

chara,b,c,d,e;

printf("Pleaseinput:

\n");

a=getchar();

b=getchar();

c=getchar();

d=getchar();

e=getchar();

printf("%c%c%c%c%(;printcode(a),printcode(b),printcode(c),printcode(d),printc

ode(e));

putchar(putcharcode(a));

putchar(putcharcode(b));

putchar(putcharcode(c));

putchar(putcharcode(d));

putchar(putcharcode(e));

return0;lf来实现,因为没有

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

当前位置:首页 > 总结汇报 > 学习总结

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

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