C语言程序设计何钦铭课后习题作业.docx
- 文档编号:10982853
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:42
- 大小:71.57KB
C语言程序设计何钦铭课后习题作业.docx
《C语言程序设计何钦铭课后习题作业.docx》由会员分享,可在线阅读,更多相关《C语言程序设计何钦铭课后习题作业.docx(42页珍藏版)》请在冰豆网上搜索。
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整除的所有整数的和,并在编程环境中验证该程序的运行结果。
答:
程序为:
#include
intmain(void)
{
inti,sum=0;
for(i=1;i<=100;i++)
if(i%6==0)sum=sum+i;
printf("sum=%d\n",sum);
return0;
}
4、对于给定的整数n(n>1),请设计一个流程图判别n是否为一个素数(只能被1和自己整除的整数),并分析该流程图中哪些是顺序结构、哪些是分支结构和循环结构。
第二章作业
1.编写程序,输入两个整数num和num2,计算并输出她们的和、差、积、商。
答:
程序:
#include
voidmain()
{
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元/千瓦时。
编写程序,输入用户的月用电量(千瓦时),计算并输出该用户应支付的电费(元)。
答:
程序:
#include
voidmain()
{
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()函数求幂。
答:
程序:
#include
voidmain()
{
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。
)
答:
程序:
#include
voidmain()
{
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项之和。
答:
程序:
#include
voidmain()
{
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]
答:
程序:
#include
#include
voidmain()
{
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()函数求幂。
答:
程序:
#include
#include
voidmain()
{
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.
答:
程序:
#include
doublefact(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.
#include
#include
voidmain()
{
inta,b,c;
doubles,area,perimeter;
printf("请输入三角形三条边:
a,b,c\n");
scanf("%d%d%d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
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、
#include
#include
voidmain()
{
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、
#include
voidmain()
{
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、
#include
voidmain()
{
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++;
else
E++;
}
printf("平均成绩=%lf\n",total/n);
printf("等级成绩个数:
\nA=%d\nB=%d\nC=%d\nD=%d\nE=%d\n",A,B,C,D,E);
}
5、
#include
voidmain()
{
intyear;
printf("21世纪所有的闰年:
\n");
for(year=2000;year<3000;year++)
if(year%4==0&&year%100!
=0||year%400==0)
printf("%d\n",year);
}
第四章作业
2、
#include"stdio.h"
#include"math.h"
doublefact(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、
#include"stdio.h"
intmain(void)
{
intx,a,count,sum;
printf("请输入一个整数x:
\n");
scanf("%d",&x);
sum=0;count=0;
if(x<0)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、
#include"stdio.h"
voidmain()
{
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、
#include"stdio.h"
voidmain()
{
inti,j,k,l,n;
printf("1-10000之间的水仙花数有:
\n");
for(n=10;n<10000;n++)
{
i=n/1000;
j=n/100%10;
k=n/10%10;
l=n%10;
if(i*1000+j*100+k*10+l==i*i*i+j*j*j+k*k*k+l*l*l)
{
printf("%-5d",n);
}
}
printf("\n");
}
9、
#include"stdio.h"
#include"math.h"
voidmain()
{
inti,n,m,j,k;
i=0;
printf("请输入一个多位整数:
\n");
scanf("%d",&n);
k=n;
while(k!
=0)
{
i++;
k=k/10;
}
k=n;
m=pow(10,i-1);
printf("逐位输出:
%d",n/m%10);
printf(",");
for(j=m/10;j>0;j=j/10)
{
n=k/j;
printf("%d",n%10);
if(j!
=1)
printf(",");
}
}
11、
#include"stdio.h"
voidmain()
{
intp,r,n,m,temp;
printf("请输入两个正整数:
\n");
scanf("%d%d",&n,&m);
if(n { temp=n; n=m; m=temp; } p=n*m; while(m! =0) { r=n%m; n=m; m=r; } printf("最大公约数为: %d\n",n); printf("最小公倍数为: %d\n",p/n); } 13、 #include"stdio.h" voidmain() { inti,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 longfac(intn,inta) { longsum; if(n==1) sum=a; else sum=(long)(pow(10,n-1)*a)+fac(n-1,a); return(sum); } main() { inta,n,i; longtemp,sum=0; printf("请输入一个数a,n\n"); scanf("%d%d",&a,&n); for(i=1;i<=n;i++) { temp=fac(i,a); sum+=temp; } printf("它们的和是=%ld",sum); return0; } 2. #include intcountdight(intnumber,intdight); intmain(void) { intnumber; printf("输入一个数: "); scanf("%d",&number); countdight(number,2); return0; } countdight(intnumber,intdight) { inta,count; count=0; while(number! =0) { a=number%10; number=number/10; if(a==dight) count++; } printf("%d\n",count); returncount; } 3. #include intfib(intn); intmain(void) { intm,n,num1; num1=1; printf("请输入两个正整数m和n(m>=1,n<=10000)\n"); scanf("%d%d",&m,&n); if(num1>=m&&num1<=n) fib(n); return0; } intfib(intn) { inti,x1,x2,x,t; x1=1; x2=1; for(i=0;i { x=x1+x2; printf("%5d",x); t=x; x1=x2; x2=t; } printf("\n"); returnx; } 5. #include voidis(intnum); intmain(void) { intn,m,num1; num1=1; printf("输入两个数m和n(m>=1,n<=1000)\n"); scanf("%d%d",&m,&n); if(num1>=m&&num1<=n) is(num1); return0; } voidis(intnum) { inti,j,k; for(num=1;num<1000;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. #include intreverse(intnumber); intmain(void) { intx; printf("请输入一个正整数: \n"); scanf("%d",&x); reverse(x); return0; } intreverse(intnumber) { while(number! =0) { printf("%d",number%10); number=number/10; } printf("\n"); returnnumber; } 第七章作业 1. #include voidmain() { inti,j=0,k=0,n,p,q,max,min; inta[10]; printf("请输入n(1 \n"); scanf("%d",&n); printf("请输入%d个数: \n",n); for(i=0;i { scanf("%d",&a[i]); min=a[0];max=a[9]; if(a[i] min=a[i]; k=i; } if(a[i]>max){ max=a[i]; j=i; } } p=a[9];a[9]=a[j];a[j]=p; q=a[0];a[0]=a[k];a[k]=q; for(i=0;i { printf("%8d",a[i]); printf("\n"); } 4. #include intmain(void) { intm,n,i,j,sum; inta[6][6],x[80]; printf("请输入m,n(1<=m,n<=6)的值: \n"); scanf("%d%d",&m,&n); printf("请输入%d个数: \n",m*n); for(i=0;i for(j=0;i scanf("%d",&a[i][j]); for(i=0;i for(j=0;j printf("%4d",a[i][j]); printf("\n"); } for(i=0;i sum=0; for(j=0;j sum=sum+a[i][j]; x[i]=sum; } for(i=0;i printf("%d\n",x[i]); return0; } 5. #include voidmain() { inta[3][3],max,max1,max2,i,j,flag=1; printf("请输入9个数: \n"); for(i=0;i<=2;i++) for(j=0;j<=2;j++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 课后 习题 作业