版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、习题3参考解答1. 什么是算法?常用描述算法的工具有哪些?解:所谓算法,就是计算机解决某一个问题的具体方法和步骤。常用描述算法的工具 有流程图、N-S图。2. 试用流程图表示求 3个数中的最大数的算法。解:流程图如图1-1所示。3. 什么是结构化程序设计?它的主要内容是什么?解:结构化程序设计(structured programming )是进行以模块功能和处理过程设计为主的详细设计的基本原则。它的主要观点是采用自顶向下、逐步求精的程序设计方法;使用3种基本控制结构构造。种基本控制结构构造程序,任何程序都可由顺序、选择、循环这4. 从键盘输入3个整数,按照从小到大的顺序输出。解:#in cl
2、ude<stdio.h>int mai n()int a,b,c,te mp;scan f("%d,%d,%d",&a,&b, &c);if(a>b)te mp=a;a=b;b=te mp; if(a>c)te mp=a;a=c;c=te mp; if(b>c)te mp=b;b=c;c=te mp; prin tf("%d,%d,%dn",a,b,c);return 0;程序运行情况如下:12,8,29/8,12,295.输入一个华氏温度要求输出摄氏温度 C。公式为55(F 32)要求要有文字说明,
3、取两位小数。解:#in clude<stdio.h>int mai n()float f,c;printf("请输入一个华氏温度:n");scan f("%f", &f);c=5*(f-32)/9;prin tf("%.2fn",c);return 0;程序运行情况如下:请输入一个华氏温度:36/2.226.输入一个三位整数,要求输出它的百位数、十位数和个位数。解:#in clude<stdio.h>int mai n()int num;/* num表示一个三位整数*/int a,b,c;/* a,b,
4、c分别表示百位、十位和个位上的数字*/scan f("%d", &nu m);a=nu m/100;b=( nu m-a*100)/10;c=n um-a*100-b*10;prin tf("%d,%d,%dn",a,b,c);return 0;程序运行情况如下:123/1,2,37小红有面值1分的硬币638枚,可以兑换成几元几角剩余几分?说明:100枚1分的硬币可以兑换成 1元,10枚1分的硬币可以兑换成 1角。兑换原则是面额从大到小。解:#in clude<stdio.h>int mai n()int a=638;int yua
5、n;int jiao;int fen,temp;yua n=a/100;temp=a%100;jiao=te mp/10;fen=te mp %10;prin tf("1元的数量:%drr,yua n);prin tf("1角的数量:prin tf("1分的数量:return 0;程序运行结果如下:1元的数量:%dn "jiao);%dn ”,fe n);1角的数量:1分的数量:&设圆柱的半径为2.5,圆柱的高为4,求圆柱的体积。用 scanf函数输入数据,printf函数输出计算结果,输出时要求有文字说明,取两位小数。解:#in clude&l
6、t;stdio.h>#defi ne PI 3.1415926int mai n()float r,h,v;prin tf(" PI ease input r,h:");scan f("%f,%f", &r,&h);v=P l*r*r*h;printf("半径为:%.2f,高为:%.2f的圆柱体体积为:%.2fn",r,h,v);return 0;程序运行情况如下:Please input r,h:2.5,4/半径为:2.50,高为:4.00的圆柱体体积为:78.549.输入三角形的三边,计算三角形的面积。要求:
7、对输入的3个边长进行判断,如果能构成三角形,则计算三角形的面积;否则,则显示“构不成三角形!”信息。解:#in clude<stdio.h>#in clude<math.h>int mai n()int a,b,c;float s,area;scan f("%d,%d,%d",&a, &b, &c);if(a+b>c && a+c>b &&b+c>a)s=(float)(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);printf(” 面积为:%.
8、2fn",area);elseprintf(”边长分别为%d、d、%d的三边构不成三角形!n ",a,b,c);return 0;程序运行情况如下:3,4,6 /面积为:5.333,6,12 /边长分别为3、6、12的三边构不成三角形!10 .设计一个C语言程序,求5个数中的最大数和最小数。解:#in clude<stdio.h>int mai n()int a,b,c,d,e,max,mi n;scan f("%d%d%d%d%d", &a,& b,&c,&d,& e);max= min=a;if(b
9、>max) max=b;if(b< min) min=b;if(c>max) max=c;if(c< min) min=c;if(d>max) max=d;if(d<mi n) mi n=d;if(e>max) max=e;if(e< min) min=e;prin tf("max:%d,mi n: %dn",max,mi n);return 0;程序运行情况如下:max:9,mi n:211.判断输入的字符属于哪一类字符:大写字母、小写字母、数字还是其他字符。解:#in clude<stdio.h>int mai
10、 n()char ch;scan f("%c",&ch);if(ch>=48 &&ch<=57)printf("该字符为数字!");else if(ch>=65&&ch<=91)printf("该字符为大写字母!");else if(ch>=97&&ch<=122)printf("该字符为小写字母!");elseprintf("该字符为其他字符!");return 0;程序运行情况如下:2/该字符为数字!
11、12.用if语句和switch语句分别编写程序,实现以下功能:从键盘输入数字1,2,3,4,分别显示Excellent,Good,Pass, Fail。输入其他字符时显示Error。解:/*用if语句编写程序*/#in clude<stdio.h>int mai n()char ch;sca nf("%c", &ch);if(ch='1')prin tf("Excelle nt'n");else if (ch=2)prin tf("Goodn");else if (ch=3)prin tf(
12、" Pass' n");else if (ch='4')prin tf("Failn");elseprin tf("Error n");return 0;程序运行情况如下:1/Excelle nt/*用switch语句编写程序*/#in clude<stdio.h>int mai n()char ch;scan f("%c",&ch);switch(ch)case '1': prin tf("Excelle ntn");break;ca
13、se 2:prin tf("Goodn");break;case 3: prin tf(" Passn");break;case '4': prin tf("Failn");break;default: prin tf("Error n");程序运行情况如下:1/Excelle nt13 假设国家对个人收入所得税是按这样的标准进行的:起征点是2 000元,2 0003 000元为5%, 3 0005 000元为15%,5 00010 000元为20%,10 000元以上为30%。编程输入工资,计算实
14、际工资所得及税金。解:#in clude<stdio.h>int mai n()in t gz;float sj;scan f("%d",& gz);if(gz<2000)printf(”不需要纳税!n");return ;else if(gz<3000)sj=gz*0.05;else if(gz<5000)sj=gz*0.15;else if(gz<10000)sj=gz*0.2;elsesj=gz*0.3;printf("工资为:%d,税金为:%.2fn",gz,sj);return 0;程序运行
15、情况如下:不需要纳税!2800 /工资为:2800,税金为:140.004500 /1500 /工资为:4500,税金为:675.008500 /工资为:8500,税金为:1700.0020000 /工资为:20000,税金为:6000.0014.求方程ax2+bx+c=0的根。说明:当b2-4ac>0时,有两个不等的实根;当 b2-4ac=0时,有两个相等的实根;当 b2-4ac<0 时,有两个虚根。解:#in clude<stdio.h>#in clude<math.h>int mai n()int a,b,c;double delt,x1,x2;sca
16、n f("%d%d%d",&a,&b,&c);delt=b*b-4*a*c;if (delt=0)printf("该方程有两个相等的实根!");x1=x2=-(double)b/(2*a);prin tf("%.2f,%.2frr,x1,x2);elseif(delt>=0)x1=(-b+sqrt(delt)/(2*a);x2=(-b-sqrt(delt)/(2*a);prin tf("%.2f,%.2fn",x1,x2);elseprintf("该方程无实根!n");程序运
17、行情况如下:该方程无实根!-0.50,-1.00该方程有两个相等的实根!-0.50,-0.5015.从1100中找出能被5或7整除的数。解:#in clude<stdio.h> int mai n()int i;for(i=1;i<=100;i+)if(i%5=0|i%7=0)prin tf("%5d",i);return 0;程序运行结果如下:557101415555660 63 65202125 2830 3540 4245 49507075778084 8590919598100 16.计算 sum=1 + 11 + 111+1111 + 11111
18、。解:#in clude<stdio.h>int mai n()int i,t=O,s=O;for(i=1;i<=5;i+)t=t*10+1;prin tf("%dn",t);s=s+t;prin tf("%d",s);return 0;程序运行结果如下:111111111111111234517.输入两个正整数 m和n,求出它们的最大公约数和最小公倍数。解:#in clude<stdio.h> int mai n()int m,n ,t,gcd,gcm;int a,b;scan f("%d%d",&am
19、p;m,&n);t=m% n;a=m;b=n;while(t!=0)m=n;n=t;t=m% n;gcd=n;gcm=a*b/gcd;printf("%d和%d的最大公约数为:%d,最小公倍数为:dn",a,b,gcd,gcm);return 0;程序运行情况如下:25 15 /25和15的最大公约数为:5,最小公倍数为:7518.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。解:#in clude<stdio.h> int mai n()char ch;int m=0;int k=0;int n=0;int t=0;ch=getch
20、ar();while(ch!='n')k+;else if(ch>=48&& ch<=57)n+;if(ch=32)else if(ch>=65&& ch<=90|ch>=97&& ch<=122)m+;elset+; ch=getchar();410224694printf("字母的个数为:%dn",m);printf(”空格的个数为:%dn",k);printf("数字的个数为:%dn", n);printf("其他字符的个数为:%
21、dn ”,t);return 0;程序运行情况如下:123abcdefghyyyy; ;11166#%/字母的个数为:12空格的个数为:数字的个数为:其他字符的个数为:1119 .从键盘输入10个学生的成绩,试统计出他们的成绩总和及平均值。解:#in clude<stdio.h>int mai n()float cj,sum=0,aver;int i;for(i=1;i<=10;i+)scan f("%f", &cj);sum=sum+cj;aver=sum/10;prin tf("sum=%.2f,aver=%.2f",sum
22、,aver);return 0;程序运行情况如下:68 75 74 56 78 75 81 76 75 85/sum=743.00,aver=74.3020.猴子吃桃问题。猴子第一天摘下了若干桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第4天早上想要再吃时,只剩下一个桃子了。 求第一天猴子共摘了多少桃子。解:#in clude<stdio.h>int mai n()int n=1;int i;for(i=9;i>=1;i-)n=2*( n+1);prin tf("%dn&qu
23、ot;, n);return 0;程序运行结果如下:190382766153421 打印出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字立方153=13+53+33和等于该数本身。例如,153就是一个水仙花数,因为解:#in clude<stdio.h>int mai n()int i,bw,sw,gw;printf("水仙花数是:");for(i=100;i<999;i+)bw=i/100;sw=(i-bw*100)/10;gw=i-bw*100-sw*10;if(i=bw*bw*bw+sw*sw*sw+gw*gw*gw)prin tf(
24、"%5d",i);prin tf("n");return 0;程序运行结果如下:水仙花数是:153 370 371 40722.用泰勒级数求e的近似值,直到最后一项小于10-6为止。e=1+1/1!+1/2!+1/3! + +1/ n!解:#in clude<stdio.h>int mai n()in t i=1;long f=1;double t=1,e=1;while(t>=1e-6)e=e+t;i=i+1;f=f*i;t=(double)1/f;prin tf("%.3lfn" ,e);return 0;程序运
25、行结果如下:2.71823.输入一个整数,分解各位数字。例如,输入“1298 ”,输出“ 8-9-2-1- ”。请编写一n仁 n2%10;个C语言程序解决该问题。解:#in clude<stdio.h>int mai n()int num,n1,n2;scan f("%d", &nu m);n2=num;while( n2!=0)n2=n2/10;prin tf("%d-", n1);prin tf("n");return 0;程序运行情况如下:1298/8-9-2-1-24.有一个分数序列2/1 , 3/2, 5/3, 8/5 , 13/8, 21/13求出这个数列的前20项之和。解:#in clude<stdio.h>int mai n()int i;float f,s=0;float f1=1;float f2=1;for(i=1;i<=20;i+)f=f1+f2;f1=f2;f2=f;s=s+f2/f1;printf(”分数序列之和为:f",s);return 0;程序运行结果如下:分数序列之和为:32.66025925.打印出以下图案。*解:#in clude<stdio.h>int mai n()int i,j;for
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 制线工道德强化考核试卷含答案
- 电子元器件表面贴装工安全教育模拟考核试卷含答案
- 商场消防安全制度
- 交通安全设施工岗前道德考核试卷含答案
- 抢占节能市场先机-打造行业领先优势
- 简单白盒测试题目及答案
- 医疗纠纷处理考核试题及答案
- 医疗医生入编面试题目及答案
- 《公差选用与零件测量》课件-2.1.13公差原则-可逆要求与最大实体要求叠用
- 2026年南非葡萄酒测试题及答案
- 【量子位智库】2025年度具身智能创业投融资全景报告
- 城市内涝风险评估方案
- 江西省国有资本运营控股集团有限公司2026年第一批批次公开招聘参考考试试题附答案解析
- 2025春季日照银行校园招聘考察人员笔试历年典型考题及考点剖析附带答案详解
- (16区全套) 上海市16区2026届初三一模化学试卷合集(含答案)
- 交通安全技术教学
- 深水井施工专项方案
- 2025青海新泉财金投资管理有限公司招聘2人(二)笔试历年备考题库附带答案详解
- 2026年水产养殖学专业水产种业创新与产业发展答辩
- 心肺康复治疗进展
- 2026年心理咨询师考试题库300道附参考答案(综合题)
评论
0/150
提交评论