二级C语言课后习题答案.docx
《二级C语言课后习题答案.docx》由会员分享,可在线阅读,更多相关《二级C语言课后习题答案.docx(48页珍藏版)》请在冰豆网上搜索。
二级C语言课后习题答案
参考答案
第一章
【1-1】.exe【1-2】.c.obj.exe【1-3】顺序,分枝(选择),循环
第二章
【2-1】B【2-2】D【2-3】B【2-4】A【2-5】C【2-6】A【2-7】B【2-8】B
【2-9】A【2-10】C【2-11】B【2-12】B【2-13】A
【2-14】11,12【2-15】4.2,4.2【2-16】{,},定义说明,执行语句
【2-17】关键字,用户标识符【2-18】int,float,double
【2-19】floata1=1,a2=1;【2-20】存贮单元【2-21】3.5
【2-22】a*b/c,a/c*b,b/c*a【2-23】把10赋予变量s【2-24】bit,0/1
【2-25】8,127,01111111,-128,10000000(补码)
【2-26】32767,-32768,111111*********1,1000000000000000【2-27】8,10,16
【2-28-1】(错误)
#includestdio.h;
main()/*mainfunction*/
floatr,s;/*/*risradius*/,/*sisareaofcircular*/*/
r=5.0;
s=3.14159*r*r;
printf("%f\n",s)
【2-28-2】(正确)
#includestdio.h;
main()/*mainfunction*/
{floatr,s;/*risradius,sisareaofcircular*/
r=5.0;
s=3.14159*r*r;
printf("%f\n",s);
}
【2-29-1】(错误)
#includestdio.h
main/*mainfunction*/
{floata,b,c,v;/*a,b,caresides,visvolumeofcube*/
a=2.0;b=3.0;c=4.0
v=a*b*c;
printf("%f\n",v)
}
【2-29-2】(正确)
#include
main()/*mainfunction*/
{floata,b,c,v;/*a,b,caresides,visvolumeofcube*/
a=2.0;b=3.0;c=4.0;
v=a*b*c;
printf("%f\n",v);
}
第三章
【3-1】C【3-2】C【3-3】D【3-4】C【3-5】D【3-6】B【3-7】C
【3-8】D【3-9】A【3-10】B【3-11】C【3-12】D【3-13】D
【3-14】A【3-15】C【3-16】C【3-17】C【3-18】A【3-19】C
【3-20】B【3-21】
(1)-2002500
(2)i=-200,j=2500(3)i=-200//(换行)j=2500
【3-22】12,0,0【3-23】一条语句,;【3-24】;
【3-25】10025.811.89234,100//25.81//1.89234,100//25.811.89234
【3-26】x=127,x=127,x=177,x=7f,x=127
【3-27】x=127,x=127,x=$127,x=$000127,x=%06d
【3-28】a=513.789215,a=513.79,a=513.78921500,a=513.78921500
【3-29-1】(错误)
main
{doublea,b,c,s,v;
printf(inputa,b,c:
\n);
scanf("%d%d%d",a,b,c);
s=a*b;
v=a*b*c;
printf("%d%d%d",a,b,c);
printf("s=%f\n",s,"v=%d\n",v);
}
【3-29-2】(正确)
main()
{floata,b,c,s,v;
printf("inputa,b,c:
");
scanf("%f%f%f:
",&a,&b,&c);
s=a*b;
v=a*b*c;
printf("a=%f,b=%f,c=%f\n",a,b,c);
printf("s=%f,v=%f\n",s,v);
}
【3-30】
main()
{inth,m;
h=560/60;
m=560%60;
printf("%dh:
%dm",h,m);
}
【3-31】
main()
{intm,n;
printf("inputm&n:
");
scanf("%d%d",&m,&n);
printf("\n%d,%d\n",m/n,m%n);
}
【3-32】
main()
{doublex,y,z,s;
printf("inputx,y,z:
");
scanf("%lf%lf%lf",&x,&y,&z);
s=(x+y+z)/3.0;
printf("\nAverage=%6.1lf\n",s);
}
【3-33】
main()
{inta,b,c,t;
printf("Inputa,b,c:
");
scanf("%d%d%d",&a,&b,&c);
t=c;
c=b;
b=a;
a=t;
printf("\na,b,c=%d,%d,%d\n",a,b,c);
}
第四章
【4-1】A【4-2】A【4-3】A【4-4】D【4-5】C【4-6】A【4-7】B【4-8】C
【4-9】D【4-10】C【4-11】非零,零【4-12】<,>,<=,>===,!
=
【4-13】!
&&,||【4-14】!
关系运算符,&&,||【4-15】!
【4-16】(A)a==b||a4【4-17】1【4-18】x<=0,1【4-19】3,2,2
【4-20】*#
【4-21】
main()
{inta,m;
printf("inputa:
");
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;
}
printf("a,m=%d,%d",a,m);
}
【4-22】
main()
{intage,y0,m0,d0,y1,m1,d1;
printf("\ninputastedent\'birthday(yy-mm-dd):
");
scanf("%d-%d-%d",&y0,&m0,&d0);
printf("\ninputtoday\'date(yy-mm-dd):
");
scanf("%d-%d-%d",&y1,&m1,&d1);
if((m1>m0)||(m1==m0)&&(d1>=d0))age=y1-y0;
elseage=y1-y0-1;
printf("\nThestudent\'ageis%d",age);
}
【4-23】
main()
{intm;
printf("\ninputainteger:
");
scanf("%d",&m);
if(m%2==0)printf("\n%disevent.",m);
elseprintf("\n%disord.",m);
}
【4-24】
main()
{inta,b,c,max;
printf("\ninputa,b,c:
");
scanf("%d%d%d",&a,&b,&c);
max=a;
if(b>max)max=b;
if(c>max)max=c;
printf("maxis%d",max);
}
【4-25-1】
main()
{intx,y;
printf("\ninputx:
");
scanf("%d",&x);
if((x>-5)&&(x<0))y=x;
if(x==0)y=x-1;
if((x>0)&&(x<10))y=x+1;
printf("\nxis%d,yis%d",x,y);
}
【4-25-2】
main()
{intx,y;
printf("\ninputx:
");
scanf("%d",&x);
if((x>-5)&&(x<10))
{if(x<0)y=x;
if(x==0)y=x-1;
if(x>0)y=x+1;
printf("\nxis%d,yis%d",x,y);
}
elseprintf("inputxiserror!
%c",'\007');
}
【4-25-3】
main()
{intx,y;
printf("\ninputx:
");
scanf("%d",&x);
if((x>-5)&&(x<0))y=x;
elseif(x==0)y=x-1;
elseif((x>0)&&(x<10))y=x+1;
printf("\nxis%d,yis%d",x,y);
}
【4-25-4】
main()
{intx,y;
printf("\ninputx:
");
scanf("%d",&x);
switch(x)
{case-4:
case-3:
case-2:
case-1:
y=x;break;
case0:
y=x-1;break;
case1:
case2:
case3:
case4:
case5:
case6:
case7:
case8:
case9:
y=x+1;break;
default:
printf("Inputxerror!
%c",7);
}
printf("\nxis%d,yis%d",x,y);
}
第五章
【5-1】D【5-2】C【5-3】B【5-4】C【5-5】C【5-6】B【5-7】D【5-8】A
【5-9】D【5-10】D【5-11】5,4,6【5-12】死循环【5-13】-1【5-14】11
【5-15】d=1.0,k++,k=0,x【5-17】
#include"stdio.h"
main()
{inti,j,sum=0,f=1;
for(i=1;i<=101;i+=2)
{sum=sum+i*f;
f=-f;}
printf("sum=%d\n",sum);
}
【5-18-1】
main()
{inti=1;
doublee=1.0,s=1.0;
for(i=1;i<=50;i++)
{s=s*i;
e=e+1/s;
}
printf("e=%lf",e);
}
【5-18-2】
main()
{inti=1;
floate=1.0,s=1.0;
while(1/s>=1e-04)/*8times*/
{s=s*i;
i++;
e=e+1/s;
}
printf("e=%10.6f",e);
}
【5-19】
main()
{inty,k=0;
for(y=1000;y<=2000;y++)
{if(y%4==0&&y%100!
=0||y%400==0){printf("%10d",y);k++;}
if(k%5==0)printf("\n");
}
}
【5-20】
#include"stdio.h"
main()
{inti,j,k;
clrscr();
for(i=1;i<=4;i++)
{for(j=1;j<=4-i;j++)
printf("");
for(k=1;k<=2*i-1;k++)
printf("*");
printf("\n");
}
for(i=1;i<=3;i++)
{for(j=1;j<=i;j++)
printf("");
for(k=1;k<=7-2*i;k++)
printf("*");
printf("\n");
}
}
第六章
【6-1】B【6-2】D【6-3】A【6-4】A【6-5】B【6-6】D【6-7】D【6-8】B
【6-9】A【6-10】A【6-11】C【6-12】26【6-13】1【6-14】ctype.h
【6-15】0或空格【6-16】10A20B30C40D【6-17】7.29101.298AB
【6-18】A7.29B101.298【6-19】ABC
【6-20】
#include
main()
{intk=0;charch;
while((ch=getchar())!
=’\n’)
{k++;
printf("%4c%4d",ch,ch);
if(k%3==0)printf("\n");
}
}
【6-21】
#include
main()
{longk=0;charch;
while((ch=getchar())!
=EOF)
{if(ch>='0'&&ch<='9')
{ch=ch-'0';
k=k*10+ch;
}
}
printf("%ld",k);
}
【6-22】
#include"stdio.h"
main()
{charch,n=0;
clrscr();
printf("inputruoganhang:
\n");
while((ch=getchar())!
=EOF)
if(ch=='\n')n++;
printf("hangshu=%d\n",n);
}
【6-23】
#include
main()
{intk=0;charch;
while((ch=getchar())!
=’\n’)
if(ch>='a'&&ch<='z')k++;
printf("\nThelowerletternumberis%d\n",k);
}
【6-24】
#include"stdio.h"
main()
{charch='A';
inti,j,k,n;
clrscr();
printf("inputhangshu:
\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{for(j=1;j<=n-i;j++)
putchar('');
for(k=1;k<=2*i-1;k++)
putchar(ch);
ch=ch+1;
putchar('\n');
}
}_
第七章
【7-1】C【7-2】C【7-3】B【7-4】C【7-5】A【7-6】D【7-7】A【7-8】12
【7-9】9.000000【7-10】4【7-11】n=1,s【7-12】<=y,z*x【7-13】1.0,s*i,0,f(k)
【7-14-1】(错误)
fun(intn)
{intk,yes;
for(k=2;k<=n/2;k++)
if(n%k==0)yes=0;
elseyes=1;
returnyes;
}
【7-14-2】(正确)
fun(intn)
{intk,yes=1;
for(k=2;k<=n/2;k++)
if(n%k==0)yes=0;
returnyes;
}
【7-15】
main()
{inta,b;
printf("Inputa&b:
");
scanf("%d%d",&a,&b);
printf("\n%d%%%d=%d",a,b,mymod(a,b));
}
mymod(inta,intb)
{intz;
z=a%b;
returnz;
}
【7-16】
#include"stdio.h"
doublefun(doublen)
{doublei,s=0.0,f=1;
for(i=1;i<=n;i++)
{s=s+1/i*f;
f=-f;}
returns;
}
main()
{doublen;
printf("inputn:
\n");
scanf("%lf",&n);
printf("s=%f",fun(n));
}
【7-17】
#include"stdio.h"
doublefun(doublem)
{doublei,s=1.0;
for(i=2;i<=m;i++)
s=s-1/(i*i);
returns;
}
main()
{doublem;
clrscr();
printf("inputm:
\n");
scanf("%lf",&m);
printf("s=%f",fun(m));
}【7-18】
#include
floatf(floatx)
{floatz;
z=x*x-5*x+4;
returnz;
}
main()
{floatx,y1,y2,y3;
printf("Inputx:
");
scanf("%f",&x);
y1=f
(2);
y2=f(x+15);
y3=f(sin(x));
printf("y1=%10.4f\n",y1);
printf("y2=%10.4f\n",y2);
printf("y3=%10.4f\n",y3);
printf("\n****END****");
}
第八章
【8-1】A【8-2】B【8-3】B【8-4】C【8-5】B【8-6】B【8-7】C【8-8】D
【8-9】B【8-10】C【8-11】C【8-12】C【8-13】110【8-14】71
【8-15】char*p=&ch;,p=&ch;,scanf(“%c”,p);,*p=’a’;,printf(“%c”,*p);
【8-16】s=p+3;,s-=2,50,*(s+1),2,1020304050
【8-17-1】
fun(x,y)
int*x,*y;
{intz1,z2;
z1=*x+*y;
z2=*x-*y;
*x=z1;*y=z2;
}
main()
{int*a,*b,A,B;
a=&A,b=&B;
printf("inputtwonumbers:
");
scanf("%d%d",a,b);
printf("a,b=%d,%d\n",*a,*b);
printf("beforecallfunction:
\n");
printf("a=%db=%d\n",*a,*b);
fun(a,b);
printf("aftercallfunction:
\n");
printf("a=%db=%d\n",*a,*b);
}
【8-17-2】
fun(x,y)
float*x,*y;
{floatz1,z2;
z1=*x+*y;
z2=*x-*y;
*x=z1;*y=z2;
}
main()
{float*a,*b,A,B;
a=&A;b=&B;
printf("inputtworealnumbers:
");
scanf("%f%f",a,b);
printf("a,b=%f,%f\n",*a,*b);
printf("beforecallfunction:
\n");
printf("a=%fb=%f\n",*a,*b);
fun(a,b);
printf("aftercallfunction:
\n");
printf("a=%fb=%f\n",*a,*b);
}
【8-18】
fun(int*a,int*b,int*c)
{intmax,min;
max=*a;min=*a;
if(*b>*a)max=*b;
if(*b<*a)min=*b;
if(*c>max)max=*c;
if(*c*a=max;*c=min;
}
main()
{inta,b,c;
printf("Inputa,b,c:
");
scanf("%d%d%d",&a,&b,&c);
printf("beforecallfunction:
\n");
printf("a=%db=%dc=%d\n",a,b,c);
fun(&a,&b,&c);
printf("aftercallfunction:
\n");
printf("max=%dmin=%d\n",a,c);
}
第9章
【9-1】D【9-2】A【9-3】A【9-4】A【9-5】C【9-6】A【9-7】B【9-8】D
【9-9】C【9-10】C【9-11】C【9-12】D【9-13】D【9-14】A
【9-15】A【9-16】A【9-17】C【9-18】C【9-19】9,0【9-20】6【9-21】12
【9-22】3【9-23】2721【9-24】-850,2,0【9-25】k=p,(k)
【9-26】c=getchar(),c-65
【9-27】
#include"stdio.h"
main()
{intnum[10]={0},i;
charc;
while((c=getchar())!
='\n')
if(c>='0'&&c<='9')num[c-'0']+=1;
for(i=0;i<10;i++)
printf("%c:
%d\n",i+'0',num[i]);
}_
【9-28】
#include"stdio.h"
#defineM10
input(int*a,intn)
{inti;
printf("inputintegernumber:
\n");
for(i=0;iscanf("%d",&a[i]);
printf("\n");
}
del(int*a,intk,intn