《C语言程序设计》清华大学出版社书后习题参考答案.docx
- 文档编号:12188307
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:39
- 大小:21.54KB
《C语言程序设计》清华大学出版社书后习题参考答案.docx
《《C语言程序设计》清华大学出版社书后习题参考答案.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》清华大学出版社书后习题参考答案.docx(39页珍藏版)》请在冰豆网上搜索。
《C语言程序设计》清华大学出版社书后习题参考答案
第一步部分简单程序设计
P5
5.课堂实践
(1)
#include
main()
{ printf(“**********\n”);
printf(“**********\n”);
printf(“**********\n”);
}
(2)
#include
main<>/*main()*/
{
printf(“Hello,World.\n);
}
P9
5.课堂实践
(1)
#include
main()
{
chara=116,b=119,temp;
printf(“a=%c,b=%c\n”,a,b);
temp=a;
a=b;
b=temp;
printf(“a=%c,b=%c\n”,a,b);
}
(2)功能:
交换x,y的值;
#include
main()
{intx,y;
x=5;y=10;
x=x+y;
y=x-y;
x=x-y;
printf(“%d,%d”,x,y);
}
(3)c:
dec=120,oct=170,hex=78,ASCLL=x
4、输出内容向左靠齐
12
12
3.14159260000000000000000000000000
3.14159260000000000000000000000000
P11
5.课堂实践
(1)
①3.0-(3.0*4)/(4+2)
#include
main()
{floatx;
x=3.0-(3.0*4)/(4+2);
printf(“%f”,x);
}
②1/2*(2*3+2/(2*2*2))
#include
main()
{floatx;
x=1/2*(2*3+2/(2*2*2));
printf(“%f”,x);
}
(2)%
(3)B
(4)
#include<stdio.h>
main
{
x,y,z;/*没有数据类型*/
x+y=5;/*赋值表达式左边不能是表达式,应为一个变量*/
printf("x+y=,z=",x,y,z);/*没有输入格式符*/
}
P13
5.课堂实践
(1)-14
(2)
(1)x=4,8
(2)8,8
(3)
#include
mian()
{intx=10;
printf(“当x变量的初值为%d时,进行+=运算后的结果为%d”,x,x+=x);
printf(“当x变量的初值为%d时,进行-=运算后的结果为%d”,x,x-=x);
printf(“当x变量的初值为%d时,进行*=运算后的结果为%d”,x,x*=x);
printf(“当x变量的初值为%d时,进行/=运算后的结果为%d”,x,x/=x);
}
P13
习题
一、
1、C2、C3、A
二、
5,-4
6,12,20
P18
5.课堂实践
(1)
#include
main()
{intx,y;
scanf(“%d%d”,&x,&y);
if(x>y)
printf(“x>y”);
elseif(x printf(“x else printf(“x=y”); } (2) #include main() {intx,y; scanf(“%d”,&x); if(x>0)y=1; if(x==0)y=0; if(x<0)y=-1; printf(%d”,y); } P21 5.课堂实践 (1)C (2)B(3)B(4)0.500000 (5)不能: #include main() { intx,y,z,max; if(z>y) {if(z>x) max=z; elsemax=x;} elseif(y>x) max=y; elsemax=x; printf("\nmax=%d",max); } P23略 P24 习题 一、1、D2、D3、C4、D5、B6、B7、B 二、1、y%2==02、&&||! 3、(x>2&&x<3)||(x<-10) 4、(ch>=’A’&&ch<=’z’)ch=ch-32; 5、1,0 6、F 三、 1、 #include main() {inta; scanf("%d",&a); if(a%5==0&&a%7==0) printf("yes"); elseprintf("no"); } 2、 #include main() {intm; scanf("qingshuru: %d",&m); if((m%4==0&&m%100! =0)||m%400==0) printf("%dshirunnian",m); elseprintf("%dbushirunnian",m); } 3、 #include #include main() {floata,b,c,dise,x1,x2,realpart,imagpart; scanf(“%f%f%f”,&a,&b,&c); printf(“Theequation”); if(fabs(a)<=0) printf(“isnotaquadratic\n”); else {dise=b*b-4*a*c; if(dise<=0) printf(“hastwoaqualroots: %8.4f\n”,-b/(2*a)); else if(dise>0) {x1=(-b+sprt(disc))/(2*a); x2=(-b-sprt(disc))/(2*a); printf(“hasdistinctrealroots: %8.4fand%8.4f\n”,x1,x2); } else { realpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf(“hascomplexroots: \n”); printf(“%8.4f+%8.4f\n”,realpart,imagpart); printf(“%8.4f-%8.4f\n”,realpart,imagpart); } P28 5、课堂实践 (1) #include main() { intkey; charch; printf("*****\n"); scanf("%d",&key); printf("? ? ? ? ? ? ? ? : \n"); while((ch=getchar())! ='\n') (ch-key)>122? putchar(ch+122-33-key): ((ch-key)<33? putchar(ch-122-key): putchar(ch-key)); } (2) #include main() {inti;/*i没有赋值*/inti=1; printf(“outputtennumbers: \n”); while(i<=10) printf(“%3d”);/*没有输出参数*/{printf(“%3d”,i); i++;/*应加{}组成复合语句*/i++;} } P30 4.课堂实践 (1) #include main() {inta,s=0; do {scanf(“%d”,&a); s+=a; } while(a! =-1); printf(“%d”,s); } (2) #include main() {inta,b,r,t,maxB; scanf(“%d%d”,&a,&b); if(a {t=a;a=b;b=t;} r=a%b; while(r! =0) {a=b;b=r;r=a%b;} maxB=b; printf(“maxBis%d”,maxB); } P33 6.课堂实践 (1)4 (2) ① #include main() { inti,j; printf("**九九乘法表**"); for(i=1;i<10;i++) {for(j=1;j<=i;j++) printf("%d*%d=%d\t",j,i,i*j); printf("\n"); } } ② #include main() { inti=1,j; while(i<10) {j=1; while(j<=i) {printf("%d*%d=%d\t",j,i,i*j); j++;} printf("\n"); i++; } } ③ #include main() { inti=1,j; do {j=1; do {printf("%d*%d=%d\t",j,i,i*j); j++; } while(j<=i); printf("\n"); i++; } while(i<10); } (3) #include main() {intx; scanf("%d",&x); while(x>0) {printf("%d",x%10); x/=10; prtntf(""); } } P33 习题【参考答案】 一、1、D2、C3、A4、A5、D6、C7、D8、D9、C10、B 二、1、362、34、135、i<=10if(j%6! =0) 三、 1、 #include main() {inta,sum=0; for(a=1;a<=100;a++) if(a%2==1) sum=sum+a; printf("%d",sum); } 2、 #include main() {inti,j,s; intt; intk[100]; for(i=1;i<=1000;i++) { s=0;t=0; for(j=1;j if(i%j==0) {s+=j;k[t++]=j;} if(i==s) { printf("%dshiwanshou%d=",i,i); for(;t>0;) if(t>1) printf("%d+",k[--t]); elseprintf("%d",k[--t]); printf("\n");} } 3、 #include main() {inty,t=0; for(y=1008;y<=2008;y++) if(y%4==0&&y%100! =0||y%400==0) {printf(“%d\t”,y); t++; if(t%5==0) printf(“\n”); } } 4、 #include main() {intt,i,x,max,min; scanf(“%d”,&t); max=min=t; for(i=1;i<10;i++) {scanf(“%d”,&x); if(max<=x) max=x; if(min>=x) min=x;} printf(“%d\t%d\n”,max,min); } 5、 #include main() {inti,j,p; for(i=1;i<=4;i++) {for(p=1;p<=i;p++) printf(“”); for(j=7;j>=2*i-1;j--) printf(“*”); printf(“\n”); } } P39 5.课堂实践 (1)floatcompare(floata,b,c) { floatk; if(a>=b) {k=a; if(a>=c) k=a; else k=c; } else { k=b; if(b<=c) k=c; returnk; } } (2)最大公约数: intzxgys(intm,n) { inti,j,k; if(m>=n) k=n; else k=m; for(i=1;i<=k;i++) { if(m%i==0&&n%i==0) j=i; } returnj; } 最小公倍数: intzdgbs(inta,intb) { intx,y,k; if(a>=b) k=a; else k=b; for(x=a*b;x>=k;x--) { if(x%a==0&&x%b==0) y=x; } returny; } P41课堂实践 (1) #include floatzhouchang(floatx) { floatl; l=2*3.14*x; returnl; } floatmianji(floaty) { floats; s=3.14*y*y; returns; } voidemain() { floatr; scanf("%f",&r); floatm,n; m=zhopuchang(r); n=mianji(r); printf("m=%f\nn=%f\n",m,n); } (2) floatadd(floatx,floaty) { Floatz; Z=x+y; Returnz; } floatsub(floath,floatk) {floatw; w=h-k; returnw; } floatmul(floatm,n) {floati; i=m*n; returni; } floatdiv(floate,f) {floatg; g=e/f; returng; } voidmain() {floatp,g; scanf("%f%f",&p,&g); chara;l scanf("%c",&a); floatj; if(a=='+') {j=add(p,g); } elseif(a=='-') {j=sub(p,g) } elseif(a=='*') {j=mul(p,g) } elseif(a=='/') {j=div(p,g) } printf("'%f",5); } P43 习题 一.选择 1.B2.D3.D4.A5.C6.B7.B8.B9.A10.D 二.填空 1.函数首部和函数体 2.voidadd;floatadd; 3.1,1,1 4.1,2,3; 5.break;scanf(“%c”,&ch); 6.x=4y=9z=5 7.first: 14,4,12 second: 26,4,12 third: 26,3,6 8.a+b=9 9.8 10.125 三. 1. #include #include fun(intx,inty) { intm; m=x-y; m=abs(m); returnm; } 2.voiddeb(intx) { inti; for(i=2;i<=x;i++) { if(x%i==0) break; } if(i>=x) printf("%dissushu\n",x); } 3.略 第二部分程序设计算法示例 P67 6. (1) #include main() {intb,m,l; for(b=1;b<20;b++) {for(m=1;m<33;m++) {l=100-m-b; if(5*b+3*m+l/3==100) printf("%d%d%d\n",b,m,l) } } } (2)#include main() {inta,b,c,d; for(a=1;a<10;a++) {for(b=1;b<20;b++) {for(c=1;c<50;c++) {d=40-a-b-c; if(10*a+5*b+2*c+d==100) printf("%d,%d,%d,%d\n",a,b,c,d); } } } } P70 5. (1) #include main() {inta,b,c; c=2; for(a=2;a<=3;a++) {if(a==c) continue; b=6-a-c; if(b==c) continue; if(a==3) printf("a与z是对手\n"); if(b==1) printf("b与x是对手\n"); printf("c与y是对手\n"); } } 5. (2) #include main() { intd=5; inta,b,c,e,f,g; for(a=1;a<=7;a++) { if(a==d) continue; for(b=1;b<=7;b++) { if(b==a||b==d) continue; for(c=1;c<=7;c++) { if(c==a||c==b||c==d) continue; for(e=1;e<=7;e++) { if(e==a||e==b||e==c||e==d) continue; for(f=1;f<=7;f++) { if(f==e||f==d||f==c||f==b||f==a) continue; g=(23-a-b-c-e-f); if(g==f||g==e||g==d||g==c||g==b||g==a) continue; } } } } } printf("a=%d\nb=%d\nc=%d\nd=%d\ne=%d\nf=%d\ng=%d\n",a,b,c,d,e,f,g); } 5.(3)略 P71 习题 一、 1.B 2.D 3.C 4.C,D 二. 1.2*x+4*y==90; 2.14 三. 1. #include main() { inta,b,c; for(a=1;a<=9;a++) { for(b=0;b<=9;b++) { for(c=0;c<=9;c++) { if(a*a*a+b*b*b+c*c*c==100*a+10*b+c) printf("%d%d%d\n",a,b,c); } } } } 2 #include main() { intbh,mh,lh; for(bh=1;bh<=40;bh++) { for(mh=1;mh<=50;mh++) { lh=100-bh-mh; if(3*bh+2*mh+lh/2) printf("bh=%d\nmh=%d\nlh=%d\n"); } } } P75 5. #include main() { floatx1,x2; x1=1.5; x2=(x1+1/x1)/2; while(x1=x2) {x1=x2; x2=(x1+1/x1)/2; } printf("%f",x2); } P76 5. (1)略 5. (2) #include main() { intday=1; intx1=0,x=0; floatj; while(x1<100) { x=day*2; day++; x1+=x; } j=x1*0.8/(day-=1); printf("%f",j); } P76 习题 一 1. (1)B (2)D 2. (1)C (2)A 二 1. (1)x1==0 (2)x/0.5-2 2.sum%4==0 三略 P80. 5、课堂实践 #include voidmain() {longintf1,f2; inti; f1=1;f2=1; for(i=1;i<=20;i++) {printf(“%4ld%4ld”,f1,f2); if(i%2==0)printf(“\n”); f1=f1+f2; f2=f2+f1; }} P81. 5、课堂实践 #include #include ints(inta,intb) {intg; if(b==0) g=1; else g=pow(a,b); return(g); } main() {intx,y,m; Scanf(“%d,%d”,&x,&y); m=s(x,y); printf(“%d”,m); } P81.习题 一、 1、 (1)age(n-1)+2 (2)age(n) 2、计算Fibonacci数列第7项元素k=13 二、略 P85.略 P93. 5、课堂实践 (1)D (2)C(3)C(4)D (5) #include main() {inta[5],s[5]; inti; for(i=0;i<5;i++) scanf(“%d”,&a[i]); for(i=0;i<5;i++) {s[i]=a[i]+5; printf(“%d”,s[i]); } } P96. 5、课堂实践 (1) #include voidmain() {inta[10]={265,301,751,129,937,863,742,694,76,438}; inti,j,t; for(j=0;j<9;j++) for(i=0;i<9-j;i++) if(a[i]>a[i+1]) {t=a[i]; a[i]=a[i+1]; a[i+1]=t; } for(i=0;i<10;i++) printf(“%d”,a[i]); } (2).
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 语言程序设计 清华大学出版社 书后 习题 参考答案