C语言程序设计教程李含光郑关胜清华大学出版社习题答案习题答案完美打印版.docx

上传人:b****5 文档编号:28511075 上传时间:2023-07-18 格式:DOCX 页数:45 大小:23.42KB
下载 相关 举报
C语言程序设计教程李含光郑关胜清华大学出版社习题答案习题答案完美打印版.docx_第1页
第1页 / 共45页
C语言程序设计教程李含光郑关胜清华大学出版社习题答案习题答案完美打印版.docx_第2页
第2页 / 共45页
C语言程序设计教程李含光郑关胜清华大学出版社习题答案习题答案完美打印版.docx_第3页
第3页 / 共45页
C语言程序设计教程李含光郑关胜清华大学出版社习题答案习题答案完美打印版.docx_第4页
第4页 / 共45页
C语言程序设计教程李含光郑关胜清华大学出版社习题答案习题答案完美打印版.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

C语言程序设计教程李含光郑关胜清华大学出版社习题答案习题答案完美打印版.docx

《C语言程序设计教程李含光郑关胜清华大学出版社习题答案习题答案完美打印版.docx》由会员分享,可在线阅读,更多相关《C语言程序设计教程李含光郑关胜清华大学出版社习题答案习题答案完美打印版.docx(45页珍藏版)》请在冰豆网上搜索。

C语言程序设计教程李含光郑关胜清华大学出版社习题答案习题答案完美打印版.docx

C语言程序设计教程李含光郑关胜清华大学出版社习题答案习题答案完美打印版

第1章习题参考答案

1.单项选择题

(1)A

(2)C(3)D(4)C(5)B

2.填空题

(1)函数

(2)主函数(main)

(3)printf(),scanf()

第2章习题参考答案

1.单项选择题

1-5CBCCC6-10CDCDC11-13DBB

2.填空题

(1)1

(2)26(3)6,4,2(4)10,6(5)3.000000

(6)双精度(double)(7)9(8)字母,数字,下划线(9)13.700000

(10)11(11)((m/10)%10)*100+(m/100)*10+m%10(12)0

(13)10,9,11(15)(x<0&&y<0)||(x<0&&z<0)||(y<0||z<0)(16)double

(17)x==0(18)sqrt(fabs(a-b))/(3*(a+b))(19)sqrt((x*x+y*y)/(a+b))

第3章习题参考答案

1.单项选择题

1-5CCCDD6-10BCDBC11-15BCBBB16A

2.填空题

(1)用;表示结束

(2){}(3)y=x<0?

1:

x==0?

0:

-1

(4)y%4==0&&y%100!

=0||y%400==0(5)上面未配对(6)default标号

(7)while,dowhile,for(8)dowhile(9)本次(10)本层

3.阅读程序,指出结果

(1)yes

(2)*&(3)ABother(4)2870(5)2,0(6)8(7)36

(8)1(9)3,1,-1,3,1,-1(10)a=12,y=12(11)i=6,k=4

(12)1,-2

4.程序填空

(1)x:

y,u:

z

(2)m=n,m!

=0,m=m/10

(3)t

(4)m%5==0,printf(“%d\n”,k)

(5)cx=getchar(),cx!

=front,cx

(6)doubles=0,1.0/k,%lf

(7)s>=0,s

5.编程题

(1).

#include

intmain()

{

doublex,y;

scanf("%lf",&x);

if(x<1)

y=x;

elseif(x>=1.0&&x<10)

y=2*x-11;

else

y=3*x-11;

printf("%lf\n",y);

return0;

}

(2).

#include

intmain()

{

doublex,y,z,min;

scanf("%lf%lf%lf",&x,&y,&z);

if(x>y)

min=y;

else

min=x;

if(min>z)

min=z;

printf("min=%lf\n",min);

return0;

}

(3).

#include

intmain()

