《c语言程序设计》苏小红 课后习题答案 高等教育出版社.docx
《《c语言程序设计》苏小红 课后习题答案 高等教育出版社.docx》由会员分享,可在线阅读,更多相关《《c语言程序设计》苏小红 课后习题答案 高等教育出版社.docx(58页珍藏版)》请在冰豆网上搜索。
《c语言程序设计》苏小红课后习题答案高等教育出版社
2.2
#include
main()
{
floatx=2.5,y=2.5,z=2.5;
printf("x=%f\n",x);
printf("y=%f\n",y);
printf("z=%f\n",z);
}
3.1
(1)
#include
main()
{
inta=12,b=3;
floatx=18.5,y=4.6;
printf("%f\n",(float)(a*b)/2);
printf("%d\n",(int)x%(int)y);
}
3.1
(2)
#include
main()
{
intx=32,y=81,p,q;
p=x++;
q=--y;
printf("%d%d\n",p,q);
printf("%d%d\n",x,y);
}
3.2
#include
main()
{
intx,b0,b1,b2,s;
printf("Inputx:
");
scanf("%d",&x);
b2=x/100;
b1=(x-b2*100)/10;//或(x%100)/10;或x/10%10;
b0=x%10;
s=b0*100+b1*10+b2;
printf("s=%d\n",s);
}
3.3
#include
#include
main()
{
floatrate=0.0225;
floatn,capital,deposit;
printf("Inputn,capital:
");
scanf("%f,%f",&n,&capital);
deposit=capital*pow(1+rate,n);
printf("deposit=%f\n",deposit);
}
3.4
#include
#include
main()
{
floata,b,c;
doublex,y;
printf("Inputa,b,c:
");
scanf("%f%f%f",&a,&b,&c);
x=(-b+sqrt(b*b-4*a*c))/(2*a);
y=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("x=%f,y=%f\n",x,y);
}
习题4
4.1
(1)
#include
main()
{
charc1='a',c2='b',c3='c';
printf("a%cb%cc%c\n",c1,c2,c3);
}
4.1
(2)
#include
main()
{
inta=12,b=15;
printf("a=%d%%,b=%d%%\n",a,b);
}
4.1(3)
#include
main()
{
inta,b;
scanf("%2d%*2s%2d",&a,&b);
printf("%d,%d\n",a,b);
}
4.2
#include
main()
{
longa,b;
floatx,y;
scanf("%d,%d\n",&a,&b);
scanf("%f,%f\n",&x,&y);
printf("a=%d,b=%d\n",a,b);
printf("x=%f,b=%f\n",x,y);
}
5.1
#include
main()
{
floata;
printf("Inputa:
");
scanf("%f",&a);
if(a>=0)
{
a=a;
printf("a=%f\n",a);
}
else
{
a=-a;
printf("a=%f\n",a);
}
}
5.2
#include
main()
{
inta;
printf("Inputa:
");
scanf("%d",&a);
if(a%2==0)
{
printf("a是偶数");
}
else
{
printf("a是奇数");
}
}
5.3
#include
#include
main()
{
floata,b,c,s,area;
printf("Inputa,b,c:
");
scanf("%f%f%f",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
s=(a+b+c)/2;
area=(float)sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%f\n",area);
}
else
{
printf("不是三角形");
}
}
5.4
#include
#include
main()
{
floata,b,c,x,y;
printf("Inputa,b,c:
");
scanf("%f,%f,%f",&a,&b,&c);
if(a==0)
{
printf("该方程不是一元二次方程\n");
}
if(b*b-4*a*c>0)
{
x=(-b+sqrt(b*b-4*a*c))/(2*a);
y=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("x=%f,y=%f\n",x,y);
}
elseif(b*b-4*a*c==0)
{
x=-b/(2*a);
y=-b/(2*a);
printf("x=%f,y=%f\n",x,y);
}
else
{
printf("该方程无实根\n");
}
}
5.5
#include
main()
{
intyear,flag;
printf("Inputayear:
");
scanf("%d",&year);
if(year%4==0&&year%400!
=0||year%400==0)
{
flag=1;
}
else
{
flag=0;
}
if(flag==1)
{
printf("%disaleapyear!
\n",year);
}
else
{
printf("%disnotaleapyear!
\n",year);
}
}
5.6
#include
main()
{
intyear,flag;
printf("Inputayear:
");
scanf("%d",&year);
flag=year%400==0||year%4==0&&year%100!
=0?
1:
0;
if(flag==1&&flag!
=0)
{
printf("%disaleapyear!
\n",year);
}
else
{
printf("%disnotaleapyear!
\n",year);
}
}
5.7
#include
main()
{
charch;
printf("Inputch:
");
scanf("%c",&ch);
if(ch>='a'&&ch<='z')
{
ch=getchar();
ch=ch-32;
printf("%c,%d\n",ch,ch);
}
elseif(ch>='A'&&ch<='Z')
{
ch=getchar();
ch=ch+32;
printf("%c,%d\n",ch,ch);
}
else
{
printf("%c",ch);
}
}
5.8
#include
main()
{
charch;
printf("Inputch:
");
scanf("%c",&ch);
if(ch>=48&&ch<=57)
{
printf("ch是数字字符\n");
}
elseif(ch>=65&&ch<=90)
{
printf("ch是大写字母\n");
}
elseif(ch>=97&&ch<=122)
{
printf("ch是小写字母\n");
}
elseif(ch==32)
{
printf("ch是空格\n");
}
else
{
printf("ch是其他字符\n");
}
}
5.9
#include
main()
{
intscore,grade;
printf("Inputscore:
");
scanf("%d",&score);
grade=score/10;
if(score<0||score>100)
{
printf("Inputerror\n");
}
if(score>=90&&score<=100)
{
printf("%d--A\n",score);
}
elseif(score>=80&&score<90)
{
printf("%d--B\n",score);
}
elseif(score>=70&&score<80)
{
printf("%d--C\n",score);
}
elseif(score>=60&&score<70)
{
printf("%d--D\n",score);
}
elseif(score>=0&&score<60)
{
printf("%d--E\n",score);
}
}
5.10
#include
main()
{
intyear,month;
printf("Inputyear,month:
");
scanf("%d,%d",&year,&month);
if(month>12||month<=0)
{
printf("errormonth\n");
}
else
{
switch(year,month)
{
case12:
case10:
case8:
case7:
case5:
case3:
case1:
printf("31天\n");
break;
case11:
case9:
case6:
case4:
printf("30天\n");
break;
case2:
if(year%4==0&&year!
=0||year%400==0)
{
printf("29天\n");
}
else
{
printf("28天\n");
}
break;
default:
printf("Inputerror\n");
}
}
}
6.1
(1)
#include
main()
{
inti,j,k;
charspace='';
for(i=1;i<=4;i++)
{
for(j=1;j<=i;j++)
{
printf("%c",space);
}
for(k=1;k<=6;k++)
{
printf("*");
}
printf("\n");
}
}
6.1
(2)#include
main()
{
intk=4,n;
for(n=0;n{
if(n%2==0)continue;
k--;
}
printf("k=%d\n,n=%d\n",k,n);
}
6.1(3)#include
main()
{
intk=4,n;
for(n=0;n{
if(n%2==0)break;
k--;
}
printf("k=%d,n=%d\n",k,n);
}
6.2
(1)#include
main()
{
inti,sum=0;
for(i=1;i<=101;i++)
{
sum=sum+i;
}
printf("sum=%d\n",sum);
}
6.2
(2)#include
main()
{
longi;
longterm,sum=0;
for(i=1;i<=101;i=i+2)
{
term=i*(i+1)*(i+2);
sum=sum+term;
}
printf("sum=%ld\n",sum);
}
6.2(4)#include
#include
main()
{
intn=1;
floatterm=1.0,sign=1,sum=0;
while(term<=-1e-4||term>=1e-4)
{
term=1.0/sign;
sum=sum+term;
sign=sign+n;
n++;
}
printf("sum=%f\n",sum);
}
6.2(5)#include
#include
main()
{
intn=1,count=1;
floatx;
doublesum,term;
printf("Inputx:
");
scanf("%f",&x);
sum=x;
term=x;
do{
term=-term*x*x/((n+1)*(n+2));
sum=sum+term;
n=n+2;
count++;
}while(fabs(term)>=1e-5);
printf("sin(x)=%f,count=%d\n",sum,count);
}
6.3#include
main()
{
intx=1,find=0;
while(!
find)
{
if(x%2==1&&x%3==2&&x%5==4&&x%6==5&&x%7==0)
{
printf("x=%d\n",x);
find=1;
x++;
}
}
}
/*intx,find=0;
for(x=1;!
find;x++)
{
if(x%2==1&&x%3==2&&x%5==4&&x%6==5&&x%7==0)
{
printf("x=%d\n",x);
find=1;
}
}
}*/
6.4#include
main()
{
inti,n;
longp=1,m=1;
printf("Inputn:
");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
p=i*i;
m=i*i*i;
printf("p=%d,m=%d\n",i,p,i,m);
}
}
6.5#include
main()
{
floatc,f;
for(c=-40;c<=110;c=c+10)
{
f=9/5*c+32;
printf("f=%f\n",f);
}
}
6.6#include
#include
main()
{
intn;
doublec=0.01875,x;
do{
x=x*pow(1+c,12)-1000;
n++;
}while(x>0);
printf("x=%d\n",x);
}
6.7#include
main()
{
intn=0;
floata=100.0,c;
printf("Inputc:
");
scanf("%f",&c);
do
{
a=a*(1+c);
n++;
}while(a<=200);
printf("n=%d\n",n);
}
6.8#include
#include
main()
{
intn=1,count=1;
doublesum=1,term=1;
while(fabs(term)>=1e-5)
{
term=pow(-1,count)*(1.0/(n+2));
sum=sum+term;
n=n+2;
count++;
}
sum=4*sum;
printf("sum=%f,count=%d\n",sum,count);
}
6.9#include
#include
main()
{
intn=1,count=1;
doublesum=1,term=1;
while(fabs(term)>=1e-5)
{
term=term*(1.0/n);
sum=sum+term;
n++;
count++;
}
printf("sum=%f,count=%d\n",sum,count);
}
6.10#include
#include
main()
{
intx;
for(x=100;x<=999;x++)
{
if(x==pow(x/100,3)+pow(x/10%10,3)+pow(x%10,3))
printf("x=%d\n",x);
}
}
6.11#include
main()
{
inti=0,n;
longsum=0,term=1;
printf("Inputn:
");
scanf("%d",&n);
do{
i++;
term=term*i;
sum=sum+term;
}while(sumprintf("%d\n",i-1);
}
6.12#include
main()
{
inti,n,m,count=0,sum=0;
printf("Inputn:
");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("Inputm:
");
scanf("%d",&m);
if(m>0)
{
sum=sum+m;
count++;
}
else
{
break;
}
printf("sum=%d,count=%d\n",sum,count);
}
}
6.13#include
main()
{
inti,n,m,count=0,sum=0;
printf("Inputn:
");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("Inputm:
");
scanf("%d",&m);
if(m>0||m<0)
{
sum=sum+m;
count++;
}
else
{
break;
}
printf("sum=%d,count=%d\n",sum,count);
}
}
6.14#include
main()
{
intx,y,z;
for(x=0;x<=17;x++)
{
for(y=0;y<=25;y++)
{
3*x+2*y+z==50;
z=30-x-y;
if(3*x+2*y+z==50&&x+y+z==30)
printf("x=%d,y=%d,z=%d\n",x,y,z);
}
}
}
6.15#include
main()
{
intx,y;
for(x=0;x<=98;x++)
{
y=98-x;
2*x+4*y==386;
if(x+y==98&&2*x+4*y==386)
{
printf("x=%d,y=%d\n",x,y);
}
}
}
6.16#include
main()
{
intx,y,z;
for(x=0;x<=20;x++)
{
for(y=0;y<=33;y++)
{
3*y+5*x+z/3.0==100;
z=100-x-y;
if(5*x+3*y+z/3.0==100&&z+x+y==100)
{
printf("x=%d,y=%d,z=%d\n",x,y,z);
}
}
}
}
6.17#include
main()
{
intx,y,z;
for(x=1;x<=9;x++)
{
for(y=1;y<=17;y++)
{
10*x+5*y+z==100;
z=50-x-y;
if(10*x+5*y+z==100&&x+y+z==50&&z>0)
{
printf("x=%d,y=%d,z=%d\n",x,y,z);
}
}
}
}
7.1#include
intSquare(inti)
{
returni*i;
}
intmain()
{
inti=0;
i=Square(i);
for(;i<3;i++)
{
staticinti=1;
i+=Square(i);
printf("%d,",i);
}
printf("%d\n",i);
return0;
}
7.2#include
inthour,minute,second;
voidupdate()
{
second++;
if(second==60)
{
second=0;
minute++;
}
if(minute==60)
{
minute=0;
hour++;
}
if(hour==24)
hour=0;
}
voiddisplay()
{
printf("%d,%d,%d\n",hour,minute,second);
}
voiddelay()
{
intt;
for(t=0;t<100000000;t++);
}
intmain()
{
inti;
voidupdaye(),display(),delay();
for(i=0;i<1000000;i++)
{
update();
display();
delay();
}
return0;
}
7.3#include
intGetMax(inta,intb);
intmain()
{
intx,y,max;
printf("Inputx,y:
");
scanf("%d,%d",&x,&y);
max=GetMax(x,y);
printf("max=%d\n",max);
return0;
}
intGetMax(intm,intn)
{
if(m>=n)
returnm;
else
returnn;
}
7.4#include
intLCM(intn,intm);
intmain()
{
inta,b;
printf("Inputa,b:
");
scanf("%d,%d",&a,&b