C语言程序设计何钦铭课后习题作业.docx

上传人(卖家):hhsmd 文档编号:5373635 上传时间:2023-04-02 格式:DOCX 页数:27 大小:25.06KB
下载 相关 举报
C语言程序设计何钦铭课后习题作业.docx_第1页
第1页 / 共27页
C语言程序设计何钦铭课后习题作业.docx_第2页
第2页 / 共27页
C语言程序设计何钦铭课后习题作业.docx_第3页
第3页 / 共27页
C语言程序设计何钦铭课后习题作业.docx_第4页
第4页 / 共27页
C语言程序设计何钦铭课后习题作业.docx_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、第一章习题1、对C语言来说,下列标示符中哪些是合法的,哪些是不合法的? Total, _debug, LargeTall, Counter1, begin_ 答:合法的:_debug、Counter1、begin_。 不合法的:Total、LargeTall。2、改写1.4节中的流程图1.2,求1100中能被6整除的所有整数的和。Sum=0,i=1I=100I能被6整除?sum=sum+ii=i+1真假打印sum3、改写1.4节中的程序,求1100中能被6整除的所有整数的和,并在编程环境中验证该程序的运行结果。 答:程序为:#includeint main(void)int i,sum=0;f

2、or(i=1;i1),请设计一个流程图判别n是否为一个素数(只能被1和自己整除的整数),并分析该流程图中哪些是顺序结构、哪些是分支结构和循环结构。开始结束输入ni=2r=n/i的余数r=0?i=i+1i=(n-1)输出n“是素数”输出n“不是素数”假真真假开始结束输入ni=2r=n/i的余数r=0?i=i+1i=(n-1)输出n“是素数”输出n“不是素数”假真真假第二章作业1编写程序,输入两个整数num和num2,计算并输出她们的和、差、积、商。答:程序:#include void main()int num1,num2,y1,y2,y3,y5;double y4;printf(请输入两个数:

3、num1,num2n);scanf(%d%d,&num1,&num2);y1=num1+num2;y2=num1-num2;y3=num1*num2;y4=num1*1.0/num2;y5=num1%num2;printf(num1,num2和y1=%dnnum1,num2差y2=%dnnum1,num2积y3=%dnnum1,num2商y4=%lfnnum1,num2余y5=%dn,y1,y2,y3,y4,y5); 2为了倡导居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时以内的,电价为0.53元/千瓦时;超出50千瓦时的用电量,电价

4、上调0.05元/千瓦时。编写程序,输入用户的月用电量(千瓦时),计算并输出该用户应支付的电费(元)。答:程序:#include void main()double x,y;printf(请输入月用电量:xn);scanf(%lf,&x);if(x=50)y=0.53*x;printf(电费y=%lfn,y);else y=0.58*x;printf(应支付电费y=%lfn,y); 3编写程序,输入实数x和正整数n,计算xn,不允许调用pow()函数求幂。答:程序:#include void main() double x,power; int i,n;printf(请输入:x,nn);scan

5、f(%lf%d,&x,&n);power=1.0;for(i=1;i=n;i+)power=power*x;printf(power(x,n)=%lfn,power);4编写程序,输入两个正整数m和n,求(i2+1/i)(i从m到n。)答:程序:#includevoid main()int i,m,n;double sum;sum=0;printf(input:m,nn);scanf(%d%d,&m,&n);for(i=m;i=n;i+)sum=sum+(i*i+1.0/i);printf(sum=%lfn,sum);5编写程序,输入一个正整数n,计算1-2/3+3/5-4/7+5/9-6/1

6、1+的前n项之和。答:程序:#includevoid main()int i,n;double sum,item,flag;flag=1;sum=0;printf(input:nn);scanf(%d,&n);for(i=1;i=n;i+)item=(flag*i)/(2*i-1);flag=-flag;sum=sum+item;printf(sum=%lfn,sum);6某用户为购房办理商业贷款,选择了按月等额本息还款法,计算公式如下,在贷款本金(loan)和月利率(rate)一定的情况下,住房贷款的月还款(money)取决于还款月数(month)。客户打算在530年的范围内选择还清贷款的年

