C语言程序设计 何钦铭高教版 第2版 课后习题答案110 全.docx
- 文档编号:9496290
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:21
- 大小:34.09KB
C语言程序设计 何钦铭高教版 第2版 课后习题答案110 全.docx
《C语言程序设计 何钦铭高教版 第2版 课后习题答案110 全.docx》由会员分享,可在线阅读,更多相关《C语言程序设计 何钦铭高教版 第2版 课后习题答案110 全.docx(21页珍藏版)》请在冰豆网上搜索。
C语言程序设计何钦铭高教版第2版课后习题答案110全
C语言程序设计(何钦铭)高教版第2版课后习题答案(1-10全)
1.3习题参考答案1.对C语言来说,下列标识符中哪些是合法的,哪些是不合法的?
total,_debug,Large&Tall,Counter1,begin_解答:
Large&Tall不合法,其余都合法。
2.改写本章1.4节中的流程图1.2,求1~100中能被6整除的所有整数的和。
解答:
图1.1“求1~100中能被6整除的所有整数的和”的流程图11XX搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网,您的在线图书馆3.改写本章1.4节中的程序,求1~100中能被6整除的所有整数的和,并在编程环境中验证该程序的运行结果。
解答:
#include<stdio.h>intmain(void){inti,sum=0;for(i=1;i<=100;i++)if(i%6==0)sum=sum+i;printf(“%d”,sum);return0;}运行结果:
8164.对于给定的整数n(n>1),请设计一个流程图判别n是否为一个素数(只能被1和自己整除的整数),并分析该流程图中哪些是顺序结构、哪些是分支结构与循环结构。
解答:
在流程图中,分支结构和循环结构如图1.2所示,自上而下的2个实线框和2个虚线组成了顺序结构。
XX搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网,您的在线图书馆#include<stdio.h>intmain(void){printf(“A\n”);printf(“AA\n”);printf(“A\n”);return0;}14XX搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网,您的在线图书馆2.3练习与习题参考答案2.3.1练习参考答案2-1编写程序,在屏幕上显示一个短句“ProgramminginCisfun!
”。
解答:
#include<stdio.h>intmain(void){printf(“ProgramminginCisfun!
\n”);return0;}2-2下列语句的运行结果是什么?
与例2-2的运行结果有何不同?
为什么?
printf(“Programmingisfun.AndProgramminginCisevenmorefun!
\n”);解答:
运行结果:
Programmingisfun.AndProgramminginCisevenmorefun!
例2-2的运行结果分2行显示。
原因在于,例2-2中在每条输出语句的结尾都采用了‘\n’换行。
2-3编写程序,在屏幕上显示如下图案。
**********解答:
intmain(void){printf(“****\n***\n**\n*\n”);return0;}18XX搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网,您的在线图书馆2-4编写程序,求华氏温度150°F对应的摄氏温度(计算公式同例2-3)。
解答:
#include<stdio.h>intmain(void){intcelsius,fahr;fahr=150;celsius=5*(fahr–32)/9;printf(“fahr=%d,celsius=%d\n”,fahr,celsius);return0;}2-5算术表达式5*(fahr-32)/9能改写成5(fahr-32)/9吗?
为什么?
如果将其改写为5/9*(fahr-32),会影响运算结果吗?
解答:
5(fahr-32)/9不是合法的C表达式,因为不能省略运算符*;5/9*(fahr-32)的值为0。
2-6一个物体从100米的高空自由落下,编写程序,求它在前3秒内下落的垂直距离。
设重力加速度为10m/s2。
解答:
#include<stdio.h>intmain(void){doubleheight;height=0.5*10*3*3;printf(“height=%.2f\n”,height);return0;}2-7输入提示和输入语句的顺序应该如何安排?
例2-5中,scanf(“%d%d%lf”,&money,&year,&rate)能改写为scanf(“%d%lf%d”,&money,&year,&rate)吗?
为什么?
能改写为scanf(“%d%lf%d”,&money,&rate,&year)吗?
如果可以,其对应的输入数据是什么?
解答:
输入提示在前,输入语句在后。
不能改写为scanf(“%d%lf%d”,&money,&year,&rate),因为%lf与整型变量money不匹配,%d与浮点型变量rate不匹配。
与scanf(“%d%lf%d”,&money,&rate,&year)对应的输入数据为:
10000.02532-8编写程序,输入华氏温度,输出对应的摄氏温度,计算公式同例2-3。
解答:
#include<stdio.h>intmain(void){intcelsius,fahr;19XX搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网,您的在线图书馆scanf(“%d”,&fahr);celsius=5*(fahr-32)/9;printf(“celsius=%d\n”,celsius);return0;}2-9编写程序,输入3个整数,计算并输出它们的平均值。
解答:
#include<stdio.h>intmain(void){inta,b,c;doubleaverage;scanf(“%d%d%d”,&a,&b,&c);average=(a+b+c)*1.0/3;printf(“average=%.2f\n”,average);return0;}2-10编写程序,输入x,计算并输出下列分段函数f(x)的值(保留3位小数)。
1yf(x)x0x0x0解答:
#include<stdio.h>intmain(void){doublex,y;scanf(“%lf”,&x);if(x!
=0)y=1/x;elsey=0;printf(“f(%.2f)=%.3f\n”,x,y);return0;}2-11编写程序,输入x,计算并输出下列分段函数f(x)的值(保留2位小数),请调用sqrt函数求平方根,调用pow函数求幂。
15x0x2xxyf(x)x0解答:
#include<stdio.h>20XX搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网,您的在线图书馆#include<math.h>intmain(void){doublex,y;scanf(“%lf”,&x);if(x>=0)y=sqrt(x);elsey=pow(x,5)+2*x+1/x;printf(“f(%.2f)=%.2f\n”,x,y);return0;}2-12编写程序,输入2个整数lower和upper,输出一张华氏-摄氏温度转换表,华氏温度的取值范围是[lower,upper],每次增加2°F,计算公式同例2-7。
解答:
#include<stdio.h>intmain(void){intlower,upper;doublecelsius,fahr;scanf(“%d%d”,&lower,&upper);printf(“fahrcelsius\n”);for(fahr=lower;fahr<=upper;fahr=fahr+2){celsius=5*(fahr-32.0)/9;printf(“%3.0f%6.1f\n”,fahr,celsius);}return0;}2-13编写程序,输入一个正整数n,求i1。
in1解答:
#include<stdio.h>intmain(void){inti,n;doublesum;scanf(“%d”,&n);sum=0;for(i=1;i<=n;i++)sum=sum+1.0/i;printf(“sum=%.6f\n”,sum);21XX搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网,您的在线图书馆}return0;2-14编写程序,输入一个正整数n,计算11315.....的前n项之和。
解答:
#include<stdio.h>intmain(void){inti,n;doublesum;scanf(“%d”,&n);sum=0;for(i=1;i<=n;i++)sum=sum+1.0/(2*i-1);printf(“sum=%.6f\n”,sum);return0;}2-15编写程序,输入一个正整数n,计算11417111101316.....的前n项之和。
解答:
#include<stdio.h>intmain(void){intflag,i,n,denominator;doubleitem,sum;scanf(“%d”,&n);sum=0;flag=1;denominator=1;for(i=1;i<=n;i++){item=flag*1.0/denominator;sum=sum+item;flag=-flag;denominator=denominator+3;}printf(“sum=%.3f\n”,sum);return0;}2-16编写程序,输入两个正整数m和n,计算m!
+n!
。
解答:
#include“stdio.h”22XX搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网,您的在线图书馆intmain(void){inti,m,n;doublefm,fn;scanf(“%d%d”,&m,&n);fm=1;for(i=1;i<=m;i++)fm=fm*i;fn=1;for(i=1;i<=n;i++)fn=fn*i;printf(“%d!
+%d!
=%.0f\n”,m,n,fm+fn);return0;}2-17执行下列程序段后,sum的值是for(i=1;i<=10;i++){sum=0;sum=sum+i;}解答:
sum的值是10。
2-18输入一个正整数n,生成一张3的乘方表,输出30到3n的值,可以调用幂函数计算3的乘方。
解答:
#include<stdio.h>#include<math.h>intmain(void){inti,n;doublemypow;scanf(“%d”,&n);for(i=0;i<=n;i++){mypow=pow(3,i);printf(“pow(3,%d)=%.0f\n”,i,mypow);}return0;}2-19输入一个正整数n,生成一张阶乘表,输出1!
到n!
的值。
要求定义和调用函数fact(n)计算n!
,函数类型是double。
解答:
#include<stdio.h>intmain(void)23XX搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网,您的在线图书馆{inti,n;doublemyfact;doublefact(intn);scanf(“%d”,&n);for(i=1;i<=n;i++){myfact=fact(i);printf(“%d!
=%.0f\n”,i,myfact);}return0;}doublefact(intn){inti;doubleproduct;product=1;for(i=1;i<=n;i++)product=product*i;returnproduct;}2-20根据下列公式可以算出从n个不同元素中取出m个元素(m≤n)的组合数。
编写程序,输入2个正整数m和n(m≤n),计算并输出组合数。
要求定义和调用函数fact(n)计算n!
,函数类型是double。
n!
mCnm!
(nm)!
解答:
#include“stdio.h”doublefact(intn);intmain(void){intm,n;doubles;scanf(“%d%d”,&m,&n);s=fact(n)/(fact(m)*fact(n-m));printf(“result=%.0f\n”,s);return0;}doublefact(intn){inti;doubleproduct;product=1;for(i=1;i<=n;i++)24XX搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网,您的在线图书馆product=product*i;returnproduct;}2.3.2习题参考答案1.编写程序,输入两个整数num1和num2,计算并输出它们的和、差、积、商与余数。
解答:
#include<stdio.h>intmain(void){intnum1,num2;scanf(“%d%d”,&num1,&num2);printf(“%d+%d=%d\n”,num1,num2,num1+num2);printf(“%d-%d=%d\n”,num1,num2,num1-num2);printf(“%d*%d=%d\n”,num1,num2,num1*num2);printf(“%d/%d=%d\n”,num1,num2,num1/num2);printf(“%d%%%d=%d\n”,num1,num2,num1%num2);return0;}2.为了倡导居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分两个“阶梯”:
月用电量50千瓦时以内的,电价为0.53元/千瓦时;超过50千瓦时的用电量,电价上调0.05元/千瓦时。
编写程序,输入用户的月用电量(千瓦时),计算并输出该用户应支付的电费(元)。
解答:
#include<stdio.h>intmain(void){doublecost,e;scanf(“%d”,&repeat);scanf(“%lf”,&e);if(e<=50)cost=0.53*e;elsecost=0.53*50+(e-50)*0.58;printf(“cost=%.2f\n”,cost);return0;}3.编写程序,输入实数x和正整数n,计算xn,不允许调用pow函数求幂。
解答:
#include<stdio.h>intmain(void)25XX搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网,您的在线图书馆{inti,n;doublemypow,x;scanf(“%lf%d”,&x,&n);mypow=1;for(i=1;i<=n;i++)mypow=mypow*x;printf(“%.2f\n”,mypow);return0;}4.编写程序,输入两个正整数m和n,求in(i21mi)。
解答:
#include<stdio.h>intmain(void){inti,m,n;doublesum;scanf(“%d%d”,&m,&n);sum=0;for(i=m;i<=n;i++)sum=sum+i*i+1.0/i;printf(“sum=%.6f\n”,sum);return0;}5.编写程序,输入一个正整数n,计算123345657911.....的前n项之和。
解答:
#include<stdio.h>intmain(void){intflag,i,n;doubleitem,sum;scanf(“%d”,&n);sum=0;flag=1;for(i=1;i<=n;i++){item=flag*1.0*i/(2*i-1);sum=sum+item;flag=-flag;}26XX搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网,您的在线图书馆printf(“sum=%.3f\n”,sum);return0;}6.某客户为购房办理商业贷款,选择了按月等额本息还款法,计算公式如下,在贷款本金(loan)和月利率(rate)一定的情况下,住房贷款的月还款额(money)取决于还款月数(month)。
客户打算在5~30年的范围内选择还清贷款的年限,想得到一张“还款年限-月还款额表”以供参考。
编写程序,输入贷款本金loan和月利率rate,输出“还款年限-月还款额表”,还款年限的范围是5~30年,输出时分别精确到年和元。
moneyloanrate(1rate)month(1rate)month1解答:
#include<stdio.h>#include<math.h>intmain(void){intyear;doubleloan,money,mypow,rate;scanf(“%lf%lf”,&loan,&rate);printf(“yearmoney\n”);for(year=5;year<=30;year++){mypow=pow(1+rate,12*year);money=loan*rate*mypow/(mypow-1);printf(“year=%dmoney=%.0f\n”,year,money);}return0;}7.编写程序,输入一个正整数n,求n2ii1,可以调用pow函数求幂。
解答:
#include<stdio.h>#include<math.h>intmain(void){inti,n;doublesum;scanf(“%d”,&n);sum=0;for(i=1;i<=n;i++){sum=sum+pow(2,i);}printf(“sum=%.0f\n”,sum);27XX搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网,您的在线图书馆}return0;8.编写程序,输入一个正整数n,求型是double。
解答:
#include<stdio.h>intmain(void){inti,n;doublesum;doublefact(intn);scanf(“%d”,&n);sum=0;for(i=0;i<=n;i++){sum=sum+fact(i);}printf(“sum=%.0f\n”,sum);return0;}doublefact(intn){inti;doubleproduct;product=1;for(i=1;i<=n;i++)product=product*i;returnproduct;}ei!
i0n。
要求定义和调用函数fact(n)计算n!
,函数类2.4实验指导教材参考答案2.4.1基本数据处理一、调试示例:
略二、改错题:
略三、编程题1.求华氏温度150°F对应的摄氏温度。
计算公式如下,其中:
c表示摄氏温度,f表示华氏温度。
c55f329928XX搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网,您的在线图书馆3.3练习与习题参考答案3.3.1练习参考答案练习3-1例3-4中使用else-if语句求解多分段函数,为了检查else-if语句的三个分支是否正确,已经设计了三组测试用例,请问还需要增加测试用例吗?
为什么?
如果要增加,请给出具体的测试用例并运行程序。
解答:
最好再增加两组测试用例,因为尚未对分段函数参数的边界值进行测试。
可再给出x=0和x=15时的两种情况。
练习3-2输入一个整数x,计算并输出下列分段函数sign(x)的值。
1,x0ysign(x)0,x01,x0解答:
#include<stdio.h>intmain(void){intx,y;XX搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网,您的在线图书馆printf(“Enterx:
“);scanf(“%d”,&x);if(x>0)y=1;elseif(x==0)y=0;elsey=-1;printf(“sign(%d)=%d\n”,x,y);return0;}练习3-3输入一个正整数n,再输入n个学生的成绩,计算平均成绩,并统计所有及格学生的人数。
解答:
#include<stdio.h>intmain(void){intcount,i,n;doublegrade,total;printf(“Entern:
“);scanf(“%d”,&n);total=0;count=0;for(i=1;i<=n;i++){printf(“Entergrade#%d:
“,i);scanf(“%lf”,&grade);total=total+grade;if(grade>=60)count++;}}printf(“Gradeaverage=%.2f\n”,total/n);printf(“Numberofpass=%d\n”,count);return0;}练习3-4输入15个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。
解答:
#include<stdio.h>intmain(void){inti;intblank,digit,letter,other;charc;blank=digit=letter=other=0;for(i=1;i<=15;i++){c=getchar();XX搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网,您的在线图书馆if(c>=‘a’&&c<=‘z’||c>=‘A’&&c<=‘Z’)letter++;elseif(c>=‘0’&&c<=‘9’)digit++;elseif(c==‘‘||c==‘\n’)blank++;elseother++;}printf(“letter=%d,blank
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 何钦铭 高教版 第2版 课后习题答案110 语言程序设计 高教 课后 习题 答案 110