《C语言程序的设计(何钦铭)课后习题作业》由会员分享,可在线阅读,更多相关《C语言程序的设计(何钦铭)课后习题作业(52页珍藏版)》请在金锄头文库上搜索。
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
2、,sum=0;for(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,
5、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=sum+(i*i+1.0/i);printf(sum=%lfn,sum);5编写程序,输入一个正整数n,计算1-2/3+3/5-4/7
6、+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某用户为购房办理商业贷款,选择了按月等额本息还款法,计算公式如下,在贷款本金(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);scan
8、f(%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()函数求幂。答:程序:#include#includevoid main()int i,n;double sum,item;sum=0;printf(input:nn);scanf(%d,&n);for(
9、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);scanf(%d,&n);for(i=0;i=n;i+)sum=sum+fact(i);printf(sun=%lfn,sum);double fact(int n)int i;double
10、 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+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三角形的面积ar
11、ea=%.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=2850) rate=10;else if(salary=5850) rate=15;else rate=20;tax=rate*(salary-850)/100;printf(职工应缴个人所得税tax=%.2lfn,tax)
12、;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);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;A=0;B=0;C=0;D=0;E=0;for(i=1;i=90)