7、限,想得到一张“还款年限月还款额表”以供参考。编写程序,输入贷款本金loan和月利率rate,输出“还款年限月还款额表”,还款年限的范围是530年,输出时分别精确到年和元。Money=loan*rate(1+rate)month/(1+rate)month-1答:程序:#include#includevoid main()int lower,upper,month,year,loan;double money,rate;lower=5;upper=30;printf(请输入贷款本金:loann);scanf(%d,&loan);printf(请输入月利率:raten);scanf(%lf,&r

8、ate);printf(还款年限t月还款额n);for(year=lower;year=upper;year+)month=year*12;money=(loan*rate*pow(1+rate),month)/(pow(1+rate),month)-1);printf(%dtt%lfn,year,money);7编写程序,输入一个正整数n,求2i(i从1到n),可调用pow()函数求幂。答:程序:#include#includevoid main()int i,n;double sum,item;sum=0;printf(input:nn);scanf(%d,&n);for(i=0;i=n;

9、i+)item=pow(2,i);sum=sum+item;printf(sum=%lfn,sum);8编写程序,输入一个正整数n,求e=i!(i从0到n)。要求定义和调用函数fact(n)计算n!,函数类型是double.答:程序:#includedouble fact(int n);void main()int i,n;double sum;sum=0;printf(input:nn);scanf(%d,&n);for(i=0;i=n;i+)sum=sum+fact(i);printf(sun=%lfn,sum);double fact(int n)int i;double product

10、;product=1.0;for(i=1;i=n;i+)product=product*i;return product;第三章作业1.#include#includevoid main()int a,b,c;double s,area,perimeter;printf(请输入三角形三条边:a,b,cn);scanf(%d%d%d,&a,&b,&c);if(a+bc&a+cb&b+ca)perimeter=a+b+c;s=(a+b+c)/2.0;area=sqrt(s*(s-a)*(s-b)*(s-c);printf(三角形的周长perimeter=%.2lfn三角形的面积area=%.2lf

11、n,perimeter,area);2、#include#includevoid main()double salary,tax,rate;printf(请输入职工的月薪:salaryn);scanf(%lf,&salary);if(salary=850) rate=0;else if(salary=1350) rate=5;else if(salary=2850) rate=10;else if(salary=5850) rate=15;else rate=20;tax=rate*(salary-850)/100;printf(职工应缴个人所得税tax=%.2lfn,tax);3、#incl

12、udevoid main()double m,n,y;printf(请输入行驶里程(公里):mn等待时间(分钟):nn);scanf(%lf%lf,&m,&n);if(m+n/5.0)=3) y=10;else if(m+n/5.0)=10) y=2*(m+n/5.0);else y=2*10+3*(m+n/5.0-10);printf(乘客应付车费y=%dn,(int)(y*10+0.5)/10.0);4、#includevoid main()int i,n,A,B,C,D,E;double score,total;printf(请输入一个数n:n);scanf(%d,&n);total=0

13、;A=0;B=0;C=0;D=0;E=0;for(i=1;i=90)A+;else if(score=80)B+;else if(score=70)C+;else if(score=60)D+;else E+;printf(平均成绩=%lfn,total/n);printf(等级成绩个数:nA=%dnB=%dnC=%dnD=%dnE=%dn,A,B,C,D,E);5、#includevoid main()int year;printf(21世纪所有的闰年:n);for(year=2000;year=0.00001)s=pow(x,i)*1.0/fact(i)+s;i+;printf(s=%.2

14、lfn,s);double fact(int n)int i;double result;result=1;for(i=1;i=n;i+)result=result*i;return result;3、#includestdio.hint main(void)int x,a,count,sum;printf(请输入一个整数x:n);scanf(%d,&x);sum=0;count=0;if(x0) x=-x;doa=x%10;sum=sum+a;x=x/10;count+;while(x!=0);printf(位数=%dn,count);printf(各个位数之和为:%dn,sum);retu

15、rn 0;5、#includestdio.hvoid main()int a,n,i=1,s=0,t=0;printf(请输入两个正整数a,n=:n);scanf(%d%d,&a,&n);while(i=n)t=t+a;s=s+t;a=a*10;+i;printf(a+aa+aaa+aaa=%dn,s);7、#includestdio.hvoid main()int i,j,k,l,n;printf(1-10000之间的水仙花数有:n);for(n=10;n0;j=j/10)n=k/j;printf(%d,n%10);if(j!=1)printf(,);11、#includestdio.hvo

