C语言程序设计第3版张磊编著参考答案docx.docx

上传人:b****6 文档编号:15381885 上传时间:2023-07-04 格式:DOCX 页数:36 大小:26.60KB
下载 相关 举报
C语言程序设计第3版张磊编著参考答案docx.docx_第1页
第1页 / 共36页
C语言程序设计第3版张磊编著参考答案docx.docx_第2页
第2页 / 共36页
C语言程序设计第3版张磊编著参考答案docx.docx_第3页
第3页 / 共36页
C语言程序设计第3版张磊编著参考答案docx.docx_第4页
第4页 / 共36页
C语言程序设计第3版张磊编著参考答案docx.docx_第5页
第5页 / 共36页
C语言程序设计第3版张磊编著参考答案docx.docx_第6页
第6页 / 共36页
C语言程序设计第3版张磊编著参考答案docx.docx_第7页
第7页 / 共36页
C语言程序设计第3版张磊编著参考答案docx.docx_第8页
第8页 / 共36页
C语言程序设计第3版张磊编著参考答案docx.docx_第9页
第9页 / 共36页
C语言程序设计第3版张磊编著参考答案docx.docx_第10页
第10页 / 共36页
C语言程序设计第3版张磊编著参考答案docx.docx_第11页
第11页 / 共36页
C语言程序设计第3版张磊编著参考答案docx.docx_第12页
第12页 / 共36页
C语言程序设计第3版张磊编著参考答案docx.docx_第13页
第13页 / 共36页
C语言程序设计第3版张磊编著参考答案docx.docx_第14页
第14页 / 共36页
C语言程序设计第3版张磊编著参考答案docx.docx_第15页
第15页 / 共36页
C语言程序设计第3版张磊编著参考答案docx.docx_第16页
第16页 / 共36页
C语言程序设计第3版张磊编著参考答案docx.docx_第17页
第17页 / 共36页
C语言程序设计第3版张磊编著参考答案docx.docx_第18页
第18页 / 共36页
C语言程序设计第3版张磊编著参考答案docx.docx_第19页
第19页 / 共36页
C语言程序设计第3版张磊编著参考答案docx.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计第3版张磊编著参考答案docx.docx

《C语言程序设计第3版张磊编著参考答案docx.docx》由会员分享,可在线阅读,更多相关《C语言程序设计第3版张磊编著参考答案docx.docx(36页珍藏版)》请在冰点文库上搜索。

C语言程序设计第3版张磊编著参考答案docx.docx

C语言程序设计第3版张磊编著参考答案docx

第三章

■•■

1.

#include

voidmain()

{

floatweight=0;

floatpay=0;

printfC'W输入邮件重量(单位:

g):

“);

scanf(”%f”,&weight);

if(weight>100)

{

pay=100*0.05+(weight-100)*0.02;

}

else

{

pay=weight*0.05;

}

printf("\n需要支付:

%f元”,pay);

}

2.

#include

voidmain()

{

floatx=0;

floaty=0;

printf("请输入x的值:

”);

scanf(”%f”,&x);

if(x<=0)

{

y=x;

}

elseif(x>0&&x

y=2*x;

y=3*x*x-6*x+7;

}

printf(H\ny的值为:

%fH,y);

}

3.

#include

voidmain()

{

inta=0zb=0,c=0;

inttemp=0;

printf(”请以空格隔开输入3个整数\n”);

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

temp=a;

jf(temp

{

a=b;

b=temp;

temp=a;

}

if(temp

{

a=c;

c=temp;

temp=a;

}

if(b

{

temp=b;

b=c;

c=temp;

}

printf("\n%d>%d>%d"/a,b,c);

}

4.

voidmain()

{

inta=0;

printfC'W输入一个整数:

”);

scanf("%d",&a);

讦(a%3==0&&a%5==0)

printf(H%d该数既能被3整除又能被5整除:

a);

}else

printf(“%d该数不能被3整除同时乂能被5整除蔦a);}

}

5.

voidmain()

