C语言课后习题参考答案参考资料Word格式.docx
《C语言课后习题参考答案参考资料Word格式.docx》由会员分享,可在线阅读,更多相关《C语言课后习题参考答案参考资料Word格式.docx(12页珍藏版)》请在冰点文库上搜索。
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、
{
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);
XV0)y=x-l;
if(x==0)y=x;
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<
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);
&
z'
printf(”%c\n”,ch・32);
elseprintf(,,<
Vbc\n,,zch);
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);
总金额为:
%・2lf\rT,total);
elseprintf(”输入的期限不正确!
\n"
6
2020/4/8}
{intyear,flag=l;
doublemoney,rate,total;
printf(H请输入存款本金和年限:
scanf("
%lf%cT,&
switch(year)
{case1:
rate=0.00215;
break;
case2:
rate=0.0023;
case3:
rate=0.00245;
case5:
rate=0.00275;
case8:
rate=0.0032;
default:
printf("
输入的期限不正确!
\n,flag=O;
?
{total=money*(1+rate*12*year);
printf(”总金额为:
}2020/4/8
7
第4章部分习题参考答案
・、单项选择题
BCDBDBCDBBCCCCCBACDD
二、编程题
2・编程输出1^200之间所有能被3整除、且个位数为6的整数。
方法1:
voidmain()
inti;
for(i=l;
i<
=200;
i++)
if(i<
Vb3==0&
i%10==6)printf(”%5d”,i);
printf(”\n,
)2020/4/8
方法2:
for(i=6;
=200;
i=i+10)
if(i%3==0)
printf(”%5d”,i);
8
第4草.擄」
17蓊蔔(键盘输入k的值及k个整数,统计其中的正数、零和负
数的个数
洋include<
(intx,k,i,p=O,z=O,m=O;
printf(”请输入待输入数据的个数:
);
scacf(”%d”,&
k);
请输入%£
|个整数:
”,k);
=k;
(scanf("
%d"
&
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为止。
voidmain()
inti=l;
doubles=lfe=l;
while(l/s>
=lE-5)
s=s*i;
e=e+l/s;
i++;
printf(,,e=<
yblf\n,,ze);
voidmain(){
floatsumznzmzc;
sum=l;
n=l;
m=l;
c=l;
while(c>
m=m*n;
c=l/m;
sum=sum+c;
n=n+l;
printf(,,e=cVbf\nl,fsum);
10
第4章习题
7.输入两个正整数m和n,求其最小公倍数。
(intm,n,i;
W输入两个正整数:
scanf(,,%d%d"
/&
m/&
n);
for(i=m;
;
if(i%m==0&
i%n==0)
break;
printf(”%d,%d的最小公倍数%%d\n“,m,n,i);
^includevstdio.h>
{int
printf(”请输入两个正整数:
scanf(”%d%d"
m,&
i=m;
while(i%m!
=011i%n!
=0)
printf(”%d,%d的最小公危数为%d\n“
8.输入若干学生的成绩,输入负数时表示输入结束,求所有学生
intcjzmax=O;
输入成绩,以负数结束:
scanf("
%d"
cj);
while(cj>
{if(max<
cj)max=cj;
scanf(”%d”,&
最高分:
%d\rT,max);
printf(”输入成绩,以负数结束:
while(l)
{scanf("
%d”,&
if(cj<
0)break;
if(max<
printf(f,最高分:
12
13.有36块砖,由36人搬:
男人一次搬4块,女人一次搬3块,
两个小孩抬丄块,要求一次刚好全部搬完。
问男、女、小孩各多
少人?
intx,y,z;
〃x,y,z分别表示男,女,小孩数
for(x=0;
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);
13
14-猴子摘桃问题。
T10=l
Tn=(Tn+1+l)*2
求L=?
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);
14
15.求数列2/1,3/2,5/3,8/5,.-的前n项之和。
inta,b,t,i,n;
doublesum=O.O;
printf(”请输入n:
i=i
,f);
a=2zb=l;
for(i=l;
=n;
sum=sum+(double)a/b;
t=a;
a=a+b;
b=t;
printf(,,sum=%f\n,,zsum);
202
15
第5章部分习题参考答案
■、单项选择题
BBADCBDBCCDDDDCBAACD
16