16、id main()int p,r,n,m,temp;printf(请输入两个正整数:n);scanf(%d%d,&n,&m);if(nm) temp=n;n=m;m=temp;p=n*m;while(m!=0)r=n%m; n=m;m=r;printf(最大公约数为:%dn,n);printf(最小公倍数为:%dn,p/n);13、#includestdio.hvoid main()int i,j;for(i=0;i=3;i+)for(j=0;j=2-i;j+)printf( );for(j=0;j=2*i;j+)printf(*);printf(n); for(i=0;i=2;i+)for(

17、j=0;j=i;j+)printf( );for(j=0;j=4-2*i;j+)printf(*);printf(n); 第五章1.#include#include long fac(int n,int a)long sum;if(n=1)sum=a; else sum=(long)(pow(10,n-1)*a)+fac(n-1,a);return(sum);main()int a,n,i;long temp,sum=0;printf(请输入一个数a,nn);scanf(%d%d,&a,&n); for(i=1;i=n;i+) temp=fac(i,a); sum+=temp; printf(

18、它们的和是=%ld,sum); return 0; 2.#includeint countdight(int number,int dight);int main(void)int number;printf(输入一个数:);scanf(%d,&number);countdight(number,2);return 0;countdight(int number,int dight)int a,count;count=0;while(number!=0)a=number%10;number=number/10;if(a=dight)count+;printf(%dn,count);return

19、 count;3.#includeint fib(int n);int main(void)int m,n,num1;num1=1;printf(请输入两个正整数m和n(m=1,n=m&num1=n)fib(n);return 0;int fib(int n)int i,x1,x2,x,t;x1=1;x2=1;for(i=0;in;i+)x=x1+x2;printf(%5d,x);t=x;x1=x2;x2=t;printf(n);return x;5. #includevoid is(int num);int main(void)int n,m,num1;num1=1;printf(输入两个数

20、m和n(m=1,n=m&num1=n)is(num1);return 0;void is(int num)int i,j,k;for(num=1;num1000;num+)i=num/100;j=num/10%10;k=num%10;if(i*100+j*10+k*1=i*i*i+j*j*j+k*k*k)printf(%5d,num);printf(n);6.#includeint reverse(int number);int main(void)int x;printf(请输入一个正整数:n);scanf(%d,&x);reverse(x);return 0;int reverse(int

21、 number)while(number!=0)printf(%d,number%10);number=number/10;printf(n);return number;第七章作业1.#includevoid main() int i,j=0,k=0,n,p,q,max,min; int a10; printf(请输入n(1n10)的值: n);scanf(%d,&n);printf(请输入%d个数: n,n);for(i=0;in;i+)scanf(%d,&ai);min=a0;max=a9;if(aimax)max=ai;j=i;p=a9;a9=aj;aj=p;q=a0;a0=ak;ak

22、=q;for(i=0;in;i+)printf(%8d,ai);printf(n);4.#includeint main(void)int m,n,i,j,sum;int a66,x80;printf(请输入m,n(1=m,n=6)的值: n);scanf(%d%d,&m,&n);printf(请输入%d个数: n,m*n);for(i=0;im;i+)for(j=0;in;j+)scanf(%d,&aij);for(i=0;im;i+)for(j=0;jn;j+)printf(%4d,aij);printf(n);for(i=0;im;i+)sum=0;for(j=0;jn;j+)sum=s

23、um+aij;xi=sum;for(i=0;im;i+)printf(%dn,xi);return 0;5.#includevoid main()int a33,max,max1,max2,i,j,flag=1;printf(请输入9个数: n);for(i=0;i=2;i+)for(j=0;j=2;j+)scanf(%d,&aij);for(i=0;i=2;i+)max=ai0;for(j=0;jmax)max=aij;max1=j;for(max2=0;max2amax1max2)flag=0;break;if(flag=1) printf(鞍点是 %dn,amax2max1); if(f

24、lag=0) printf(no numbern);flag=1;8.#include#includeint main(void)int i,n;char s80;printf(请输入n(n80)的值: n);scanf(%d,&n);printf(请输入%d个字符: n,n);for(i=0;i=A&si=Z)si=155-si;for(i=0;si!=0;i+)putchar(si);printf(n);return 0;#include#includeint main(void) int i, n; char f,s80;printf(Enter a string: ); /*输入字符串

