C语言课后习题参考答案参考资料.docx
《C语言课后习题参考答案参考资料.docx》由会员分享,可在线阅读,更多相关《C语言课后习题参考答案参考资料.docx(12页珍藏版)》请在冰点文库上搜索。
C语言课后习题参考答案参考资料
第2章部分习题参考答案
、单项选择题:
DABDDDAAABBCD
2020/4/8
1
第3章部分习题参考答案
•、单项选择题:
CACBBCDBBBADCCBDCCBB
:
、填空题:
1.a!
"bIIav=c
2.x>20&&x<30IIx<-100
3.0
4.非。
5.1
6.x%3==0&&x%7==0或x%21==0
2020/4/8
2
第3章习题三、编程题
2、
#include
#include
voidmain()
{floata,b,c,p,s;
printf(”请输入三角形的三边长:
H);
seanf(”%f%f)&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf(H三角形面积为:
%.2f\nn,s);
}
elseprintf(”输入的边长不能构成三角形!
\n”);}
2020/4/83
第3章习题
3、
#include
voidmain()
{
intx,y;
scanf(”%d”,&x);
if(x>・5&&XVO)y=x-l;
elseif(x==O)y=x;
elseif(x>0&&x<8)y=x+l;
elsey=10;
printf(”y=%d\n”,y);
}
2020/4/8
if(x>・5&&XV0)y=x-l;
if(x==0)y=x;
if(x>0&&x<8)y=x+l;
if(x<=-5IIx>=8)y=10;
if(xv=・5IIx>=8)y=10;
elseif(x<0)y=x-l;
elseif(x==0)y=x;
elsey=x+l;
4
III
ch=getchar();
第3章习题」
4、盈寇输入一字符,大写转小写,小写转大写,其他原样输出。
#indude
voidmain()
{
charch;
scanf(,,%c,,z&ch);
if(di>='A'&&chv='Z')
ch=ch+32;
elseif(ch>='a'&&chv='Z)
ch=ch-32;
printf(,,%c\n,,zch);
if(ch>=A&&ch<=,ZI)
printf(,,%c\n,\ch+32);
elseif(ch>='a'&&ch<='z')
printf(”%c\n”,ch・32);
elseprintf(,,2020/4/8
5
第3章_习题」#indude
8.voidmain()
{intyear,flag=l;
doublemoney,rate,total;
printf("请输入存款本金和年限:
");
scanf(,,%lf(Vbd,\&money,&year);
if(year==1)rate=0.00215;
elseif(year==2)rate=0.0023;
elseif(year==3)rate=0.00245;
elseif(year==5)rate=0.00275;
elseif(year==8)rate=0.0032;
elseflag=O;
if(flag==l)
{total=money*(1+rate*12*year);
printf("总金额为:
%・2lf\rT,total);
elseprintf(”输入的期限不正确!
\n");
6
2020/4/8}
#indude
voidmain()
{intyear,flag=l;doublemoney,rate,total;
printf(H请输入存款本金和年限:
H);
scanf("%lf%cT,&money,&year);
switch(year)
{case1:
rate=0.00215;break;
case2:
rate=0.0023;break;
case3:
rate=0.00245;break;
case5:
rate=0.00275;break;
case8:
rate=0.0032;break;
default:
printf("输入的期限不正确!
\n,flag=O;
?
if(flag==l)
{total=money*(1+rate*12*year);
printf(”总金额为:
%・2lf\rT,total);
}
}2020/4/8
7
第4章部分习题参考答案
・、单项选择题
BCDBDBCDBBCCCCCBACDD
二、编程题
2・编程输出1^200之间所有能被3整除、且个位数为6的整数。
方法1:
#indude
voidmain()
{
inti;
for(i=l;i<=200;i++)
if(iprintf(”\n,
)2020/4/8
方法2:
#indude
voidmain()
{
inti;
for(i=6;i<=200;i=i+10)
if(i%3==0)
printf(”%5d”,i);
}
8
第4草.擄」
17蓊蔔(键盘输入k的值及k个整数,统计其中的正数、零和负
数的个数
洋include
voidmain()
(intx,k,i,p=O,z=O,m=O;
printf(”请输入待输入数据的个数:
");
scacf(”%d”,&k);
printf("请输入%£|个整数:
”,k);
for(i=l;i<=k;i++)
(scanf("%d",&x);
if(x>0)p++;
elseif(x==O)z++;
elsem++;
}
printf(”正数、0、负数个数分别为:
%d,%d,%d\n”,p,z,m);
2020/4/89
第4章■习题丨
飞削程求e=l+l/l!
+l/2!
+l/3!
+...+l/n!
直到最后一项小
于10・5为止。
#includevoidmain()
{
inti=l;
doubles=lfe=l;
while(l/s>=lE-5)
{
s=s*i;
e=e+l/s;
i++;
}
printf(,,e=}
2020/4/8
#includevoidmain(){
floatsumznzmzc;
sum=l;n=l;m=l;c=l;
while(c>=lE-5)
{
m=m*n;
c=l/m;
sum=sum+c;
n=n+l;
}
printf(,,e=cVbf\nl,fsum);
}
10
第4章习题
7.输入两个正整数m和n,求其最小公倍数。
#include
voidmain()
(intm,n,i;
printf("W输入两个正整数:
");
scanf(,,%d%d"/&m/&n);
for(i=m;;i++)
if(i%m==0&&i%n==0)
break;
printf(”%d,%d的最小公倍数%%d\n“,m,n,i);
}
^includevstdio.h>
voidmain()
{int
printf(”请输入两个正整数:
");
scanf(”%d%d",&m,&n);
i=m;
while(i%m!
=011i%n!
=0)
i++;
printf(”%d,%d的最小公危数为%d\n“
}
2020/4/8
第4章习题
8.输入若干学生的成绩,输入负数时表示输入结束,求所有学生
#include
voidmain()
{
intcjzmax=O;
printf("输入成绩,以负数结束:
H);
scanf("%d",&cj);
while(cj>=0)
{if(maxscanf(”%d”,&cj);
?
printf("最高分:
%d\rT,max);
}
#indude
voidmain()
{
intcjzmax=O;
printf(”输入成绩,以负数结束:
");
while(l)
{scanf("%d”,&cj);
if(cj<0)break;
if(maxprintf(f,最高分:
%d\rT,max);
}
2020/4/8
12
第4章习题
13.有36块砖,由36人搬:
男人一次搬4块,女人一次搬3块,
两个小孩抬丄块,要求一次刚好全部搬完。
问男、女、小孩各多
少人?
#include
voidmain()
{
intx,y,z;〃x,y,z分别表示男,女,小孩数
for(x=0;x<9;x++)
for(y=0;y<12;y++)
{
z=36-x-y;
if(4*x+3*y+z/2==36&&z%2==0)printf(”%d%d%d\n”,x,y,z);
}
2020/4/8
13
第4章习题
14-猴子摘桃问题。
T10=l
Tn=(Tn+1+l)*2
求L=?
#indude
voidmain()
{
inti,t;
t=l;
for(i=9;i>=l;i—)
t=(t+l)*2;
c开.始
r
t=(t+l)*2
i=i-l
/输*I
(结矣)
printf(”第_天桃子数量为:
%d\nnzt);
}
2020/4/8
14
第4章习题
15.求数列2/1,3/2,5/3,8/5,.-的前n项之和。
#indude
voidmain()
{
inta,b,t,i,n;
doublesum=O.O;
printf(”请输入n:
i=i
,f);
scanf("%d”,&n);
a=2zb=l;
for(i=l;i<=n;i++)
{
sum=sum+(double)a/b;
t=a;a=a+b;b=t;
}
printf(,,sum=%f\n,,zsum);
202
15
第5章部分习题参考答案
■、单项选择题
BBADCBDBCCDDDDCBAACD
2020/4/8
16