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

上传人:b****6 文档编号:8031604 上传时间:2023-01-28 格式:DOCX 页数:36 大小:70.64KB
下载 相关 举报
C语言程序设计何钦铭课后习题作业.docx_第1页
第1页 / 共36页
C语言程序设计何钦铭课后习题作业.docx_第2页
第2页 / 共36页
C语言程序设计何钦铭课后习题作业.docx_第3页
第3页 / 共36页
C语言程序设计何钦铭课后习题作业.docx_第4页
第4页 / 共36页
C语言程序设计何钦铭课后习题作业.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

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

《C语言程序设计何钦铭课后习题作业.docx》由会员分享,可在线阅读,更多相关《C语言程序设计何钦铭课后习题作业.docx(36页珍藏版)》请在冰豆网上搜索。

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

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++)

scanf("%d",&a[i][j]);

for(i=0;i<=2;i++)

{

max=a[i][0];

for(j=0;j<=2;j++)

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

当前位置:首页 > 高等教育 > 哲学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1