25、*/i = 0;while(si = getchar( ) != n) i+; si = 0;n = 0;for(i = 0; si != 0; i+)if(si = 20)si=si+;elsebreak; for(i = 0; si != 0; i+)putchar(si);return 0; 第八章作业1.#includeint main(void)char ch;int a10;int i,j,temp;printf(请输入10个整数:n);for(i=0;i10;i+)scanf(%d,&ai);printf(请输入A或D:);scanf( %c,&ch);if(ch=A)for(i

26、=0;i9;i+)for(j=i+1;jaj)temp=ai;ai=aj;aj=temp;for(i=0;i10;i+)printf(%dn,ai);else if(ch=D)for(i=0;i9;i+)for(j=i+1;j10;j+)if(aiaj)temp=ai;ai=aj;aj=temp;for(i=0;i10;i+)printf(%dn,ai);return 0;5.#include#includevoid mcopy(char *s,int m);int main(void) int i,m,l;char str100;printf(请输入您要输入的字符串:);gets(str);

27、printf(您将从原字符串的第m位复制新字符串,请输入m:n);scanf(%d,&m);printf(复制后,新的字符串为:); mcopy(str,m);return 0;void mcopy(char *s,int m)printf(%sn,s+m-1);11.#include#includevoid fushu(char *p);int main(void)char str80;printf(请输入一个英语名词单词:);scanf(%s,str); fushu(str);puts(str);return 0;void fushu(char *p) int i,l;l=0;for(i=

28、0;*(p+i)!=0;i+)l+;if(*(p+l-1)=y)*(p+l)=e;*(p+l+1)=s;*(p+l+2)=0;else if(*(p+l-1)=s)|(*(p+l-1)=x)|(*(p+l-2)=c)&(*(p+l-1)=h)|(*(p+l-2)=s)&(*(p+l-1)=h)*(p+l)=e;*(p+l+1)=s;*(p+l+2)=0;else if(*(p+l-1)=o)*(p+l)=e;*(p+l+1)=s;*(p+l+2)=0;else*(p+l)=s;*(p+l+1)=0;12.#include#includeint main(void)int i,j,a,n,sum

29、,avg;int *p;printf(Enter n:);scanf(%d,&n);if(p=(int*)calloc(n,sizeof(int)=NULL)printf(Not able to allocate memory.n);exit(1);printf(请输入%d个学生的成绩:n,n);for(i=0;in;i+)scanf(%d,p+i);sum=0;for(i=0;in;i+)sum=sum+*(p+i);avg=sum/n;for(i=0;in-1;i+)for(j=i+1;j*(p+j)a=*(p+i);*(p+i)=*(p+j);*(p+j)=a;printf(学生的平均成

30、绩是:%dn,avg);printf(学生的最高成绩是:%dn,*(p+n-1);printf(学生的最低成绩是:%dn,*p);return 0;第九章作业1.#includestructint hour,minute,second;time;int main(void)scanf(%d:%d:%d,time.hour,time.minute,time.second);time.second+;if(time.second=60)time.minute+;time.second=0;if(time.minute=60)time.hour+;time.minute=0;if(time.hour

31、=24)time.hour=0;printf(%d:%d:%d,time.hour,time.minute,time.second);return 0;2.struct s1char c1,c2;int n;struct s2int n; struct s1 m;int main(void)printf(nt%dt%dt%cn,m.n,m.m,m.n,m.m.c1,m.m.c2);return 0;8.#include#define N 10struct personchar num10;char name20;double jbgz,jj,zc,sfgz;struct person gzN;

32、int main() int i,index;printf(请输入%d名工人的基本信息:n, N);for(i=0;iN;i+)printf(请输入第%d名工人的基本信息:n,i+1);scanf(%s%s%lf%lf%lf,gzi.num,gzi.name,&gzi.jbgz,&gzi.jj,&gzi.zc);printf(%d名工人的基本信息:n,N);printf(编号t姓名t基本工资t奖金t支出t实发工资n);for(i=0;iN;i+)printf(%st%st%.2lftt%.2lft%.2lft%.2lfn,gzi.num,gzi.name,gzi.jbgz,gzi.jj,gzi.zc,gzi.sfgz=gzi.jbgz+gzi.jj-gzi.zc);index=

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

当前位置:首页 > 办公、行业 > 建筑工程类
版权提示 | 免责声明

1,本文(C语言程序设计何钦铭课后习题作业.docx)为本站会员(hhsmd)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|