C语言程序设计何钦铭课后习题作业.docx
- 文档编号:30337435
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:26
- 大小:44.53KB
C语言程序设计何钦铭课后习题作业.docx
《C语言程序设计何钦铭课后习题作业.docx》由会员分享,可在线阅读,更多相关《C语言程序设计何钦铭课后习题作业.docx(26页珍藏版)》请在冰豆网上搜索。
C语言程序设计何钦铭课后习题作业
第一章习题
1.对c语吉来说,下列标示符中哪些是合法的,哪些是不合法的
Total»debug,Large&Tall,Counter1.begin答:
合法的:
debug、Counter1.begin不合法的:
TotalXLarge&Tallo
2、改写节中的流程图,求1一100中能被6整除的所有整数的和。
3.改写节中的程序,求1一100中能被6整除的所有整数的和,并在编程环境中验证该程序的运行结果。
答:
程序为:
SincludeO
intmain(void)
inti,sum二0;
for(i=l;i<=100;i++)
if(i%6==0)sum=suni+i:
printf('*suni=%d\n”,sum);return0:
4.对于给定的整数n(n〉l),请设计一个流程图判别n是否为一个素数(只能被1和自己整除的整数人并分析该流程图中哪些是顺序结构、哪些是分支结构和循环结构。
第二章作业
h编写程序,输入两个整数num和num2,计算并输出她们的和、差、积.商。
答:
程序:
#include<>
voidmainO
intnuml・num2,yl・y2,y3,y5;
doubley4:
printf("请输入两个数Jnumbnuin2\n'*);
scanf("%d%d'\&numb&num2);
yl=numl+num2:
y2=numl-num2;
y3二numl*num2;
y4=numl*num2;
y5=numl%num2:
printf("num].num2和yI=%d\nnuniI.num2差y2=%d\nnuml.num2积y3=%d\nnuml.nuni2商y4=%lf\nnuml.nuni2余y5二%d\n",yl.y2・y3.y4,y5);
2.为了信导居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个"阶梯”:
月用电量50千瓦时以内的,电价为元/千瓦时:
超出50千瓦时的用电*,电价上调元/千瓦时。
编写程序,綸入用户的月用电*(千瓦时),计算并输出该用户应支付的电费(元人
答:
程序:
JtincludeOvoidmainO
doubleX.y;
printfr请输入月用电量:
x\n--):
scanfC%lf",&x):
if(X〈二50){
y-*x;
printf('*电费y二%If'njy);
else{
y=*x;printf("应支付电费y=%lf\rr.y);
3.编写程序,输入实数X和正整数m计算才…不允许调用POW()函数求轟。
客:
程序:
JtincludeO
voidmainO
doublex.power;
inti.n:
printf("请输入:
x.n'rT);
scanf;
power=;
for(i=l;i<=n;i++)
power=pcwer*x;
printf("power(x.n)power);
4.编写程序,输入两个正整数m利n,求E(f+l/i)(i从m到n。
)答:
程序:
#include<>
voidmainO
inti,m・n;
doublesum;
sum二0;
printf("input:
m,n\n'');scanf,&m,&n);
for(i=m;i<=n;i++)sum=sum+(i*"i);
printfC"suni=%lf\n'\sum);
5.编写程序,输入一个正整数m计算1-2/3+3/5-4/7+5/9-6/11+…的前n项之和。
答:
程序:
JtincludeO
voidmainO
inti.n;doublesum.item,flag;flag=l;sum=O;
printf("input:
n\n");scanf("%d*\&n);
for(i=l;i<=n;i++){iteni=(flag*i)/(2*i'l);flag=-flag;
suni=sum+item:
}
printfC"suni=%lf\n'\sum);
6.某用户为购房办理商业贷款,选择了按月等额本息还款法,计算公式如下,在贷款本金(loan)和月利率(rate)—定的情况下,住房贷款的月还款(money)取决于还款月数(month)。
客户打算在5-30年的范圈内选择还清贷款的年限,想得到一张“还款年限一月还款额表”以供参考。
编写程序,输入贷款本金loan和月利率rate.输出“还款年限一月还款额表”,还款年限的范围是5—30年,输出时分别精确到年和元。
Money=loan*rate(l+rate)*^"V[(l+rate)
答:
程序:
JtincludeO
#include<>
voidmainO
intlower.upper.month,year.loan;doublemoney,rate:
lower=5;upper二30;
printf("请输入贷款本金:
loan\n*);scanfJ&loan);
printf("请输入月利率:
rate\n"):
scanfC%lf"・&rate);
printfr还款年限\t月还款额\n-);for(year=lower;year<=upper;year++)
month=year*l2:
money=(loan*rate*pow((1+rate)♦month))/(pow((l+rate),month)-1);px'intf(\t%1f\n".year,money);}
7.编写程序,输入一个正整数!
b求E2'(i从1到n),可调用poff()函数求專。
答:
程序:
SincludeO
JtincludeOvoidmainO
inti.n;
doublesum.item;
suofO;
printf("input:
n\n");scanf&n):
for(i=0;i<=n;i++)
item=pow(2,i);
suni=sum+item;}
printfsum);
&编写程序,输入一个正整数m求e=Ei!
(i从0到n)・要求定义和调用函数fact(n)计算n!
函数类型是double.
答:
程序:
JtincludeO
doublefact(intn);
voidmainO
inti,n;
doublesum;
sum=0;
printf("input:
n\n");scanf("%d*\&n);
for(i=0;i<=n;i++)
sum=sum+fact(i);}printf(''sun=%1f\n*,sum);
doublefact(intn)
inti:
doubleproduct;product=;
for(i=l;i<=n;i++){
product=product*i;}returnproduct;
第三章作业
SincludeO
JtincludeO
voidmainO
intabc;
doubles.area,perimeter;
printfC*请输入三角形三条边:
a,b,c\n'*);scanf("%d%d%d*,&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
a,
perimeter=a+b+c;
s=(a+b+c)/;area=sqrt(s*(s-a)*(s-b)*(s-c));
printf三角形的周长perimeter=%.21f\n
area=%.21f\n"・perimeter,area);
角形的面积
2、
JtincludeO
ftincludeOvoidmainO
doublesalary,tax,rate;
printf("请输入职工的月薪:
salaryXn"):
scanf("%lf"・&salary):
if(salary<=850)rate=0;
else
if(salary<=1350)
rate=5;
else
else
else
if(salary<=2850)
if(salary<=5850)rate=20;
rate二10;rate=15;
tax二rate*(salary-850)/100;
printf("职工应缴个人所得税tax=%.21f\n*\tax);
3、
SincludeOvoidmainO
doublem.n.y;
printf("请输入行驶里程(公里):
m'n等待时间(分钟):
n'rf):
scanf■•&nb&n);
if((ni+n/<=3)y二10;
elseif((m+n/<=10)y-2*(m+n/:
elsey=2*10+3*(m+n/;;
printf("乘客应付车费y二%d\n",(int)((y*10+/):
4.
#include<>voidmainO
doubIescore,tota1;
printf("请输入一个数n:
\n")scanf&n):
total=0;A=0;B=0;C=0;D二0;E二0;for(i=l;i<=n;i++)
printf("请输入第1#%(1个学生成绩:
\n*,i):
scanfC'%1f"・&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=WC=%d\nD=%d\nE=%d\n\A,BX,D,E);
5.ftincludeOvoidmainO
intyear:
printf(”21世纪所有的闰年:
\rf);
for(year=2000;yearOOOO;year++)
if(year%4==0&&year%100!
=0||year%400==0)
printf("%d\n,year);
第四章作业
2.
^include**
廿include"
doublefact(intn);
voidmainO
inti,n;doublex.s;
printf("请输入一个实数X:
\n"):
scanf("%lf"・&x):
s=0;i=l;
while((pow(x,i)/fact(i))〉={s=pow(xti)*fact(i)+s;i++;
printf("s=%.21f\n*\s);
doublefact(intn)
inti:
doubleresult;result=l;
for(i=l;i<=n;i++)
result=result*i;
returnresult;
3.
Sinclude**
intmain(void)
intx,a,count,sum:
printf("请输入一个整数X:
\n");
scanf&x):
sum=0;count=0;
if(x<0)x=-x;
do{
a=x%10;sum=sum+a;
x=x/10;
count++;
}while(x!
=0);
printfC*位数二%d\n",count);
printf("各个位数之和为:
%d\n'\suni);
return0:
5.^include**voidmainO
inta,n.i=hs=0,t=0;
printf("请输入两个正整数a.n=:
\n")
scanfC%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**voidmainO
intijk.l.n;
printf("1-10000之间的水仙花数有:
\n");
for(n-lO:
n<10000:
n++)
i=n/1000:
j=n/100%10;
k=n/10%10:
l=n%10;
if(i*1000^j*100+k*l0+l—
9、
廿include"廿include"voidmainO
inti,n.m.j.k;
i=0;
printf("请输入一个多位整数:
\n"):
scanf:
k=n;
while(k!
=0)
k=k/10;
k=n:
m=pow{10,iT);
printfC*逐位输出:
%d'',n/m%10);printf(",");
for(j=in/10;j>0;j=j/10)
n=k/j:
printf;
if(j!
=l)
printf(",*):
11、
^include**voidmainO
intp,r,n,nittemp:
printf("请输入两个正整数:
\n");scanfC*%d%d",&n,&m);if(n while(ni! =0)r=n%m; n=m; m=r: printf("最大公约数为: %d\n\n);printf("最小公倍数为: %d\n\p/n); 13、 Jtinclude**voidmainO inti,j; for(i=0;i<=3;i++){for(j=0: j<=2-i: j-H-)printf(""): for(j=0;j<=2*i: j++)printf("*'*); for(i=0;i<=2;i++){for(j=0: j<=i: j++)printf(""): for(j=0: j<=4-2*i;j++)printf("***): printfC'\n"); 第五章 SincludeO Sinclude<> longfac(intn.inta) longsum; if(n==l) sum=a; else suni=(long)(pow(10,n-l)*a)+fac(n-l,a): return(sum);mainO inta.n,i: longtemp・sum=0; printf("请输入一个数a,n\n"): scanfC%d%d",&a,&n);for(i=l;i<=n;i++) temp=fac(i,a);sum+=temp; printf("它们的和是二%Id",sum); return0: 2. #include<> intcountdight(intnumber,intdight): intmain(void) intnumber: printf("输入一个数「); scanf&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++; printfC*%d\n*,count); returncount; 3. JtincludeO intm.n.numl; numl=l; printf(**请输入两个正整数m和n(ni>=1,n<=10000)\n"*);scanf■&nh&n); if(numI>-m&&nuni1<=n) fib(n); return0: int inti,xl.x2tX,t; xl=l; x2二1; for(i=0;i x=xl+x2; printfC*%5d'',x): t=x; xl=x2; x2=t; printf(*\n"); returnx: 5. JtincludeOvoidis(intnum): intmain(void) intnmnuml; numl=l; printfC*输入两个数m和n(m>=l,n<=1000)Xn"*);scanfC*%d%d"; if(numl>-tn&&nunil<=n) is(numl); return0: voidis(intnum) inti,j,k; for(nuni=l: num i=num/100: j=num/10%l0;k=num%10: if(i*100^J*l0+k*l==i*i*i-^j*j*j+k*k*k) printf(*%5d",num); & #include<> intreverse(intnumber); intmain(void) intX; printf("请输入一个正整数: \n"): scanf&x): reverse(X); return0: intreverse(intnumber) while(number! =0)printf(*%d'\number%10): number=number/I0; returnnumber; 第七章作业 JtincludeOvoidmainO inti,j=O,k=O,n,p.q.rnax.min; inta[10]: printf("请输入n(l \n");scanf&n); printfC*请输入%d个数: \nn);for(i=0;i min=a[0];max=a[9]: if(a[i] k=i: if(a[i]>max){max=a[i]; •• J=l: p=a[9]: a[9]=a[j]: a[j]=p: q=a[0]: a[0]=a[k]: a[k]=q; for(i=0;i 4・ JtincludeO intmain(void) intm,n.i.j.sum;inta[6][6],x[80]: printf(**请输入m.n(l<=nbn<=6)的值: W);scanf■&ni,&n); printf("请输入%d个数: \n*\m*n); for(i=0;i for(j=0;i scanf[j]); for(i=0;i for(j=0: j printf("%4d".a[i][j]): printf(壮n"); for(i=0;i5;i++){ suofO; for(j=0;j for(i=0;i 5. SincludeOvoidmainO inta[3][3]»max,maxi.max? i>j,flag=l;printfC*请输入9个数: \十); for(i=0;i<=2;i++) for(j=0;j<=2: j卄) scanfC*%d*\&a[i][j]); for(i=0;i<=2: i++) max=a[i][0]: for(j=0;j<=2;j++) if(a[i][j]>niax) max=a[i][j]: maxl=j; for(max2=0;max2<=2;max2++) if(max>a[maxI][max2]) flag=0;break; if(flag==l)printf点是%d\n*,a[max2][maxi]);if(flag==0)printf(''nonumber'n"); flag=l; 8. JtincludeO JtincludeOintmain(void) inti,n;chars[80]: printf(**请输入n(n<80)的值: \n*);scanfJ&n); printf("请输入%d个字符: \n\n): for(i=0;i for(i=0;s[i]! ='\0*;i++) if(s[i]HA'&&s[i]<=2)s[i]=155-s[i]; for(i=0;s[i][='\0*: i++)putchar(s[i]);printf(*\n");return0: JtincludeO SincludeO intmain(void) inti,n: charf.s[80]; printf("Enterastring: : /*输入字符串*/ i=0; while((s[i]=getchar())! ='\n')i++: s[i]="\0': n=0; for(i=0;s[i]! ='W;i++){if(s[i]<=7f&&s[i]>=20)s[i]=s[i++]: else break; for(i=0;s[i][='\0';i++)putchar(s[i]); return0: 第八章作业 ftincludeOintmain(void) charch;inta[10];inti,j,temp; printf("请输入10个整数: \r/);for(i=O;i<10;i++) scanfC'%d*,&a[i]); printf("请输入A或D: *); scanf("%c*\&ch); if(ch=='A*) for(i=0;i<9;i卄) for(j=i+l: j<10;j++) temp=a[i];a[i]=a[j]: a[j]=temp; for(i=0;i<10: i++) elseif(ch"='D') for(i=0: i<9;i++) for(j=i+bj<10;j++) temp=a[i]: a[i]=a[j]: a[j]=tenip; for(i=0;i i++) return0: 5. JtincludeO JtincludeO voidmcopy(char*s.intm): intmain(void) inti1; charstrElOO]: printf("请输入您要输入的字符串: ”);gets(str);printfr您将从原字符串的第m位复制新字符串,请输入m: \n"): scanf: printfr复制后,新的字符串为「); mcopy(str.m);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 课后 习题 作业
![提示](https://static.bdocx.com/images/bang_tan.gif)