C语言习题答案2.docx
《C语言习题答案2.docx》由会员分享,可在线阅读,更多相关《C语言习题答案2.docx(53页珍藏版)》请在冰豆网上搜索。
![C语言习题答案2.docx](https://file1.bdocx.com/fileroot1/2022-11/15/f5abf05d-9bec-4e99-a442-1efdd94c9b76/f5abf05d-9bec-4e99-a442-1efdd94c9b761.gif)
C语言习题答案2
C语言习题答案
第1章
1.选择题
(1)C
(2)B(3)A
2.填空题
(1)main
(2)main(3)有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性
(4)顺序、分支和循环(5)自顶向下,逐步细化、模块化设计、结构化编码
第2章
1.选择题
123456789012345
ACCDADCABABBDDB
2、填空题
(1)数字、字母、下划线
(2)0(3)4、8(4)(a+b)*c/(a-b)(5)-60(6)-16
(7)9(8)6、4、2(9)0(10)10、6(11)5.500000(12)12、4
(13)0(14)16(15)6.6
3、编程题
(1)编写一个程序求各种类型数据的存储长度。
#include
main()
{
printf("int:
%dbyte\n",sizeof(int));
printf("shortint:
%dbyte\n",sizeof(shortint));
printf("longint:
%dbyte\n",sizeof(longint));
printf("float:
%dbyte\n",sizeof(float));
printf("double:
%dbyte\n",sizeof(double));
printf("longdouble:
%dbyte\n",sizeof(longdouble));
printf("char:
%dbyte\n",sizeof(char));
}
(2)
#include
#defineRAT1.60934
main()
{
floatk;
printf("inputthekm:
");
scanf("%f",&k);
printf("mile:
%f\n",k/RAT);
}
第3章
1.选择题
1234567890
(1)~(10):
DDCDDDCDCC
2.解析题
(1)x=170,x=ㄩㄩㄩ170,x=ㄩㄩㄩ252,x=ㄩㄩㄩㄩaa,x=ㄩㄩㄩ170
x=170,x=170ㄩㄩㄩ,x=ㄩㄩㄩ170,x=%6d
a=513.789185,a=ㄩㄩ513.79,a=513.78918457,a=513.78918457
(2)a=3ㄩb=7x=8.5ㄩy=71.82c1=Aㄩc2=a?
3.编程题
(1)
main()
{
intx,y;
scanf("%d%d",&x,&y);
printf("商数=%d,余数=%d",x/y,x%y);
}
(2)
main()
{
doublex,y,z,avg;
scanf("%lf%lf%lf",&x,&y,&z);
avg=(x+y+z)/3;
printf("%.1f",avg);
}
第4章
1.选择题
(1)~(10)CCAADCCABD
2.填空题
(1)①a>0&&b>0||a>0&&c>0||b>0&&c>0
②a
③a>5||-a>5
④(a<=0)&&((int)a)!
=a
⑤(a%b)!
=0
(2)①!
(x>0)②1③!
(x>=0&&x<=5)
(3)3、2、2
(4)ch>='A'&&ch<='Z'ch=ch-32
(5)x<=10&&x>2x<=2&&x>-1y=-1;
(6)a+b>c&&a+c>b&&b+c>aa==b&&a==ca==b||a==c||b==c
(7)x<0c=x/10y!
=-2
3.编程题
(1)
#include
main()
{
intx;
printf("pleaseinputanumber:
");
scanf("%d",&x);
if(x%2==0)printf("xisaevennumber");
elseprintf("xisaoddnumber");
}
(2)
#include
main()
{
intx,y;
printf("pleaseinputanumber:
");
scanf("%d",&x);
if(x>-5&&x<0){y=x;printf("%d",y);}
elseif(x==0){y=x-1;printf("%d",y);}
elseif(x>0&&x<10){y=x+1;printf("%d",y);}
elseprintf("thenumberiserror");
}
(3)
#include
main()
{inta,m;
printf("pleaseinputanumber:
");
scanf("%d",&a);
switch(a/10)
{case0:
case1:
case2:
m=1;break;
case3:
m=2;break;
case4:
m=3;break;
case5:
m=4;break;
default:
m=5;break;
}
printf("%d",m);
}
(4)
#include
main()
{
floatprice,tax;
printf("pleaseinputthepriceofproduct:
");
scanf("%f",&price);
if(price>=10000)tax=price*0.05;
elseif(price>=5000)tax=price*0.03;
elseif(price>=1000)tax=price*0.02;
elsetax=0;
printf("%f",tax);
}
(5)
#include
main()
{
floatscore;
printf("pleaseinputthescoreofstudent:
");
scanf("%f",&score);
if(score>=85)printf("VERYGOOD");
elseif(score>=60)printf("GOOD");
elseprintf("BAD");
}
(6)
#include
main()
{
intx,y,z;
printf("inputtwonumber:
");
scanf("%d%d",&x,&y);
if(x<10||x>99||y<10||y>99)
printf("inputdataerror!
\n");
else
{z=(x/10)*1000+(y/10)*100+(x%10)*10+y%10;
printf("%d\n",z);
}
}
第5章
1.选择题
(1)d
(2)c(3)a(4)d(5)a(6)d(7)d(8)b(9)d(10)b
(11)c(12)a(13)d(14)d(15)c
2.填空题
(1)fahrcelsius=5.0/9*(fahr-32)fahr+=step
(2)5、4、6(3)3*i-2
(4)y--z*=x(5)8ㄩ5ㄩ2(6)j++i%j==0j>=i(或j==i)
(7)sum3.改错题
(1)第一处改正:
For改为for
第二处改正:
for(k=1;k<=4;k++)或for(k=0;k<4;k++)
第三处改正:
ave=sum/4改为ave=sum/4.0
(2)第一处改正:
j<=9
第二处改正:
m=100*i+10*j+k
(3)第一处改正:
temp=1
第二处改正:
temp>=eps
第三处改正:
r*2
(4)第一处改正:
&n
第二处改正:
====
(5)第一处改正:
t=m/10改为t=m%10
第二处改正:
t=0改为t==0
第三处改正:
m=m%10改为m=/10
4.编程题
(1)分式累加和。
#include
main()
{
ints;
floatn,t,sum;
t=1;sum=0;n=1;s=1.0;
while(n<=100)
{
sum=sum+t;
n=n+1;
s=-s;
t=s/n;
}
printf("sum=%10.6f\n",sum);
}
(2)1~10的阶乘
#include
main()
{
inti;
longintn=1;
for(i=1;i<=10;i++)
{
n=n*i;
printf(i%5==0?
"%2d!
=%-10ld\n":
"%2d!
=%-10ld",i,n);
}
}
(3)由*组成的等腰三角形
#include
main()
{
intn,i,j;
scanf("%d",&n);
for(i=1;i<=n;i++)
{for(j=1;j<=n+i-1;j++)
if(j<=n-i)printf("");
elseprintf("*");
printf("\n");
}
}
(4)完数
main()
{
intm,s,i;
for(m=2;m<1000;m++)
{s=0;
for(i=1;iif((m%i)==0)s=s+i;
if(s==m)
{printf("%ditsfactorsare",m);
for(i=1;iif(m%i==0)printf("%d,",i);
printf("\n");
}
}
}
(5)打靶
#include
main()
{
inth10,h7,h5;
for(h10=0;h10<=8;h10++)
for(h7=0;h7<=8;h7++)
for(h5=0;h5<=8;h5++)
if(h10+h7+h5==8&&h10*10+h7*7+h5*5==53)
printf("h10=%d\th7=%d\th5=%d\n",h10,h7,h5);
}
(6)猴子吃桃子问题。
采取逆向思维的方法,从后往前推断。
//代码一
main()
{
intday,x1,x2;
day=9;
x2=1;
while(day>0)
{x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/
x2=x1;
day--;
}
printf("thetotalis%d\n",x1);
}
//代码二
main()
{
inti=9,sum=1;
for(;i>0;sum=2*(sum+1),i--);
printf("sum=%d\n",sum);
}
(7)牛顿迭代法
一般地:
f(x)=a0xn+a1x