C语言程序的设计教程 课后复习题参考答案.docx
- 文档编号:28762374
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:58
- 大小:55.35KB
C语言程序的设计教程 课后复习题参考答案.docx
《C语言程序的设计教程 课后复习题参考答案.docx》由会员分享,可在线阅读,更多相关《C语言程序的设计教程 课后复习题参考答案.docx(58页珍藏版)》请在冰豆网上搜索。
C语言程序的设计教程课后复习题参考答案
《C语言程序设计教程》
课后习题参考答案
习题1
1.
(1)编译、.exe
(2)函数主函数(或main函数)
(3)编辑编译
2.
(1)-(5):
DDBBC(6)-(10):
ABBBC
3.
(1)答:
C语言简洁、紧凑,使用方便、灵活;C语言是高级语言,同时具备了低级语言的特征;C语言是结构化程序设计语言,具有结构化的程序控制语句;C语言有各种各样的数据类型;C语言可移植性好;生成目标代码质量高,程序执行效率高。
(2)编辑、编译、、执行
(3)一个C程序由一或多个函数组成,一函数若干条语句构成,每条语句的末尾必须以分号结束。
(4)标识符,关键字,运算符,分隔符,常量,注释符等
4.从键盘输入一个双精度小数,打印出它的余弦值。
#include
#include
main()
{
doublex;
scanf(“%lf”,&x);
printf(“%lf\n”,cos(x));
}
第2章
1.
(1)BDE、ACFG
(2)D(3)C(4)C
2.
(1)错
(2)错(3)错(4)对(5)错
3.
(1)a=3,b=-27
(2)a=11,b=6,c=6
(3)3
(4)1010110
(5)-998
(6)1)202)83)704)05)06)0
4.
(1)
#include
main()
{
doubler,h,v;
r=2.5;
h=3.5;
v=3.14*r*r*h;
printf(“v=%lf\n”,v);
}
(2)
#include
main()
{
charch;
ch=getchar();
printf(“%c\n”,ch+32);
}
(3)
#include
main()
{
printf(“*\n”);
printf(“***\n”);
printf(“*****\n”);
printf(“*******\n”);
}
(4)
#include
main()
{
doublex;
scanf(“%lf”,&x);
printf(“%d,%lf\n”,(int)x,x–(int)x);
}
(5)
#include
main()
{
doublea=3,b=5;
doubleresult=(-2*a+(4*a–b)/(2*a+b))/((a-4*b)/(a+b));
printf(“%lf\n”,result);
}
习题3
1.
(1)D
(2)AD(3)C(4)B(5)A
(6)-(10):
BDACB
2.
(1)3.141593,3.1416,3.142
(2)c=K
(3)|123.46|,|123|
(4)x=1.23,y=50.00
(5)0
3.
(1)scanf(%f”,c);改为:
scanf(“%f”,&c);
f=(9/5)*c+32;改为:
f=(9.0/5)*c+32;
printf(“摄氏温度%f度相当于华氏温度%f度”,&c,&f);改为:
printf(“摄氏温度%f度相当于华氏温度%f度”,c,f);
(2)
补充定义:
inth;
h=500/60改为:
h=500/60;
m=500%60改为:
m=500%60;
printf(“500分钟是%d小时%d分钟,”&h,&m);改为:
printf(“500分钟是%d小时%d分钟”,h,m);
4.
(1)
#include
main()
{
charx,y;
scanf(“%c%c”,&x,&y);
printf(“%d\n”,(x-‘0’)+(y-‘0’));
}
(2)
#include
main()
{
charx,y;
chartmp;
printf(“Inputtwocharacters:
”);
scanf(“%c%c”,&x,&y);
printf(“Beforeswap:
x=%c,y=%c\n”,x,y);
tmp=x;x=y;y=tmp;
printf(“Afterswap:
x=%c,y=%c\n”,x,y);
}
(3)
#include
main()
{
charch;
ch=getchar();
printf(“%c\n”,ch-32);
}
第4章
1.
(1)-(5):
CAACA
2.
(1)BBB
(2)AAABBBCCC
(3)end
(4)d=20
(5)s=2,t=3
(6)first
third
(7)y=0y=5y=10y=5
3.
(1)y (2)ch>=’A’&&ch<=’Z’ ch>=’a’&&ch<=’z’ch=ch-32 (3)x>2&&x<=10x>-1&&x<=2 (4)t=x;x=y;y=t; 4. (1) #include main() { intx,y,z,t; scanf(“%d%d%d”,&x,&y,&z); if(x>y) {t=x;x=y;y=t;} if(x>z) {t=x;x=z;z=t;} if(y>z) {t=y;y=z;z=t;} printf(“%d%d%d\n”,x,y,z); } (2) #include main() { intscore; scanf(“%d”,&score); if(score<0||score>100) printf(“成绩不合理\n”); elseif(score>=90) printf(“优秀\n”); elseif(score>=80) printf(“良好\n”); elseif(score>=70) printf(“中等\n”); elseif(score>=60) printf(“及格\n”); else printf(“不及格\n”); } (3) #include main() { intn; intg,s,b,q;//各位上的数值 scanf(“%d”,&n); g=n%10;//个位 s=n/10%10;//十位 b=n/100%10;//百位 q=n/1000%10;//千位 if(n<10)//一位数 { printf(“%d\n”,1);//位数 printf(“%d\n”,g);//各位上的数值 } elseif(n<100)//两位数 { printf(“%d\n”,2);//位数 printf(“%d%d\n”,g,s); } elseif(n<1000)//三位数 { printf(“%d\n”,3);//位数 printf(“%d%d%d\n”,g,s,b); } elseif(n<10000)//四位数 { printf(“%d\n”,4);//位数 printf(“%d%d%d%d\n”,g,s,b,q); } } (4) #include main() { intn; scanf(“%d”,&n); if(n%3==0&&n%5==0&&n%7==0) printf(“能同时被3、5、7整除\n”); elseif(n%3==0&&n%5==0) printf(“能被3和5整除\n”); elseif(n%3==0&&n%7==0) printf(“能被3和7整除\n”); elseif(n%5==0&&n%7==0) printf(“能被5和7整除\n”); elseif(n%3==0||n%5==0||n%7==0) { if(n%3==0) printf(“能被3整除\n”); elseif(n%5==0) printf(“能被5整除\n”); else printf(“能被7整除\n”); } else printf(“不能被3、5、7中任一个数整除\n”); } (5) #include main() { intcarType;//车型。 1代表夏利;2代表富康;3代表桑塔纳 doublexiali=2.1;//每公里价格 doublefukang=2.4; doublesangtana=2.7; doubledistance;//距离 doubletotalMoney;//总的收费 printf("请输入您乘坐的车型: 1代表夏利;2代表富康;3代表桑塔纳: "); scanf("%d",&carType); printf("请输入您乘车的总路程: "); scanf("%lf",&distance); if(carType==1)//夏利 { if(distance<3) totalMoney=7.0; else totalMoney=7+xiali*(distance–3); } elseif(carType==2)//富康 { if(distance<3) totalMoney=8.0; else totalMoney=8+fukang*(distance–3); } elseif(carType==3)//富康 { if(distance<3) totalMoney=9.0; else totalMoney=9+sangtana*(distance–3); } printf("(四舍五入)您的车费为: %.0lf\n",totalMoney); } (6) #include main() { doublea,b,c; scanf(“%lf%lf%lf”,&a,&b,&c); if(a+b>c&&b+c>a&&c+a>b) { if(a==b&&b==c) printf(“等边三角形\n”); elseif(a==b||b==c||c==a) printf(“等腰三角形\n”); else printf(“一般三角形\n”); } else printf(“不能构成三角形\n”); } 第5章 1. (1)C (2)C(3)K=36(4)C(5)B 2. (1)3次 (2)x>=1&&x<=10||x>=200&&x<210 (3)e==0 (4)6次 (5)10 3. (1)20,10 (2)16,0 (3)7BAB4BAB1BC (4)ABABABC (5)****** ****** ****** ****** 4. (1)a! =b (2)n/10 (3)scanf(“%d”,&a); 5.(3)行intfac=1,sum=0; 6. (1) #include main() { charch; intalpha=0,space=0,digit=0,other=0; while((ch=getchar())! =‘\n’) { if(ch>=’A’&&ch<=’Z’||ch>=’a’&&ch<=’z’) alpha++; elseif(ch>=’0’&&ch<=’9’) digit++; elseif(‘‘==ch) space++; else other++; } printf(“%d%d%d%d\n”,alpha,digit,space,other); } (2) #include main() { intm20,m10; for(m20=1;m20<5;m20++) { for(m10=1;m10<10;m10++) if(20*m20+10*m10==100) printf(“%d,%d\n”,m20,m10); } } (3) #include main() { intx,y,z; for(x=0;x<10;x++) for(y=0;y<10;y++) for(z=0;z<10;z++) if(x*100+y*10+z+y*100+z*10+z==532) printf(“%d%d%d\n”,x,y,z); } (4) #include main() { introw,spaceCount,starCount; intn; scanf("%d",&n); for(row=1;row<=n;++row) { for(spaceCount=1;spaceCount<=n-row;++spaceCount) printf("");//打印出某行上星号前的空格 for(starCount=1;starCount<=2*row-1;++starCount) printf("*");//打印出某行上的所有星号 printf("\n");//换行 } //打印下半部分 for(row=1;row { for(spaceCount=1;spaceCount<=row;++spaceCount) printf("");//打印出某行上星号前的空格 for(starCount=1;starCount<=2*(n-row)-1;++starCount) printf("*");//打印出某行上的所有星号 printf("\n");//换行 } } (5) #include main() { intn; intg,s,b,q; intt; scanf("%d",&n); g=n%10; s=n/10%10; b=n/100%10; q=n/1000%10; g=(g+5)%10; s=(s+5)%10; b=(b+5)%10; q=(q+5)%10; //第1位和第4位交换 t=g;g=q;q=t; //第2位和第3位交换 t=s;s=b;b=t; printf("%d%d%d%d\n",q,b,s,g); } 第6章 1. (1)无返回值 (2)double2 (3)无限循环(死循环) (4)result=720 2. (1) #include voidprint1(intn); main() { intn; scanf("%d",&n); print1(n); } voidprint1(intn) { introw,col; for(row=1;row<=n;row++) { for(col=1;col<=row;col++) printf("#"); printf("\n"); } } (2) #include voidprint2(intn); main() { intn; scanf("%d",&n); print2(n); } voidprint2(intn) { introw,col; for(row=1;row<=n;row++) { for(col=1;col<=2*row-1;col++) printf(""); printf("\n"); } } (3) #include intyearOld(intbyear,intbmonth,intbday,intnyear,intnmonth,intnday); main() { intnowy,nowm,nowd; intby,bm,bd; intage; printf("请输入生日: "); scanf("%d%d%d",&by,&bm,&bd); printf("请输入现在日期: "); scanf("%d%d%d",&nowy,&nowm,&nowd); age=yearOld(by,bm,bd,nowy,nowm,nowd); printf("age=%d\n",age); } intyearOld(intbyear,intbmonth,intbday,intnyear,intnmonth,intnday) { intage; age=nyear-byear; if(nmonth age--; elseif(nmonth==bmonth&&nday>bday) age--; returnage; } (4) #include intsum(intn); main() { intn,s; scanf("%d",&n); s=sum(n); printf("s=%d\n",s); } intsum(intn) { ints=0; while(n) { s+=n%10; n/=10; } returns; } (5) #include doublesumfac(intn); main() { intn; scanf("%d",&n); printf("%.0lf\n",sumfac(n)); } doublesumfac(intn) { doublef=1.0,s=0.0; inti; for(i=1;i<=n;i++) { f*=i; s+=f; } returnf; } (6) #include intgcd(intm,intn); main() { intm,n; scanf("%d%d",&m,&n); printf("%d\n",gcd(m,n)); } intgcd(intm,intn) { intt,r; if(m {t=m;m=n;n=t;} r=m%n; while(r) { m=n; n=r; r=m%n; } returnn; } (7) #include intgcd(intm,intn); intlcm(intm,intn); main() { intm,n; scanf("%d%d",&m,&n); printf("%d\n",lcm(m,n)); } intgcd(intm,intn) { intt,r; if(m {t=m;m=n;n=t;} r=m%n; while(r) { m=n; n=r; r=m%n; } returnn; } intlcm(intm,intn) { returnm*n/gcd(m,n); } (8) #include doublemypower(doublex,inty); main() { doublex; inty; scanf("%lf%d",&x,&y); printf("%lf\n",mypower(x,y)); } doublemypower(doublex,inty) { inti; doublef=1.0; for(i=1;i<=y;i++) f*=x; returnf; } 第7章 1. (1)6 (2)5(3)不能 (4)inta[3][2]={{1,2},{3,4},{5,6}}; (5)69 (6)abcG 2. (1) #include voidreverse(inta[],intn); intmain() { intarray[10]={0}; inti; printf(“请输入10个整数: ”); for(i=0;i<10;i++) scanf(“%d”,&array[i]);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序的设计教程 课后复习题参考答案 语言 程序 设计 教程 课后 复习题 参考答案
![提示](https://static.bdocx.com/images/bang_tan.gif)