C语言程序设计教材答案.docx
- 文档编号:17963582
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:53
- 大小:113.21KB
C语言程序设计教材答案.docx
《C语言程序设计教材答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计教材答案.docx(53页珍藏版)》请在冰点文库上搜索。
C语言程序设计教材答案
第一章:
程序设计基础知识
一、单项选择题
1.C2.B3.B4.C5.D6.A7.C8.A
二、填空题
1.判断条件
2.面向过程编程
3.结构化
4.程序
5.面向对象的程序设计语言
6.基本功能操作、控制结构
7.有穷性
8.直到型循环结构
9.算法
10.可读性
11.模块化
12.对问题的分解和模块的划分
三、应用题
1、用如何一种熟悉的方法描述求N个数中最小数的算法。
2、用枚举法设计例1-4中百钱买百鸡问题的算法,并用流程图表示;
3分别用递推和递规两种算法计算斐波那契数列:
f(n+2)=f(n+1)+f(n),f
(1)=f(0)=1
的前30项,并用流程图表示
a)递推b)递规
递推公式:
f(n)=f(n-1)+f(n-2)递规公式:
f(n)=f(n-1)+f(n-2)
f
(1)=f(0)=1
b)递推b)递规
n=30
当n>0
p=f(n)
输出p
n=n-1
/*f(n)*/
n>1
YN
r=f(n-1)+f(n-2)r=1
返回r
4:
一般迭代法:
迭代公式:
x1=1-x03,收敛条件:
|x0/x1|<=1e-5
牛顿迭代法:
f(x)=x3-x-1,f’(x)=3x2-1
迭代公式:
x1=x0-f(x0)/f’(x0)
收敛条件:
|x0/x1|<=1e-5
5:
分子a,分母b,下一项分子c,某项t=a/b,和s。
第一项:
a=2,b=1,c=a,t=a/b,s=t
第i项:
c=a+b,b=a,a=c,t=a/b,s=s+t
1-26:
6
78:
第二章:
C程序的基本结构
一、单项选择题
1.B2.D3.C4.B5.A6.A7.B8.C
二、填空题
1.主函数
2.编译系统
3.函数函数
4.输入输出
5.头文件
6..obj
7.库函数
8.文本
三、应用题
5.标识符:
au_to,_auto,file,m_i_n,hello,ABC,SIN90,x1234,until,
cos2x,s_3
关键字:
sizeof
非关键字,非标识符:
3id,-min,call..menu,n*m,x.y,1234,1234hello,s+3
第三章习题参考答案
一、单项选择题
1.D2.B3.A4.C5.C
6.D7.B8.D9.B10.C
11.A12.D13.C14.C15.C
16.B17.B18.C19.C20.D
21.A22.D23.D24.D,A25.C
26.A
二、填空题
1.补码
2.±(10-308~10308)15~16位
3.实型
4.单目从右向左
5.函数调用
6.65,89
三、应用题
1.109
2.11
0
0
12
1
3.区别是:
求负:
单目,右结合
减法:
双目,左结合
取址:
单目,右结合
按位与:
双目,左结合
第四章习题参考答案
一、单项选择题
1.D2.C3.D4.A5.D
6.B7.A8.C9.B10.B
二、 填空题
1.一条;
2.5.169000
3.
(1)-2002500
(2)i=-200,j=2500
(3)i=-200
j=2500
4.a=98,b=765.000000,c=4321.000000
5.三种可能的输入是:
(1)
(1) 100<回车>25.81<回车>1.89234<回车>
(2)
(2) 100<空格>25.81<空格>1.89234<回车>
(3)(3) 100
6.0,0,3
7.3
8.输入语句的格式是:
scanf("%lf%lf%lf",&a,&b,&c);
9.1313.00000013.000000
10.两种方法:
(1)增加一个临时变量t。
t=a;a=c;c=t;
(2)a=a+c;c=a-c;a=a-c;
三、编程题
1
main()
{printf("***************************\n");
printf("verygood!
\n");
printf("***************************\n");
}
2
main()
{inthour,min;
scanf("%d,%d",&hour,&min);
min=60*hour+min;
printf("%d\n",min);
}
3
main()
{floatc,f;
scanf("%f",&c);
f=32+9.0*c/5;
printf("%f\n",f);
}
按题目要求分别输入-10,0,15和34计算相应的华氏温度。
4
main()
{floatr,l,s;
scanf("%f",&r);
l=2*3.141592*r;
s=3.14159*r*r;
printf("r=%f,l=%f,s=%f\n",r,l,s);
}
5
#include
main()
{floata,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
if((a+b>c)||(a+c>b)||(b+c>a))/*判断两边之和大于第三边*/
{s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));/*调用开方函数,计算面积*/
printf("area=%f\n",area);
}
}
6
main()
{inta=3,b=4,c=5;
floatd=1.2,e=2.23,f=-43.56;
printf("a=%3d,b=%-4d,c=**%d\n",a,b,c);
printf("d=%3.1f\ne=%6.2f\nf=%-10.4f**",d,e,f);
}
7
main()
{inta,b,c,t;
scanf("%d,%d,%d",&a,&b,&c);
printf("a=%d,b=%d,c=%d\n",a,b,c);
t=a;
a=b;
b=c;
c=t;
printf("a=%d,b=%d,c=%d\n",a,b,c);
}
8
main()
{floata,b,c,aver;
printf(“Pleaseinputthreenumbers:
\n”);
scanf("%f,%f,%f",&a,&b,&c);
aver=(a+b+c)/3;
printf("averageof%5.2f,%5.2fand%5.2fis%5.2f",a,b,c,aver);
}
9
main()
{inta,b,c,x,y;
scanf("%d%d%d",&a,&b,&c);
x=a*b;y=x*c;
printf("a=%d,b=%d,c=%d\n",a,b,c);
printf("x=%d,y=%d\n",x,y);
}
第五章参考答案
一、单项选择题
1.B2.D3.C4.B5.B6.D7.A8.B9.D
二、填空题
1.非00
2.k==0
3.if(x>4||x<-4)printf("%d",x);elseprintf("error!
");
或:
(x>4||x<-4)?
printf("%d",x):
printf("error!
");
4.if((x%2!
=0)&&((x>=1&&x<=10)||(x>=200&&x<=210))):
printf("d%",x);
5.1
6.K=1
7.10!
Right!
11
8.$$$a=0
9.2,1
10.a>0&&a
三、编程题
1
main()
{inta,b,c;
scanf("%d,%d,%d",&a,&b,&c);
if((a>b)&&(a>c))
if(b elseprintf("min=%d\n",c); elseif((a elseprintf("min=%d\n",b b: c); } 2: 本程序使用goto语句,仅供参考,请勿模仿。 main() {longa; intk; scanf("%ld",&a); printf("%ld\n",a); loop: if(a! =0) {k=a%10; printf("%d",k); a=a/10; gotoloop; } } 3 (1)用简单的if结构 main() {intx,y; scanf("%d",&x); if(x<0&&x>-5)y=x; if(x<5&&x=0)y=x-1; if(x>=5&&x<10)y=x+1; printf("%d,%d\n",x,y); } (2)用嵌套的if结构 main() {intx,y; printf("Pleaseinputx: -5-----10\n"); scanf("%d",&x); if(x<5) if(x<0) {if(x>-5)y=x;} elsey=x-1; else if(x<10)y=x+1; printf("%d,%d\n",x,y); } (3)用if-else分支结构 main() {intx,y; scanf("%d",&x); if(x<0&&x>-5)y=x; elseif(x<5&&x>=0)y=x-1; elseif(x>=5&&x<10)y=x+1; printf("%d,%d\n",x,y); } (4) 用switch()结构 main() {intx,y,k; printf("Pleaseinputx: -5-----10\n"); scanf("%d",&x); if(x<0)k=-1; elsek=x/5; switch(k) {case1: y=x+1;break; case0: y=x-1;break; case-1: y=x;break; } printf("%d,%d\n",x,y); } 4 main() {inty0,m0,d0,y1,m1,d1,age; printf("Pleaseinputcurrentday: \n"); scanf("%d,%d,%d",&y1,&m1,&d1); printf("Pleaseinputbirthday: \n"); scanf("%d,%d,%d",&y0,&m0,&d0); age=y1-y0; if(m1 elseif(m1==m0&&d1 printf("age=%d\n",age); } 5 main() {inta,b,c; printf("Pleaseinputa,b,c: \n"); scanf("%d,%d,%d",&a,&b,&c);/*输入三角形的三条边*/ if(a+b>c&&a+c>b&&b+c>a)/*判断两边之和大于第三边*/ if(a==b&&b==c)/*判断等边三角形*/ printf("等边三角形\n"); elseif(a==b||a==c||b==c)/*判断等腰三角形*/ printf("等腰三角形\n"); elseif(a*a+b*b=c*c||a*a+c*c=b*b||b*b+c*c=a*a)/*判断直角三角形*/ printf(“直角三角形\n”); elseprintf("一般三角形\n"); elseprintf("不能组成三角形\n"); } 6 main() {intx,y,k; scanf("%d",&x); k=x/10; switch(k) {case1: y=1;break; case2: y=2;break; case3: y=3;break; case4: y=4;break; case5: y=5;break; default: y=6;break; } printf("x=%d,y=%d\n",x,y); } 7 main() {intm,k; floatn; printf("Pleaseinput购买金额m: \n"); scanf("%d",&m); k=m/100; switch(k) {case0: n=0;break; case1: n=0.015;break; case2: n=0.025;break; case3: n=0.035;break; case4: n=0.045;break; case5: n=0.055;break; default: n=0.06;break; } printf("%5d,%7.2f,%7.2f",m,m-n*m,m*n); /*输出购买金额、实际支付金额和返还金额*/ } 8: 本程序使用goto语句实现,仅供参考,请勿模仿。 main() {intyear=1995,month,days=0; loop: if(year<=2000) { days=days+7*31+4*30+28;/*每年增加365天*/ if(year%4==0&&year%100! =0||year%400==0)/*判断闰年*/ days++; year++; gotoloop; } days=days-21;/*仅计算到2000年12月10日*/ printf("Thetotaldaysis: %d\n",days); } 9: 本程序使用goto语句实现,仅供参考,请勿模仿。 main() {longa; intb,k=0,m; printf("Pleaseinputa<99999: \n"); scanf("%ld",&a); b=a%10; if(a/10==0) {k=1; printf("%ld\n",a); } else {printf("%d\n",b); m=a; loop: if(m! =0) {k++; m=m/10; gotoloop; } } printf("%ld,%d\n",a,k); } 10: 本程序使用goto语句实现,仅供参考,请勿模仿。 #include main() {longa,m,n=0; inti=0,k; scanf("%ld",&a); m=a; loop: if(m! =0) {k=m%10; k=k+2; if(k>=9) k=k%10; m=m/10; n=k*pow(10,i)+n; i++; gotoloop; } printf("%ld,%ld\n",a,n); } 第六章习题参考答案 一、单选题 1.B2.C3.C4.B5.C6.B7.C8.A 二、填空题 1.无穷 2.8 3.20 4.11 5.2.400000 6.*#*#*#$ 7.852 8.①floatd=1.0②k++③k<=n 9.①x>=0②x 三、编程题 1. main() {inti,k,s=0; for(i=1,k=1;i<=101;i+=2,k*=-1) s=s+i*k; printf("%d\n",s); } 2. main() {inti,k,p=0,n=0,s=0; for(i=1;i<=10;i++) {printf("i=%d: ",i); scanf("%d",&k); s+=k; if(k>0)p+=k; if(k<0)n+=k; } printf("s=%d,p=%d,n=%d\n",s,p,n); } 3. main() {inti; printf("PleaseEnterNumber: "); scanf("%d",&i); while(i>0) {printf("%d,",i%10); i/=10; } } 4. (1)注释: 此题的关键是要保证乘积不超过int型允许的最大数。 由于仅要求结果的最后三位,被乘数的后三位参加运算;则将乘数后三位的每一位分别和被乘数相乘,然后部分积再相加。 main() {inti,a,b,c1,c2,c3,y,y1,y2,y3; printf("PleaseEntera,b: "); scanf("%d,%d",&a,&b); y=a; c1=a%10;/*c1保存乘数个位上的数*/ c2=a/10%10;/*c2保存乘数十位上的数*/ c3=a/100%10;/*c3保存乘数百位上的数*/ for(i=1;i {y%=1000;/*被乘数保留三位*/ y1=y*c1;/*被乘数和乘数个位相乘*/ y2=y*c2%100;/*被乘数和乘数十位相乘,结果保留两位*/ y3=y*c3%10;/*被乘数和乘数百位相乘,结果保留一位*/ y=y1+y2*10+y3*100;/*部分积相加*/ } printf("%d\n",y%1000); } (2)解法2。 main() {inta,b,k; longlast; scanf("%d%d",&a,&b); for(last=k=1;k<=b;k++) last=last*(a%1000)%1000; printf("last=%ld\n",last); } 5. 略 6. (1)注释: 变量t储存阶乘,60! 已经超出单精度实型数的范围,所以t被说明为double型。 main() {inti=1; doublet=1; floate=0; do {t=t*i++; e=e+1./t; }while(i<=60); printf("%f\n",e); } (2) main() {inti=1; doublet=1; floate=0; do {e=e+1./t; t=t*++i; }while(1/t>=1.0e-4); printf("%f\n",e); } 7. main() {intn,x1,x2,x3,xn,i; printf("Entern: "); scanf("%d",&n); if(n<=3) xn=n; else {x1=1;x2=2;x3=3; for(i=4;i<=n;i++) {xn=x1+x2+x3; x1=x2; x2=x3; x3=xn; } } printf("Xn=%d\n",xn); } 8. main() {inti,j,k,l; for(i=1;i<=9;i++) for(j=0;j<=9;j++) {if(j==i)continue; for(k=1;k<=9;k++) {if(k==i||k==j)continue; for(l=0;l<=9;l+=2) {if(l==i||l==j||l==k)continue; printf("%d\n",i*1000+j*100+k*10+l); } } } } 9. 注释: 题中水果的价格以元计价,为了避免计算中出现实数,则改为以角为计价单位。 main() {inti,j,k; for(i=0;i<=100;i++) for(j=0;j<=100-i;j++) if(i*4+j*40+(100-i-j)*2==400) printf("apple=%dwatermelon=%dpear=%d\n",i,j,100-i-j); } 10. main() {inti,j,n; printf(”\nPleaseEntern: ”); scanf(”%d”,&n); for(i=1;i<=n;i++) {for(j=1;j<=n+i-1;j++) if(j>n-i)printf(”*”); elseprintf(””); printf(”\n”); } for(i=1;i {for(j=1;j<=2*n-i-1;j++) if(j>i)printf(”*”); elseprintf(””); printf(”\n”); } } 第七章习题参考答案 一、单选题 1.B2.B3.C4.C5.A6.A7.B8.A 二、填空题 1. 1 2 4 8 16 32 64 128
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 教材 答案
![提示](https://static.bingdoc.com/images/bang_tan.gif)