您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言程序设计教程课后习题答案
1【C语言】《C语言程序设计教程(第二版)》习题答案说明1.本文所指的《C语言程序设计教程(第二版)》是李凤霞主编、北京理工大学出版社出版的,绿皮。2第1章程序设计基础知识一、单项选择题(第23页)1-4.CBBC5-8.DACA二、填空题(第24页)1.判断条件2.面向过程编程3.结构化4.程序5.面向对象的程序设计语言6.基本功能操作和控制结构7.有穷性8.直到型循环9.算法10.可读性11.模块化12.对问题的分析和模块的划分三、应用题(第24页)2.源程序:main(){inti,j,k;/*i:公鸡数,j:母鸡数,k:小鸡数的1/3*/printf(cockhenchick\n);for(i=1;i=20;i++)for(j=1;j=33;j++)for(k=1;k=33;k++)if(i+j+k*3==100&&i*5+j*3+k==100)printf(%d%d%d\n,i,j,k*3);}执行结果:cockhenchick4187881181124843.现计算斐波那契数列的前20项。递推法源程序:main(){longa,b;inti;a=b=1;for(i=1;i=10;i++)/*要计算前30项,把10改为15。*/{printf(%8ld%8ld,a,b);a=a+b;b=b+a;}}递归法源程序:main(){inti;for(i=0;i=19;i++)printf(%8d,fib(i));}fib(inti){return(i=1?1:fib(i-1)+fib(i-2));}执行结果:112358132134558914423337761098715972584418167654.源程序:#includemath.h;main(){doublex,x0,deltax;x=1.5;do{x0=pow(x+1,1./3);deltax=fabs(x0-x);x=x0;}while(deltax1e-12);printf(%.10f\n,x);}执行结果:1.32471795725.源程序略。(分子、分母均构成斐波那契数列)结果是32.660260798646.源程序:main(){inta,b,c,m;printf(Pleaseinputa,bandc:);scanf(%d%d%d,&a,&b,&c);if(ab){m=a;a=b;b=m;}if(ac){m=a;a=c;c=m;}if(bc){m=b;b=c;c=m;}printf(%d%d%d\n,a,b,c);}执行结果:Pleaseinputa,bandc:1234567897894561237.源程序:main(){inta;scanf(%d,&a);printf(a%21==0?Yes:No);}执行结果:42Yes3第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.源程序:main(){inta,b,c;scanf(%d%d,&a,&b);c=a;a=b;b=c;printf(%d%d,a,b);}执行结果:123434124第3章数据类型与运算规则一、单项选择题(第75页)1-5.DBACC6-10.DBDBC11-15.ADCCC16-20.CBCCD21-23.ADD24.DA25-26.DA二、填空题(第71页)1.补码2.±(10^-308~10^308)3.int(整数)4.单目自右相左5.函数调用6.a或b7.18.65,89三、应用题(第78页)1.1092.执行结果:110012365第4章顺序结构程序设计一、单项选择题(第90页)1-5.DCDAD6-10.BACBB二、填空题(第91页)1.一;2.5.1690003.(1)-2002500(2)I=-200,j=2500(3)i=-200j=25004.a=98,b=765.000000,c=4321.0000005.略6.0,0,37.38.scanf(%lf%lf%lf,&a,&b,&c);9.1313.000000,13.00000010.a=a^c;c=c^a;a=a^c;(这种算法不破坏b的值,也不用定义中间变量。)三、编程题(第92页)1.仿照教材第27页例2-1。2.源程序:main(){inth,m;scanf(%d:%d,&h,&m);printf(%d\n,h*60+m);}执行结果:9:235633.源程序:main(){inta[]={-10,0,15,34},i;for(i=0;i=3;i++)printf(%d\370C=%g\370F\t,a[i],a[i]*1.8+32);}执行结果:-10℃=14°F0℃=32°F15℃=59°F34℃=93.2°F4.源程序:main(){doublepi=3.14159265358979,r=5;printf(r=%lgA=%.10lfS=%.10lf\n,r,2*pi*r,pi*pi*r);}执行结果:r=5A=31.4159265359S=49.34802200545.源程序:#includemath.h;main(){doublea,b,c;scanf(%lf%lf%lf,&a,&b,&c);if(a+bc&&a+cb&&b+ca){doubles=(a+b+c)/2;printf(SS=%.10lf\n,sqrt(s*(s-a)*(s-b)*(s-c)));}elseprintf(Dataerror!);}执行结果:456SS=9.92156741656.源程序:main(){inta=3,b=4,c=5;floatd=1.2,e=2.23,f=-43.56;printf(a=%3d,b=%-4d,c=**%d\nd=%g\ne=%6.2f\nf=%-10.4f**\n,a,b,c,d,e,f);}7.源程序:main(){inta,b,c,m;scanf(%d%d%d,&a,&b,&c);m=a;a=b;b=c;c=m;printf(%d%d%d\n,a,b,c);}执行结果:5676758.源程序:main(){inta,b,c;scanf(%d%d%d,&a,&b,&c);printf(averageof%d,%dand%dis%.2f\n,a,b,c,(a+b+c)/3.);执行结果:679averageof6,7and9is7.339.不能。修改后的源程序如下:main(){inta,b,c,x,y;scanf(%d%d%d,&a,&b,&c);x=a*b;y=x*c;printf(a=%d,b=%d,c=%d\n,a,b,c);printf(x=%d,y=%d\n,x,y);}6第5章选择结构程序设计一、单项选择题(第113页)1-4.DCBB5-8.DABD二、填空题(第115页)1.非002.k==03.if(abs(x)4)printf(%d,x);elseprintf(error!);4.if((x=1&&x=10||x=200&&x=210)&&x&1)printf(%d,x);5.k=1(原题最后一行漏了个d,如果认为原题正确,则输出k=%。)6.8!Right!117.$$$a=08.a=2,b=1三、编程题(第116页)1.有错。正确的程序如下:main(){inta,b,c;scanf(%d,%d,%d,&a,&b,&c);printf(min=%d\n,ab?bc?c:b:ac?c:a);}2.源程序:main(){unsignedlonga;scanf(%ld,&a);for(;a;printf(%d,a%10),a/=10);}执行结果:12345543213.(1)源程序:main(){intx,y;scanf(%d,&x);if(x-5&&x0)y=x;if(x=0&&x5)y=x-1;if(x=5&&x10)y=x+1;printf(%d\n,y);}(2)源程序:main(){intx,y;scanf(%d,&x);if(x10)if(x-5)if(x=0)if(x=5)y=x+1;elsey=x-1;elsey=x;printf(%d\n,y);}(3)源程序:main(){intx,y;scanf(%d,&x);if(x10)if(x=5)y=x+1;elseif(x=0)y=x-1;elseif(x-5)y=x;printf(%d\n,y);}(4)源程序:main(){intx,y;scanf(%d,&x);switch(x/5){case-1:if(x!=-5)y=x;break;case0:y=x-1;break;case1:y=x+1;}printf(%d\n,y);}4.本题为了避免考虑每月的天数及闰年等问题,故采用面向对象的程序设计。现给出Delphi源程序和C++Builder源程序。Delphi源程序:procedureTForm1.Button1Click(Sender:TObject);beginedit3.Text:=format('%.0f天',[strtodate(edit2.text)-strtodate(edit1.text)]);end;procedureTForm1.FormCreate(Sender:TObject);beginEdit2.Text:=datetostr(now);button1click(form1)end;C++Builder源程序:void__fastcallTForm1::Button1Click(TObject*Sender){Edit3-Text=IntToStr(StrToDate(Edit2-Text)-StrToDate(Edit1-Text))+天;}void__fastcallTForm1::FormCreate(TObject*Sender){Edit2-Text=DateToStr(Now());Button1Click(Form1);}执行结果:(运行于Windows下)源程序:main(){unsigneda,b,c;printf(请输入三个整数:);scanf(%d%d%d,&a,&b,&c);if(a&&b&&c&&a==b&&a==c)printf(构成等边三角形\n);elseif(a+bc&&a+cb&&b+ca)if(a==b||a==c||b==c)printf(构成等腰三角形\n);elseprintf(构成一般三角形\n);elseprintf(不能构成三角形\n);}执行结果:请输入三个整数:565构成等腰三角形6.源程序:main(){intx,y;scanf(%d,&x);if(x20)y=1;elseswitch(x/60){case0:y=x/10;break;default:y=6;}printf(x=%d,y=%d\n,x,y);}7.源程序:main(){unsignedm;floatn;scanf(%d,&m);if(m100)n=0;elseif(m600)n=0.06;elsen=(m/100+0.5)/100;printf(%d%.2f%.2f\n,m,m*(1-n),m*n);}执行结果:450450429.7520.258.2171天(起始日期和终止日期均算在内)本题可利用第4小题编好的程序进行计算。把起始日期和终止日期分别打入“生日”和“今日”栏内,单击“实足年龄”按钮,将所得到的天数再加上
本文标题:C语言程序设计教程课后习题答案
链接地址:https://www.777doc.com/doc-2908243 .html