C语言课后答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

习题11.1各列举几种你所知道的计算机硬件和软件。硬件:CPU、内存、硬盘、光盘、键盘、鼠标等软件:Windows、QQ、InternetExplorer、Word等1.2冯·诺依曼机模型有哪几个基本组成部分?运算器、存储器、输入和输出。1.3尝试把例1-4改为计算“123+456”。#includestdio.hmain(){printf(%d\n,123+456);}1.4列举几种你知道的程序设计语言。C、C++、Java、C#、php、asp、Pascal等1.5举几个在生活和学习中,IT技术被成功应用的例子。可编程的微波炉、洗衣机,手机,文曲星,电子游戏机等。习题2答案2.1合法的为:t3_var2.2选择填空(1)C(2)B(3)A(4)B(5)D(6)D(7)D(8)CB2.3(1)sqrt(a*a+b*b)/(2*c)或sqrt(pow(a,2)+pow(b,2))/(2*c)(2)fabs((a+b)*(c+d)+2)(3)(log(x)+sin(y))/2(注:y应为弧度)例:若y值为30°,sin(y)应写成sin(3.14/180*30),不能直接写成sin(30)(4)2*3.1415*r或#definePI3.1415表达式写为:2*PI*r(5)1/(1+1.0/x)(6)(sin(3.14/180*30)+2*exp(x))/(2*y+pow(y,x))习题3答案3.1答案:表达式语句,函数调用语句,控制语句,空语句和复合语句。3.2答案:(1)C(2)D3.3答案:(1)错误:在scanf函数中,参数应是a,b两个变量的地址。改正:scanf(%d,%d,&a,&b);(2)错误:数据输出格式与数据类型不匹配。改正:printf(%f,f);(3)错误:数据输入格式与数据类型不匹配。改正:scanf(%lf%ld,&var,&a);(4)错误:在scanf函数中的输入格式控制串中多了’\n’,a,b前面少了’&’。改正:scanf(%d,%d,&a,&b);(5)错误:%f的输入格式不应有精度控制。改正:scanf(%5f,&f);(6)错误:程序输入错误使得变量a,b的值不是6,2。改正:应输入a=6,b=2↙3.4答案:(1)aabbccabc(2)011(3)68(4)3.500000(5)129139(6)129139(7)-1,65535,177777,ffff(8)123.400002,1.234000e+002,123.43.5已知三角形的三边长a,b,c,计算求三角形面积的公式为:s=)(21cba,area=))()((csbsass要求编写程序,从键盘输入a,b,c的值,计算并输出三角形的面积area。参考答案:因为1/2在C语言中的值为0,整个表达式为0,s值始终是0,所以结果是错误的。程序如下:#includestdio.h#includemath.hmain(){floata,b,c;/*a,b,c为三边变量*/floats,area;printf(Inputa,b,c:);scanf(%f,%f,%f,&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf(area=%.2f\n,area);}程序运行结果:Inputa,b,c:3,4,5↙area=6.003.6编程从键盘输入圆的半径r,计算并输出圆的周长和面积。程序参考答案:#includestdio.h#definePI3.14main(){floatr;/*r为半径变量*/floatcircum,area;printf(Inputr:);scanf(%f,&r);circum=2*PI*r;area=PI*r*r,printf(circum=%.2f,area=%.2f\n,circum,area);}程序运行结果:Inputr:5↙circum=31.40,area=78.50习题四4.1简答题:⑴所谓算法,就是一个有穷规则的集合,其中的规则确定了一个解决某一特定类型问题的运算序列。简单的说,就是为解决一个具体问题而采取的确定的有限的操作步骤,当然这里我们所说的算法仅指计算机算法,即计算机能执行的算法。每个程序都要依靠算法和数据结构,在某些特殊领域,例如计算机图形学、数据结构、语法分析、数值分析、人工智能和模拟仿真等等,解决问题的能力几乎完全依赖于最新的算法和数据结构。因此,针对某一应用领域,要想开发出高质高效的程序,除了要熟练掌握程序设计语言这种工具和必要的程序设计方法以外,更重要的是要多了解、多积累并逐渐学会自己设计一些好的算法。⑵结构化程序设计是一种进行程序设计的原则和方法,按照这种原则和方法设计出的程序的特点是:结构清晰,容易阅读,容易修改,容易验证。结构化程序设计的基本思想归纳起来有以下几点:采用顺序、选择和循环三种基本结构作为程序设计的基本单元,避免无限制地使用goto语句而使流程任意转向。三种基本结构应具有如下良好特性:①只有一个入口。②只有一个出口。③无死语句,即不存在永远都执行不到的语句。④无死循环,即不存在永远都执行不完的循环。程序设计采用“自顶向下、逐步求精”和模块化的方法。⑶自顶向下(Top-down)方法是先写出结构简单清晰的主程序来表达整个问题,在此问题中包含复杂的子问题用子程序来实现,若子问题中还包含复杂的子问题,再用另外一个子程序来解决,直到每一细节都可以用高级语言清楚表达为止。逐步求精技术可以理解为是一种不断地自底向上的修正所补充的自顶向下的程序设计方法。选择题⑴C⑵C⑶D⑷B⑸D⑹A4.2写出下列程序的运行结果。⑴over!⑵right⑶right⑷right?⑸abcdefg$abcdefgEnd!abcdefgEnd!⑹************************4.3阅读程序,按要求,在空白处填写适当的表达式或语句,使程序完整,并符合题目要求。⑴①(year%4==0&&year%100!=0)||(year%400==0)②flag⑵①(ch='a'&&ch='z')||(ch='A'&&ch='Z')②ch='9'&&ch='0'③ch==''⑶①fahr②celsius=5.0/9*(fahr-20)③fahr=fahr+step4.5编程判断输入整数的正负性和奇偶性。流程图如图4-1。#includestdio.hmain(){intm;scanf(%d,&m);/*输入一个整数*/if(m=0)/*是否为正数*/{if(m%2==0)/*是正数,且能被2整除,是正偶数*/{printf(%disapositiveeven\n,m);}else/*不能被2整除,是正奇数*/{printf(%disapositiveodd\n,m);}}/*if(m=0)结束*/else{if(m%2==0){printf(%disanegativeeven\n,m);/*是负偶数*/}else{printf(%disanegativeodd\n,m);/*是负奇数*/}}}程序运行结果如下:第一次运行:6↙6isapositiveeven第二次运行:-7↙6isanegativeodd4.6编程计算分段函数:1xxeye000xxx,输入x,打印出y值。流程图如图4-2。#includestdio.h#includemath.hmain(){intx;doubley;scanf(%d,&x);/*输入一个整数*/if(x0){y=exp(-x);/*如果大于0,计算y=exp(-x)的值*/}elseif(x==0){y=1;/*x=0,则y=1*/}else{y=-exp(x);/*x0,则y=-exp(x)*/`}printf(y=%f\n,y);}程序运行结果如下:第一次运行:4↙y=0.018316第二次运行:0↙y=1.000000第三次运行:-4↙y=-0.0183164.7输入三角形的三条边a,b,c,判断它们能否构成三角形,若能则指出是何种三角形:等腰三角形、直角三角形、一般三角形。流程图如图4-3。#includestdio.h#includemath.h#defineLIMIT1e-1main(){floata,b,c;intflag=1;scanf(%f,%f,%f,&a,&b,&c);/*输入三角形的三条边*/if((a+b)c&&((b+c)a)&&((a+c)b))/*三角形的基本条件*/{if(fabs(a-b)=LIMIT||fabs(b-c)=LIMIT||fabs(c-a)=LIMIT)/*等腰三角形的条件*/{printf(等腰);flag=0;}if(fabs(a*a+b*b-c*c)=LIMIT||fabs(a*a+c*c-b*b)=LIMIT||fabs(c*c+b*b-a*a)=LIMIT)/*直角三角形的条件*/{printf(直角);flag=0;}if(flag){printf(一般);}printf(三角形\n);}else{printf(不是三角形\n);}}程序运行结果如下:第一次运行:3,4,5↙直角三角形第二次运行:4,4,5↙等腰三角形第三次运行:10,10,14.14↙等腰直角三角形第四次运行:3,4,9↙不是三角形4.8在屏幕上显示一张如下所示的时间表:*****Time*****1morning2afternoon3nightPleaseenteryourchoice:操作人员根据提示进行选择,程序根据输入的时间序号显示相应的问候信息,选择1时显示Goodmorning,选择2时显示Goodafternoon,选择3时显示Goodnight,对于其它选择显示Selectionerror!,用switch语句编程实现。算法思想:使用printf函数输出一个简单的菜单语句,通过switch语句进行选择。需要注意的问题是:输入选项是字符型的,所以在case后的数字要加单引号。#includestdio.hmain(){charc;printf(*****Time*****\n);printf(1morning\n);printf(2afternoon\n);printf(3night\n);printf(pleaseenteryourchoice);/*建立相应的菜单*/c=getchar();/*输入选项*/switch(c)/*通过switch选择*/{case'1':printf(Goodmorning\n);break;case'2':printf(Goodafternoon\n);break;case'3':printf(Goodnight\n);break;default:printf(Selectionerror!\n);}}程序运行结果如下:第一次运行:*****Time*****1morning2afternoon3nightPleaseenteryourchoice:1↙Goodmoning第二次运行:*****Time*****1morning2afternoon3nightPleaseenteryourchoice:3↙Goodnight4.9读入一个年份和月份,打印出该月有多少天(考虑闰年),用switch语句编程。#includestdio.hmain(){intyear,month;scanf(%d,%d,&year,&month);/*输入相应的年和月*/switch(month){case1:case3:case5:case7:case8:case10:case12:printf(31days\n);break;case2:if((year%4==0&&year%100!=0)||(year%400==0)){printf(29days\n);/*闰年的2月有29天*

1 / 33
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功