{

inty,m,d,flag,s=0,w,i;

scanf("%d%d%d",&y,&m,&d);

flag=(y%4==0&&y%100!

=0||y%400==0);

w=((y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400)%7;

for(i=1;i<=m;i++)

{

switch(i)

{

case1:

s=d;break;

case2:

s=31+d;break;

case3:

s=59+d;break;

case4:

s=90+d;break;

case5:

s=120+d;break;

case6:

s=151+d;break;

case7:

s=181+d;break;

case8:

s=212+d;break;

case9:

s=243+d;break;

case10:

s=273+d;break;

case11:

s=304+d;break;

case12:

s=334+d;break;

}

if(flag==1&&m>2)

s=s+1;

s=(w+s)%7;

if(s==0)

printf("星期日\n");

else

printf("星期%d\n",s);

return0;

}

(4).

#include

intmain()

{

floatp,r;

scanf("%f",&p);

if(p<=10)

r=p*0.1;

elseif(p>10&&p<=20)

r=10*0.1+(p-10)*0.075;

elseif(p>20&&p<=40)

r=10*0.1+10*0.075+(p-20)*0.05;

elseif(p>40&&p<=60)

r=10*0.1+10*0.075+20*0.05+(p-40)*0.03;

elseif(p>60&&p<=100)

r=10*0.1+10*0.075+20*0.05+20*0.03+(p-60)*0.015;

elseif(p>100)

r=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(p-100)*0.01;

printf("%f\n",r);

return0;

}

(5).

#include

intmain()

{

charc;

while((c=getchar())!

='\n')

{

if(c>='a'&&c<='z')

c=c-32;

putchar(c);

}

return0;

}

(6).

#include

intmain()

{

intm,k=2;

printf("输入一个正整数:

\n");

scanf("%d",&m);

while(k

if(m%k==0)

{

printf("%4d",k);

m=m/k;

}

else

k++;

printf("%4d\n",m);

return0;

}

(7).

#include

intmain()

{

inta,n,s=0,p=0,i;

scanf("%d%d",&n,&a);

for(i=1;i<=n;i++)

{

p=p*10+a;

s=s+p;

}

printf("%d\n",s);

return0;

}

(8).

#include

intmain()

{

inti,j,k;

for(i=1;i<=9;i++)

for(j=0;j<=9;j++)

for(k=0;k<=9;k++)

printf("%5d",100*i+10*j+k);

return0;

}

(9).

#include

#include

intmain()

{

floata=-10,b=10,x,f1,f2,f;

f1=(((2*a-4)*a+3)*a)-6;

f2=(((2*b-4)*b+3)*b)-6;

do

{

x=(a+b)/2;

f=(((2*x-4)*x+3)*x)-6;

if(f*f1<0)

{

b=x;

f2=f;

}

else

{

a=x;

f1=f;

}

}while(fabs(f)>=1e-6);

printf("%6.2f\n",x);

return0;

}

(10).

#include

#include

intmain()

{

intn=2;

doubleeps,t,s=0,x;

scanf("%lf%lf",&x,&eps);

t=x;

s=t;

while(fabs(t)>=eps)

{

t=-t*(2*n-3)*x*x/(2*n-2);

s=s+t/(2*n);

n++;

}

printf("%d,%lf\n",n,s);

return0;

}

(11).

#include

intmain()

{

unsignedlongs,t=0,p=1;

scanf("%u",&s);

while(s!

=0)

{

if((s%10)%2!

=0)

{

t=t+(s%10)*p;

p=p*10;

}

s=s/10;

}

printf("%u\n",t);

return0;

}

第4章习题参考答案

1.单项选择题

1-5DDDBD6-10BADCD11-14BDAB

2.填空题

(1)2

(2)嵌套,递归

(3)全局变量,局部变量,静态变量,动态变量

(4)auto,static,register,extern

(5)外部变量(6)编译,运行

3.阅读程序,指出结果

(1)15

(2)5(3)5,4,3

(4)i=5

i=2

i=2

i=4

i=2

(5)求水仙花数(6)-5*5*5(7)30

(8)010

111

212

4.程序填空

(1)floatfun(float,float),x+y,x-y,z+y,z-y

(2)x,x*x+1

(3)s=0,a=a+b

5.编程题

(1).

#include

unsignedintfun(unsignedint);

intmain()

{

unsignedints;

scanf("%u",&s);

printf("%u\n",fun(s));

return0;

}

unsignedintfun(unsignedints)

{

unsignedintp=0;

while(s!

=0)

{

p=p+s%10;

s=s/10;

}

returnp;

}

(2).

#include

#include

#include

voidf1(float,float,float,float);

voidf2(float,float,float,float);

voidf3(float,float,float,float);intmain()

{

floata,b,c,d;

scanf("%f%f%f",&a,&b,&c);

if(a==0)

{

printf("不是一元二次方程\n");

exit(0);

}

d=b*b-4*a*c;

if(d>0)

f1(a,b,c,d);

elseif(d==0)

f2(a,b,c,d);

else

f3(a,b,c,d);

return0;

}

voidf1(floata,floatb,floatc,floatd){

floatx1,x2;

{

x1=(-b+sqrt(d))/(2*a);

x2=(-b-sqrt(d))/(2*a);

printf("%.2f,%.2f\n",x1,x2);

}

}

voidf2(floata,floatb,floatc,floatd){

floatx1,x2;

{

x1=-b/(2*a);

x2=-b/(2*a);

printf("%.2f,%.2f\n",x1,x2);

}

}

voidf3(floata,floatb,floatc,floatd){

floatx1,x2;

{

x1=-b/(2*a);

x2=sqrt(-d)/(2*a);

printf("%.2f+i*%.2f\n",x1,x2);

printf("%.2f-i*%.2f\n",x1,x2);

}

}

(3).

#include

doublep(int,double);

intmain()

{

intn;

doublex;

do

{

scanf("%d",&n);

}while(n<0);

scanf("%lf",&x);

printf("%lf\n",p(n,x));

return0;

}

doublep(intn,doublex)

{

doublepn;

if(n==0)

pn=1;

elseif(n==1)

pn=x;

else

pn=((2*n-1)*x*p(n-1,x)-(n-1)*p(n-2,x))/n;

returnpn;

}

(4).

#include

#defineRATE0.053

doublefun(float);

voiddisplay(float,int);

intmain()

{

floatdep;

intseason;

scanf("%f%d",&dep,&season);

display(dep,season);

return0;

}

doublefun(floatd)

{

returnd*RATE;

}

voiddisplay(floatd,ints)

{

inti;

printf("季度利余额\n");printf("-------------------------------\n");

for(i=1;i<=s;i++)

{

printf("%-4d%-.2f%-.2f\n",i,fun(d),fun(d)*i+d);

printf("-------------------------------\n");

}

}

(5).

#include

doublefun(void);

intmain()

{

printf("%lf\n",fun());

return0;

}

doublefun(void)

{

doubles=0;

intn=1;

while((double)(2*n-1)/((2*n)*(2*n))>1e-4)

{

s=s+(double)(2*n-1)/((2*n)*(2*n));

n++;

}

returns;

}

(6).

#include

intfun(int);

intmain()

{

intw;

scanf("%d",&w);

printf("%d\n",fun(w));

return0;

}

intfun(intw)

{

intn=1,p=1,m;

m=w;

while(m>10)

{

m=m/10;

p=p*10;

n++;

}

returnw%p;

}

第5章习题参考答案

1、选择题:

1-5C(BC)BBA6-8DDB

2、填空题

(1)0,9

(2)floatrealArray[100],charstrArray[16],intintArray[1000]

(3)运算符sizeof(4)6字节

3、阅读程序,写出下面程序的运行结果

(1)aa

bb

ccdd

(2)ab

c

d

(3)ahAMa(4)0010(5)1345

(6)Thisisthetitle.

Name1isRosalinda

Name2isZeke

ThebiggestnamealpabeticallyisZeke

BothnamesareRosalindaZeke

(7)00000000

01234567

025681074814

036912151821

0481216202428

051015201773035

06121824303642

07142128354249

4、程序填空

(1)a[i][j]!

=a[j][i],1

(2)0,a[i]

(3)inta[],intb[],b[i]=a[i],-999,arraycopy(a,b),b[i++]

(4)a

5、编程题

(1)

#include

intmain(){

1inta[3][4]={0,2,9,7,

5,13,6,8,

27,11,1,3

};

inti,j,temp;

for(i=0,j=0;j<4;j++){

temp=a[2-i][j];

a[2-i][j]=a[i][j];

a[i][j]=temp;

}

for(i=0;i<3;i++){

for(j=0;j<4;j++)

printf("%3d",a[i][j]);

printf("\n");

}

return0;

}

(2)

#include

intmain(){

staticinta[6][6];

inti,j,t=1;

for(i=0;i<6;i++){

t=i+1;

for(j=0;j

a[i][j]=t--;

}

for(i=0;i<6;i++){

for(j=0;j<6;j++)

printf("%3d",a[i][j]);

printf("\n");

}

return0;

}

(3)

#include

#defineM3

#defineN4

#defineR5

intmain(){

staticinta[M][N],b[N][R],c[M][R];

inti,j,k;

2printf("Matrixa:

\n");

for(i=0;i

for(j=0;j

scanf("%d",&a[i][j]);

printf("Matrixb:

\n");

for(i=0;i

for(j=0;j

scanf("%d",&b[i][j]);

for(i=0;i

for(j=0;j

for(k=0;k

c[i][k]+=a[i][j]*b[j][k];

for(i=0;i

for(j=0;j

printf("%3d",c[i][j]);

printf("\n");

}

return0;

}

(4)

#include

#defineM5

intmain(){

staticinta[M];

inti,max=-1,min=100,maxi,mini,temp;

for(i=0;i

scanf("%d",&a[i]);//0~99间的值

for(i=0;i

if(max

max=a[i];

maxi=i;

}

if(min>a[i]){

min=a[i];

mini=i;

}

}

temp=a[maxi];

a[maxi]=a[mini];

a[mini]=temp;

for(i=0;i

printf("%3d",a[i]);

return0;

}

3(5)

#include

#defineM3

#defineN4

intmain(){

staticinta[M][N];

intmax=-1,sumcol=0,sumrow=0;

inti,j,maxi,col;

for(i=0;i

sumrow=0;

for(j=0;j

scanf("%d",&a[i][j]);

sumrow+=a[i][j];

}

if(max

max=sumrow;

maxi=i;

}

}

printf("whichcolsumwillbecaculated?

(>0)");

scanf("%d",&col);

for(i=0;i

sumcol+=a[i][col-1];

printf("The%dthrow'ssumismax,max=%d\n",maxi+1,max);

printf("The%dthcolumn'ssum=%d\n",col,sumcol);

return0;

}

(6)

#include

#defineM81

intmain(){

staticcharstr[M];

inti,count=0;

charch;

gets(str);

fflush(stdin);//清空输入缓冲区,以便读入字符数据

printf("Whichcharacterwillbefound?

");

ch=getchar();

for(i=0;i

if(ch==str[i])

count++;

printf("Thenumberofcharacter'%c'is%d\n",ch,count);

4return0;

}

(7)

#include

#include

#defineN10//同学人数

#defineM5//课程数

voidenter_scores

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1