您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > C语言程序设计(何钦铭)课后习题作业
第一章习题1、对C语言来说,下列标示符中哪些是合法的,哪些是不合法的?Total,_debug,Large&Tall,Counter1,begin_答:合法的:_debug、Counter1、begin_。不合法的:Total、Large&Tall。2、改写1.4节中的流程图1.2,求1—100中能被6整除的所有整数的和。3、改写1.4节中的程序,求1—100中能被6整除的所有整数的和,并在编程环境中验证该程序的运行结果。答:程序为:#includestdio.hintmain(void)Sum=0,i=1I=100I能被6整除?sum=sum+ii=i+1真假打印sum{inti,sum=0;for(i=1;i=100;i++)if(i%6==0)sum=sum+i;printf(sum=%d\n,sum);return0;}4、对于给定的整数n(n1),请设计一个流程图判别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,计算并输出她们的和、差、积、商。答:程序:#includestdio.hvoidmain(){intnum1,num2,y1,y2,y3,y5;doubley4;printf(请输入两个数:num1,num2\n);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=%d\nnum1,num2差y2=%d\nnum1,num2积y3=%d\nnum1,num2商y4=%lf\nnum1,num2余y5=%d\n,y1,y2,y3,y4,y5);}2.为了倡导居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时以内的,电价为0.53元/千瓦时;超出50千瓦时的用电量,电价上调0.05元/千瓦时。编写程序,输入用户的月用电量(千瓦时),计算并输出该用户应支付的电费(元)。答:程序:#includestdio.hvoidmain(){doublex,y;printf(请输入月用电量:x\n);scanf(%lf,&x);if(x=50){y=0.53*x;printf(电费y=%lf\n,y);}else{y=0.58*x;printf(应支付电费y=%lf\n,y);}}3.编写程序,输入实数x和正整数n,计算xn,,不允许调用pow()函数求幂。答:程序:#includestdio.hvoidmain(){doublex,power;inti,n;printf(请输入:x,n\n);scanf(%lf%d,&x,&n);power=1.0;for(i=1;i=n;i++)power=power*x;printf(power(x,n)=%lf\n,power);}4.编写程序,输入两个正整数m和n,求∑(i2+1/i)(i从m到n。)答:程序:#includestdio.hvoidmain(){inti,m,n;doublesum;sum=0;printf(input:m,n\n);scanf(%d%d,&m,&n);for(i=m;i=n;i++)sum=sum+(i*i+1.0/i);printf(sum=%lf\n,sum);}5.编写程序,输入一个正整数n,计算1-2/3+3/5-4/7+5/9-6/11+…的前n项之和。答:程序:#includestdio.hvoidmain(){inti,n;doublesum,item,flag;flag=1;sum=0;printf(input:n\n);scanf(%d,&n);for(i=1;i=n;i++){item=(flag*i)/(2*i-1);flag=-flag;sum=sum+item;}printf(sum=%lf\n,sum);}6.某用户为购房办理商业贷款,选择了按月等额本息还款法,计算公式如下,在贷款本金(loan)和月利率(rate)一定的情况下,住房贷款的月还款(money)取决于还款月数(month)。客户打算在5—30年的范围内选择还清贷款的年限,想得到一张“还款年限—月还款额表”以供参考。编写程序,输入贷款本金loan和月利率rate,输出“还款年限—月还款额表”,还款年限的范围是5—30年,输出时分别精确到年和元。Money=loan*rate(1+rate)month/[(1+rate)month-1]答:程序:#includestdio.h#includemath.hvoidmain(){intlower,upper,month,year,loan;doublemoney,rate;lower=5;upper=30;printf(请输入贷款本金:loan\n);scanf(%d,&loan);printf(请输入月利率:rate\n);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(%d\t\t%lf\n,year,money);}}7.编写程序,输入一个正整数n,求∑2i(i从1到n),可调用pow()函数求幂。答:程序:#includestdio.h#includemath.hvoidmain(){inti,n;doublesum,item;sum=0;printf(input:n\n);scanf(%d,&n);for(i=0;i=n;i++){item=pow(2,i);sum=sum+item;}printf(sum=%lf\n,sum);}8.编写程序,输入一个正整数n,求e=∑i!(i从0到n)。要求定义和调用函数fact(n)计算n!,函数类型是double.答:程序:#includestdio.hdoublefact(intn);voidmain(){inti,n;doublesum;sum=0;printf(input:n\n);scanf(%d,&n);for(i=0;i=n;i++){sum=sum+fact(i);}printf(sun=%lf\n,sum);}doublefact(intn){inti;doubleproduct;product=1.0;for(i=1;i=n;i++){product=product*i;}returnproduct;}第三章作业1.#includestdio.h#includemath.hvoidmain(){inta,b,c;doubles,area,perimeter;printf(请输入三角形三条边:a,b,c\n);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=%.2lf\n三角形的面积area=%.2lf\n,perimeter,area);}}2、#includestdio.h#includemath.hvoidmain(){doublesalary,tax,rate;printf(请输入职工的月薪:salary\n);scanf(%lf,&salary);if(salary=850)rate=0;elseif(salary=1350)rate=5;elseif(salary=2850)rate=10;elseif(salary=5850)rate=15;elserate=20;tax=rate*(salary-850)/100;printf(职工应缴个人所得税tax=%.2lf\n,tax);}3、#includestdio.hvoidmain(){doublem,n,y;printf(请输入行驶里程(公里):m\n等待时间(分钟):n\n);scanf(%lf%lf,&m,&n);if((m+n/5.0)=3)y=10;elseif((m+n/5.0)=10)y=2*(m+n/5.0);elsey=2*10+3*(m+n/5.0-10);;printf(乘客应付车费y=%d\n,(int)((y*10+0.5)/10.0));}4、#includestdio.hvoidmain(){inti,n,A,B,C,D,E;doublescore,total;printf(请输入一个数n:\n);scanf(%d,&n);total=0;A=0;B=0;C=0;D=0;E=0;for(i=1;i=n;i++){printf(请输入第#%d个学生成绩:\n,i);scanf(%lf,&score);total=total+score;if(score=90)A++;elseif(score=80)B++;elseif(score=70)C++;elseif(score=60)D++;elseE++;}printf(平均成绩=%lf\n,total/n);printf(等级成绩个数:\nA=%d\nB=%d\nC=%d\nD=%d\nE=%d\n,A,B,C,D,E);}5、#includestdio.hvoidmain(){intyear;printf(21世纪所有的闰年:\n);for(year=2000;year3000;year++)if(year%4==0&&year%100!=0||year%400==0)printf(%d\n,year);}第四章作业2、#includestdio.h#includemath.hdoublefact(intn);voidmain(){inti,n;doublex,s;printf(请输入一个实数x:\n);scanf(%lf,&x);s=0;i=1;while((pow(x,i)/fact(i))=0.00001){s=pow(x,i)*1.0/fact(i)+s;i++;}printf(s=%.2lf\n,s);}doublefact(intn){inti;doubleresult;result=1;for(i=1;i=n;i++)result=result*i;returnresult;}3、#includestdio.hintmain(void){intx,a,count,sum;printf(请输入一个整数x:\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(位数=%d\n,count);printf(各个位数之和为:%d\n,sum);return0;}5、#includestdio.hvoidmain(){inta,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+…+aa…a=%d\n,s);}7、#includestdio.hv
本文标题:C语言程序设计(何钦铭)课后习题作业
链接地址:https://www.777doc.com/doc-4322537 .html