{

inti=0;

printf(u请输入一个整数:

”);

scanf(“%cf,&i);

switch(i)

{

casel:

printf(H星期一");break;

case2:

pnntf("星期二”);break;

case3:

printf("星期三”);break;

case4:

printf("星期四");break;

case5:

printf("星期五”);break;

case6:

printf("星期六”);break;

case7:

printf("星期天");break;

default:

printf(''输入数据不合法\n”);

}

}

6.

#include

voidmain()

{

floata=0,b=0,c=0;

floatdt=O;

printff'请以空格隔开输入abc的值:

”);

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

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

if(dt<0)

{

printf("\n无解”);

}

else讦(dt==O)

{

printf("\n有唯一解为:

%f\n,b/2F);

printf(Hxl为:

%fx2为:

%f\n"/(sqrt(dt))/2.0*a-b,(-(b+sqrt(dt))/2.0*a));

}

7.

voidmain()

{

charch;

scanf("%c",&ch);

if(ch>='a'&&chv=T11ch>='A*&&chv=Z){

printf("S是字母:

%c",ch);

}

elseif(ch>='O'&&ch<=9)

{

printfj这是数字:

%c",ch);

}

else

{

printfC这是空白”);

}

}

8.

voidmain()

{

intn=OJ=l;

printfC输入n:

H);

scanf(”%d“,&n);

intsum=l;

loop:

sum=sum*i;

if(i

{

i++;

gotoloop;

}

printf("\n%d!

=%d\n,,/n/sum);

}

9.

voidmain()

intnum=0,temp=0/a=l;

inti=0;//位数printfC'输入一个整数:

“);scanf(“%cf,&num);

temp二num;printf(H\n逆序输出为:

”);do

i++;

a=a*10;printf(,,%d",num%10);

num=num/10;

}while(num>0);

printf("\n位数:

%d\n",i);

printf「%d”,a);

printfC'^别打印每一位数门;

while(i>0)

{

a=a/10;printf(”%d\t”,temp/a);temp=temp-temp/a*a;

i-;

}

 

第四章

 

 

1.选择题

CCA

CCCAA

2.程序分析题

1.n%4!

=02.1003.14.

1.voidmain()

intm=0,n=0,sum=l;

inti=0;

printfC'W以空格输入mnH);scanf("%d%d",&m/&n);for(i=l;i<=m+n;i++)

{sum=i*sum;

}printf(”%d“,sum);

}

2.

voidmain()

{

inti=0;

for(i=l;i<=100;i++)

{if(i%7!

=0)printf("%d\t",i);

}

}

3.

voidmain()

{

ints=0,n=0,i=0;while(s<=1000)

{

s二n+s;

n++;

}

n・・;

s=s-n;

printffs的值为:

%dn的值为:

%dH,s,n);}

4.

voidmain()

{

floata[20],temp=0;

inti=0;

for(i=0;i<20;i++)

scanf(“%f”,&a[i]);

}

temp=a[O];

for(i=0;i<20;i++)

{

if(temp

temp=a[i];

}

printf(“最大值为:

%f",temp);

}

5.

voidmain()

{

charstr[100]={0};

inti;

printf("Pleaseinputastring:

”);

gets(str);

for(i=0;str[i]!

=0;i++)

if(str[i]!

='a'&&str[i]!

='A,&&str[i]!

=T&&str[i]!

='5,&&str[i]!

='#')printf(”%c”,str[i]);

printf("\n");

}

6.

图案一

voidmain()

{

inti=4,j=0;

for(i=0;i<=4;i++)//控制输出的循环次数

{

for(j=0;j<4-i;j++)//控制每行输出多少个空格

{

printf(u”);

}

for(j=0;j<2*i-l;j++)//控制每行输出多少个*

printf("*u);

printf("\n");

}

for(i=3;i>0;i-)

for(j=4;j>i;j-)

{

printf(u");

}

for(j=0;j<2*i-l;j++)printf("*");

printfC'Xn");

}

}

图案二:

voidmain()

{

inti=0’n=5,j=0;

for(i=5;i>0;i-)

{

for(j=0;j<2*i-2;j++)

{

printf(n”);

}

for(j=5-i+l;j>0;j-)

{

printf(,,%d"zj);printf(u”);

}

printf('W);

}

}

7.

voidmain()

{

inti=0,a,b,c;

for(i=100;i<1000;i++)

{

a=i/100;

b=i%100/10;c=i%10;

if(a*a*a+b*b*b+c*c*c==i)printf(,,%d\t,,zi);

}

8.

voidmain()

{

doublea=100;

inti=0;

while(a>l)

{

a=a/2.0;

i++;

}

printf(”%d\n”,i);

}

9.

voidmain()

{

inta=l,b=2,c=5,sum=0;

for(inti=0;i<=100;i++){

for(intj=0;j<=50;j++){for(intk=0;k<=20;k++){

if(a*i+b*j+c*k==100){

sum+=l;

printf("%d个一・分,%d个2分,%d个5分\n”,i,j,k);}

}

}

}

printff'共%<1种换法舄sum);

}

10.

#include

#include

voidmain()

{

doublehl=100.0/h2;

inti;

h2=hl;

for(i=l;i<=10;i++)

printfC*第%d次落地反弹高度:

\n“,i);〃第X次落地后反弹高度h2=h2/2;

printf(“%f\n“,h2);

printf(“第%d次落地经过的路程\n”,i);〃第x次落地吋经过的路程

printf「%f\n”,hl);

hl=hl+(h2*2);

}

}

11.

main()

{

doublesum二0,n二1;

inti;

for(i=l;i<=64;i++)

sum=sum+n;n=2*n;

}

printff吆lf\n”,sum/5000000);

}

12.

voidmain()

{

//char*stateName[]={"1站站“,”3站舄“4站鳥“5站诂”,”7站“,“8站诂”,“A诂”/B站TC站站”,“E站”,”F站“};

charstateName[][15]={H1站穿2站丁3站严站”,”5站丁6站“,”7站”畀8站丁9站罗A站”,“B站”,“C站站:

'E站”,”F站”};

intizj,count=0;

for(i=0;i<15;i++)

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

if(i!

=j)

{

count++;

printf("序号%3d从%s至!

J%s\n",count,stateName[i],stateName[j]);

}

printf(“共%3d种票\n”,count);

}floatfun(intn)

floatS=0,p=0;inti;

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

{

P+=i;S+=l/p;

}returnS;

}

voidmain()

{

intn;

floatS;printf("\n请输入N:

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

S=fun(n);

printf(H结果为%f\n“,S);

}

第五章

1.选择题:

1~3BDB

2.程序分析题

1.k=p2.Str[i]!

二‘\0‘;str[i]>=97;i++;3.34.

3.编程题

1.

#includemain()

inta=l,b=l/c[20]/i/j=0;

for(i=0;i<10;i++)

{

a=a+b;

if(a%2==0)c[j++]=a;

b=a+b;if(b%2==0)c[j++]=b;

}c[j]='\O,;

for(i=0;i

printf(吆d\t”,c[i]);

}

2.

#include

voidinverse(inta[],intn)

{

inti,j,t;

for(i二O,j=n・l;i

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

}

voidmain()

{

intiza[6]={l,5,7,13,15,19},n=6;inverse(a,n);

for(i=0;ivn;i++)

printf(H%da[i]);

}

3.

#include

voidmain()

{

intn[6]={23/25z30/33,40/47},i/minflag;doubleaver=0,min,sum=0,t;

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

sum+二n[i];

aver=sum/6;min=aver-n[O];

讦(min>=0)minflag=0;

t=aver-n[i];

if(t>=0&&t

printf("%lf,%d\n'^avecminflag);

}4.

#include

#include

voidmain()

{

chars[80];

inti,n,times=0;gets(s);

n二strlen(s);

for(i=0;ivn;i++)

if(s[i]==,a,)

times+=l;

printf("\na出现的次数为:

%d\n“,times);

}5.

#include

#include

main()

{

chara[5][81]={0};

intcounter=O,i,j;

printf("请输入5段英文。

\n");

for(i=0;i<5;i++)

gets(a[i]);

for(i=0;i<5;i++)

{

for(j=0;j

if(a[i][j]!

='*)

counter++;

}

floatm;

m=counter*0.5;

printf("可以获得的稿费为:

%.2f7E\n"zm);}

6.

voidmain()

{

inta[20]={l,23,4,5,6,7,&9,10,11,12,13,14,15,16,17,18,19,20};

intb[2][10];

inti=Ozj,n=O,k=O;

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

{

if(a[j]%2==0)

{

b[O][n]=a[j];

n++;

}

else

{

b[l][k]=a[j];

k++;

}

}

for(i=0;i<2;i++)

{

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

{

printf("%dn,b[i][j]);

}

}

}

7.

#include

intmain()

{

intczb=l,f=O/s=O;//b表示单词开头,f表示以a开头,s计数while((c=getchar())!

='\n')

{

if(c=='a'&&b)

{

f=l;

b=0;

}

elseif(c=='')

if(f)s++;b=l;f=0;

}

else

{

b=0;

}

}

if(f)s++;

printf("%d\n"zs);return0;

}

8.

#include

voidmain()

{chara[5][10],b[100J;

inti;

for(i=0;i<5;i++)

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

b[0]=,\0,;

for(i=0;i<5;i++)

{

if(i>O)strcat(b,"");strcat(b,a[i]);

}

printf(”%s\n”,b);

}

9.

voidmain()

{

inta[4][5],b[4][5],c[4][5]JJ;

/*输入,数组a赋初值*/for(i=0;i<4;i++)

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

scanf(”%cT,&a[i][j]);

/*输入,数组a赋初值*/for(i=0;i<4;i++)

for(j=0;j<5;j++)scanf("%d",&b[i][j]);

/*生成新数组c*/

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

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

{

if((a[i][j]%2==0)&&(b[i][j]%2==0))c[i]Ul=a[i][j]-b[i]U];

else

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

}

/*输岀数组c*/

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

{

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

printf「%d\t”,c[i][j]);

printf(n\nn);

}

}

10.

#include

voidmain()

{

charsl[100],s2[100];

inti,j;

gets(sl);

for(i=0;sl[i];i++)

{

if(sl[i]>=,a'&&sl[i]<=,j,)s2[i]=sl[i]-49;

elseif(sl[i]>='k'&&sl[i]<='s')

s2[i]=sl[i]-10;

elseif(sl[i]==,t,)s2[i]='@';

elseif(sl[i]>=V&&sl[i]<=Y)s2[i]=sl[i]-83;

elseif(sl[i]==,u,)

elseif(sl[i]=='z')s2[i]=,+,;

elseif(sl[i]=='')

s2[i]=T;

else

s2[i]=sl[i];

s2[i]=,\0,;puts(sl);puts(s2);

第六章答案

一,选择题

l.C2.A3.D4.B5.C6.D7.D8.C9.C

二,编程分析题:

1.输出结果:

5

10

15

20

2.输出结杲:

x=l

Y=1

x=1

Y=1

x=1

Y=1

3.输出结果:

程序有错

4.输出结果:

result:

0

三,编程题

1•设计一个将公制长度(cm)转换为英制长度(英寸)的函数,在主函数中输入公制长

度,然后输出英制长

#include"stdio.h"

voidescfdoublec)

{

printf("%f,',c*0.3937);

}

intmain()

doublec;

printfC'W输入长度:

H);scanf(”%l化&c);

esc(c);

return0;

#include

#include

floats(floathzfloatd)

{

floatss=0;ss=3.14*(d/2)*(d/2)+3.14*(d/2)*sqrt(h*h+(d/2)*(d/2));returnss;

}

floatv(floath,floatd)

{

floatvv=0;vv=(1.0/3.0)*3.14*(d/2)*(d/2)*h;

returnvv;

}

voidmain()

{

floatd;

floath;

printfC请输入直径:

”);

scanf(”%f”,&d);

printf("请输入高:

");

scanf(“%f”,&h);

printfC®锥的表面积为:

%f”,s(h,d));

printf(“圆锥的体积为:

%f\n,,/v(h/d));

}

(注:

没有密度,求不出质量)

3.

#include

#include

//convert/to■:

char*ymd(char*s){

inti;

for(i=O;i

}

main()

{

chary[]="1999/6/23H;

printf(”%s\n“,ymd(y));

return0;

}

4•按照如下公式,设计一个求n得近似值的函数:

n/2^1+l/3+l/3*2/5+l/3*2/5*3/7...

#include#includedoublef(inti)

{staticdoublep=l;p=p*i/(i+i+l);returnp;

}

intmain()

{

inti;

doublepi=l;for(i=l;i<=1000;i卄)pi+=f(i);

printf(,,Pi=%.10lf\n,,/pi*2);return0;

}

5•设计一个函数,计算下面表达式前n项中偶数项的和:

1*2*3+2*3*4+...

#include

intoushusumfintn)

{

intsum=0;

for(inti=l;i<=n;i++)

{

if(i%2==0)

sum+=i*(i+l)*(i+2);

};

returnsum;

}intmain()

intn;

printff'plsintputn:

");

scanf(”%d“,&n);

printf(H\n偶数项和是:

%d\n",oushusum(n));

6.

#include

intgongyue(intm,intn){

intr;

if(m==n)returnm;

else

while((r=m%n)!

=O)

{

m二n;

n二r;

}

returnn;

}intgongbei(intm,intn)

{

if(m==n)returnm;

else

returnm*n/gongyue(m,n);

}voidmain()

{

inta,b,i;

printf("pleaseinputtwonumber:

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

printf("最大公约数xi:

%d\n",gongyue(a,b));printf("最小公倍数是:

%d\n",gongbei(a,b));}

#include

#inelude

longfactorial(intn)

{

longresult;

if

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2