C语言程序设计(何钦铭)课后习题作业_第1页
C语言程序设计(何钦铭)课后习题作业_第2页
C语言程序设计(何钦铭)课后习题作业_第3页
C语言程序设计(何钦铭)课后习题作业_第4页
C语言程序设计(何钦铭)课后习题作业_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、,y1,y2,y3,y5;double y4;printf( 请输入两个数: 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为了倡导居民节约用电,某省电力公司执行 “阶梯电价 ”,安装一户一表 的居民用户

4、电价分为两个 “阶梯”:月用电量 50千瓦时以内的,电价为 0.53 元/ 千瓦时;超出 50 千瓦时的用电量,电价上调 0.05元/千瓦时。编写程序,输入 用户的月用电量(千瓦时),计算并输出该用户应支付的电费(元)。答:程序:#includevoid 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 ()函数 求幂。答:程

5、序:#includevoid main()double x,power;int i,n;printf( 请输入: x,nn);scanf(%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

6、=sum+(i*i+1.0/i);printf(sum=%lfn,sum);5. 编写程序,输入一个正整数 n,计算1-2/3+3/5-4/7+5/9-6/11+,的前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某用户为购房办理商业贷款,选择了按月等额本息还款法,计算公式如

7、 下,在贷款本金(loan)和月利率(rate) 定的情况下,住房贷款的月还款(mo ney)取决于还款月数(mo nth)。客户打算在530年的范围内选择还清 贷款的年限,想得到一张 “还款年限月还款额表 ”以供参考。编写程序,输入贷 款本金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

8、;lower=5;upper=30;printf( 请输入贷款本金 :loann);scanf(%d,&loan);printf( 请输入月利率 :raten);scanf(%lf,&rate);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 () 函数求幂。答:

9、程序:#include#includevoid main()int i,n;double sum,item;sum=0;printf(input:nn);scanf(%d,&n);for(i=0;i=n;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

10、); 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; 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

11、+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=%.2lfn,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=2

12、850) rate=10;else if(salary=5850) rate=15;elserate=20;tax=rate*(salary-850)/100;printf( 职工应缴个人所得税 tax=%.2lfn,tax);3、#includevoid 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);elsey=2*10+3*(m+n/5.0-10);printf( 乘客应付车费 y=

13、%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;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+;elseE+;printf( 平均成绩 =%lfn,total/n);printf( 等级成绩个数: nA=%dnB=%dnC=%dnD=%dnE=%

14、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=%.2lfn,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

15、:n); scanf(%d,&x);sum=0;count=0; if(x0) x=-x;do a=x%10; sum=sum+a;x=x/10; count+;while(x!=0);printf( 位数 =%dn,count);printf( 各个位数之和为 :%dn,sum); return 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;prin tf(a+aa+aaa+aa - na=

16、% d7、#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.hvoid 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,

17、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(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;

18、elsesum=(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( 它们的和是 =%ld,sum);return 0;2.#includeint countdight(int number,int dight);int main(void)int number;printf( 输入一个数 :);scanf(%d,&numbe

19、r);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 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(

20、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.#include void is(int num); int main(void)int n,m,num1;num1=1;printf( 输入两个数 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;

21、 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 number)while(number!=0)printf(%d,number%10);number=number/10;printf(n);return number;第七章作业1.#includevoid main()

22、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;24 / 48(PO)U&LU 4CLTOP4SV pnous寸宀(ucgd 二二5P8%=)匕 d (+uvo.ll)04 亍兰 兰 eoeoeHb8寸一贸(+ruvoHD04 )(+UJvo.ll)04 wm 二 e03p%=)4ueos(+ruvoHD04 (+Luvo.l

23、l)04 e*UJuu 報 jp% =)匕 d e03u03p%p%=)4ueos fu=s9hvuujhvl)uuj=)匕 d_o20x9=9ra-u 一 -lunsTruu ju一printf(%4d,aij); printf(n); for(i=0;im;i+) sum=0;for(j=0;jn;j+) sum=sum+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;

24、i=2;i+)for(j=0;j=2;j+)30 / 488 寸二co0LxeuJ=0xeuJ5u_p%=)匕 u 一d (LH6e&一宀宀qoH6e匸(Rxeuu= LxeLUeAxeLU)4-(+0xeLUZHV0xeLUo0elu)o4irLxelu s曰FxeuJ (xeuJAm 二 e)七 (+r 卡 vod04 xo=eHxeLU (+ZHvo.ll)04 wm 二 e03p%=)4ueos厂 u=s(08vu)u =)匕 dX02OSeuou._4(PO)U&LU 4 AIT64SV pnous CLTOP4SV pnousco宀宀 匸厂 u!.曰 so.ll)04 宀兰 SLO

25、9L二 s (NU 曰 s0303!.曰 so.ll)04_(ss%=)4ueos(+uvo.ll)04 e5-tBJP% =)匕 u 一de03p%=)4ueosputchar(si);printf(n);return 0;#include#includeint main(void)int i, n; char f,s80;printf(Enter a string: ); /* 输入字符串 */ i = 0;while(si = getchar( ) != n)i+;si = 0;n = 0;for(i = 0; si != 0; i+)if(si = 20) si=si+;elsebre

26、ak;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=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

27、(i=0;i9;i+)for(j=i+1;j10;j+)33 / 48if(aiaj)temp=ai;ai=aj; aj=temp; for(i=0;i10;i+)printf(%dn,ai);return 0;5.#include #include void mcopy(char *s,int m); int main(void)int i,m,l;char str100;printf( 请输入您要输入的字符串 :);gets(str);printf( 您将从原字符串的第 m 位复制新字符串,请输入 m:n); scanf(%d,&m);printf( 复制后,新的字符串为 :);mcopy

28、(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=0;*(p+i)!=0;i+)l+;if(*(p+l-1)=y)*(p+l)=e;*(p+l+1)=s;*(p+l+2)=0;elseif(*(

29、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 #include int main(void)int i,j,a,n,sum,avg;int *p;printf(Enter n:);scanf(%d,&n); if(p=(int*)calloc(n,sizeof(

30、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( 学生的平均成绩是 :%dn,avg);printf( 学生的最高成绩是 :%dn,*(p+n-1);printf( 学生的最低成绩是

31、:%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=24) time.hour=0;printf(%d:%d:%d,time.hour,time.min

32、ute,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 10 struct person char num10;char name20;double jbgz,jj,zc,sfgz;struct person gzN;int main() int i,index;printf(请输入%d名工人的基本信息:n,

33、N);for(i=0;iN;i+)printf(请输入第%d名工人的基本信息:n,i+1);scanf(%s%s%lf%lf%lf,gzi.num,,&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.jbgz,gz i.jj,gzi.zc,gzi.sfgz=gzi.jbgz+gzi.jj-gzi.zc);index=0;for(i=0;igzindex.sfgz)index=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论