C语言程序设计导学第三版参考答案杜友福编.docx

上传人:b****5 文档编号:11958590 上传时间:2023-04-16 格式:DOCX 页数:25 大小:18.72KB
下载 相关 举报
C语言程序设计导学第三版参考答案杜友福编.docx_第1页
第1页 / 共25页
C语言程序设计导学第三版参考答案杜友福编.docx_第2页
第2页 / 共25页
C语言程序设计导学第三版参考答案杜友福编.docx_第3页
第3页 / 共25页
C语言程序设计导学第三版参考答案杜友福编.docx_第4页
第4页 / 共25页
C语言程序设计导学第三版参考答案杜友福编.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

C语言程序设计导学第三版参考答案杜友福编.docx

《C语言程序设计导学第三版参考答案杜友福编.docx》由会员分享,可在线阅读,更多相关《C语言程序设计导学第三版参考答案杜友福编.docx(25页珍藏版)》请在冰豆网上搜索。

C语言程序设计导学第三版参考答案杜友福编.docx

C语言程序设计导学第三版参考答案杜友福编

C语言程序设计导学(第三版)参考答案-杜友福-编

C语言实验(第三版)参考答案

实验一

3.程序填空题

a、b、t

4.程序改错题

(1)

scanf("%lf",&f);

c=5.0/9.0*(f-32.0);

printf("f=%lfc=%lf\n",f,c);

(2)

scanf("%d",&n);

sum=50*n;

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

5.程序设计题

(1)

#include

voidmain()

{

floata,b,c,aver;

printf("Inputabc:

");

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

aver=(a+b+c)/3.0;

printf("average=%f\n",aver);

}

(2)

#include

voidmain()

{

floatrmb,dollar;

printf("Inputrmb:

");

scanf("%f",&rmb);

dollar=rmb/6.508;

printf("%frmb=%f$\n",rmb,dollar);

}

实验二

2.程序填空题

(1)

num%10、num/100%10、g+b==s

(2)

flag=0、year%100!

=0、year%400==0

3.程序改错题

switch(grade)

case10:

case6:

printf("grade=D\n");break;

4.程序设计题

(1)

include

voidmain()

{

intx,n;

scanf("%d",&x);

if(x<0)x=-x;

if(x>=100000)x=x%100000;

if(x>=10000)n=5;

elseif(x>=1000)n=4;

elseif(x>=100)n=3;

elseif(x>=10)n=2;

elsen=1;

printf("%dhas%ddigits\n",x,n);

switch(n)

{

case1:

printf("%d\n",x);break;

case2:

printf("%d%d\n",x%10,x/10);break;

case3:

printf("%d%d%d\n",x%10,x/10%10,x/100);break;

case4:

printf("%d%d%d%d\n",

x%10,x/10%10,x/100%10,x/1000);break;

case5:

printf("%d%d%d%d%d\n",

x%10,x/10%10,x/100%10,x/1000%10,x/10000);break;}

}

(2)

#include

voidmain()

{

floata,b,c,max;

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

if(a>b)

max=a;

else

max=b;

max=max>c?

max:

c;

printf("max=%g\n",max);

}

实验三

2.程序填空题

(1)

&m、i<=m、t+1.0/(i*i)

(2)

m

3.程序改错题

scanf("%ld",&m);

if(d%2!

=0)

m=m/t;

4.程序设计题

(1)

#include

voidmain()

{

intx,s=0;

for(x=50;x<=180;x++)

if(x%3==0&&x%4==0)

{

printf("%d",x);

s=s+x;

}

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

}

(2)

#include

voidmain()

{

inta,b,c,d,e;

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

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

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

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

for(e=2;e<=9;e++)

if((a*1000+b*100+c*10+d)*e==d*1000+c*100+b*10+a)

printf("%d%d%d%d*%d=%d%d%d%d\n",

a,b,c,d,e,d,c,b,a);

}

实验四

2.程序填空题

(1)

m=m-n、n=n-m、m!

=n

(2)

a==0||diac<0、(-b+sqrt(disc))/(2*a)、

(-b-sqrt(disc))/(2*a)

3.程序改错题

t=1.0/((2*n-1)*(2*n+1));

while(t>=0.00001);

4.程序设计题

(1)

#include

voidmain()

{

intx,a,b,c;

for(x=200;x<=300;x++)

{

a=x/100;

b=x/10%10;

c=x%10;

if(a+b+c==12&&a*b*c==42)

printf("%d",x);

}

printf("\n");

}

(2)

#include

#include

voidmain()

{

floata,c,fa,f1a,fc;

a=88;

do

{

fa=5*a*a*a*a*a-8*a*a*a+10*a*a-7*a+25;

f1a=25*a*a*a*a-24*a*a+20*a-7;

c=a-fa/f1a;

fc=5*c*c*c*c*c-8*c*c*c+10*c*c-7*c+25;

a=c;

}while(fabs(fc)>0.0001);

printf("x=%f,y=%f\n",c,fc);

}

实验五

2.程序填空题

(1)

&a[i][j]、a[0][0]、i、j、max

(2)

x=a[i]、a[j]=x

3.程序改错题

inta[N]={1,5,8,7,6,3,2,4};

for(i=0;i

t=a[i],a[i]=a[k],a[k]=t;

4.程序设计题

(1)

#include

voidmain()

{

inti,j,f=0,a[3][4]={1,2,3,4,5,6,7,-8,9,10,-11,12};

for(i=0;(i<3&&f==0);i++)

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

{

if(a[i][j]<0)

{

f=1;

printf("i=%d,j=%d\n",i,j);

break;

}

}

if(f==0)

printf("nofound!

\n");

}

(2)

#include

#include

#defineN10

voidmain()

{

inti,j,s;

//inta[N]={1,3,5,7,9,11,13,15,17};

inta[N]={17,15,13,11,9,7,5,3,1};

scanf("%d",&s);

i=0;

if(a[0]

while(s>a[i])i++;

else

while(s

for(j=N-1;j>i;j--)

a[j]=a[j-1];

a[j]=s;

for(i=0;i

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

printf("\n");

}

实验六

2.程序填空题

str[i]!

='\0'、bb[5]++、bb[i]或bb[5]

3.程序改错题

for(k=0;substr[k]==str[i+k];k++)

if(substr[k+1]=='\0')

4.程序设计题

(1)

#include

#include

voidmain()

{

charstr[81],c;

inti,j;

printf("Inputastring:

");

gets(str);

printf("Inputachar:

");

c=getchar();

for(i=0;str[i]!

='\0';i++)

if(str[i]==c)

{

for(j=i;j

str[j]=str[j+1];

i--;

}

puts(str);

}

(2)

#include

#include

voidmain()

{

charstr[81],substr[81];

inti,n=-1;

printf("Inputastring:

");

gets(str);

printf("Inputasubstring:

");

gets(substr);

for(i=0;str[i]!

='\0';i++)

{

for(k=0;substr[k]==str[i+k];k++)if(substr[k+1]=='\0')

{n=i;break;}

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

}

实验七

2.程序填空题

n-1、a[j+1]、a[j+1]、s

3.程序改错题

intleap(intyear)

flag=flag||(year%400==0);

if(leap(y)==1)

4.程序设计题

(1)

#include

intisprime(int);

voidmain()

{

intx,s=0;

for(x=200;x<=300;x++)

if(isprime(x))

{s=s+x;printf("%d",x);}

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

}

intisprime(intn)

{

inti,flag=1;

for(i=2;i

if(n%i==0)

{flag=0;break;}

return(flag);

}

(2)

#defineN10

#include

voidsort(inta[],intn)

{

inti,j,k,t;

for(i=0;i

{

k=i;

for(j=i+1;j

if(a[j]

k=j;

t=a[k];

a[k]=a[i];

a[i]=t;

}

}

voidmain()

{

inti,x[10]={5,7,4,2,8,6,1,9,0,3};

printf("theoriginalarray:

\n");

for(i=0;i

printf("%d",x[i]);

printf("\n");

sort(x,N);

printf("thesortedarray:

\n");

for(i=0;i

printf("%d",x[i]);

printf("\n");

}

实验八

2.程序填空题

f(a)*f(b)、x=newx(x,b)、x=newx(a,x)

3.程序改错题

if(s[i]>='0'&&s[i]<='9')

s[j++]=s[i];

s[j]='\0';

4.程序设计题

(1)

#include

#include

voidfun(chars[],inti,intj)

{

chart;

if(i>=j)

return;

else

{

t=s[i];

s[i]=s[j];

s[j]=t;

fun(s,i+1,j-1);

}

}

voidmain()

{

charstr[81];

gets(str);

fun(str,0,strlen(str)-1);

puts(str);

}

(2)

//sy8proc2.c

#include

#include

externdoublenewx(doublea,doubleb);

doublef(doublex)

{

doubley;

y=2*x*x*x-3*x*x+7*x-13;

return(y);

}

voidmain()

{

doublea,b,x;

do

{

printf("Pleaseinputa,b:

");

scanf("%lf,%lf",&a,&b);

}while(f(a)*f(b)>0);

do

{

x=newx(a,b);

if(f(a)*f(x)>0)

x=newx(x,b);

else

x=newx(a,x);

}while(fabs(f(x))>0.00001);

printf("x=%lf,y=%lf\n",x,f(x));

}

//sy8newx2.c

doublenewx(doublea,doubleb)

//或externdoublenewx(doublea,doubleb)

{

doublexnew;

xnew=(a*f(b)-b*f(a))/(f(b)-f(a));

return(xnew);

}

 

实验九

2.程序填空题

(1)

p=a、*(*p+j)

注:

外循环改为:

for(i=0;i<3;i++,p++)

(2)

pstr=s、*pstr-'0'、pstr++

3.程序改错题

*ave=sum/n;

scanf("%f",score+k);/

printf("Theresultis:

%d\n",average(score,m,&aver));

4.程序设计题

#include

voidfun(char*pp)

{

inti,n=0;

while(*(pp+n)=='*')

n++;

for(i=n;*(pp+i)!

='\0';i++)

if(*(pp+i)!

='*')

{

*(pp+n)=*(pp+i);

n++;

}

*(pp+n)='\0';

}

voidmain()

{

charaa[80];

printf("Pleaseenterastring:

\n");

scanf("%s",aa);

fun(aa);

printf("Afterchanging,thestringbecome:

\n");

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

}

(1)

#include

voidfun(char*pp)

{

inti,k,n=0;

for(i=0;*(pp+i)!

='\0';i++)

if(*(pp+i)!

='*')

{

*(pp+n)=*(pp+i);

n++;

k=0;

}

else

k++;

if(k!

=0)

{

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

*(pp+n+i)='*';

*(pp+n+i)='\0';

}

else

*(pp+n)='\0';

}

voidmain()

{

charaa[80];

printf("Pleaseenterastring:

\n");

scanf("%s",aa);

fun(aa);

printf("Afterchanging,thestringbecome:

\n");

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

}

(2)

#include

voidfun(char*pp)

{

inti,k,j=0,n=0;

while(*(pp+n)=='*')

n++;

for(i=n;*(pp+i)!

='\0';i++)

if(*(pp+i)!

='*')

{

*(pp+j)=*(pp+i);

j++;

k=0;

}

else

{

*(pp+j)=*(pp+i);

j++;

k++;

}

if(k!

=0)

{

for(i=0;i

*(pp+i)=*(pp+i);

*(pp+i)='\0';//或去掉此for循环,直接用*(pp+j-k)='\0';

}

else

*(pp+j)='\0';

}

voidmain()

{

charaa[80];

printf("Pleaseenterastring:

\n");

scanf("%s",aa);

fun(aa);

printf("Afterchanging,thestringbecome:

\n");

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

}

(3)

#include

voidfun(char*pp)

{

inti,k,n=0;

while(*(pp+n)=='*')

n++;

for(i=n;*(pp+i)!

='\0';i++)

if(*(pp+i)!

='*')

{

*(pp+n)=*(pp+i);

n++;

k=0;

}

else

k++;

if(k!

=0)

{

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

*(pp+n+i)='*';

*(pp+n+i)='\0';

}

else

*(pp+n)='\0';

}

voidmain()

{

charaa[80];

printf("Pleaseenterastring:

\n");

scanf("%s",aa);

fun(aa);

printf("Afterchanging,thestringbecome:

\n");

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

}

实验十

2.程序填空题

(*p)、structstu、&student[2]

3.程序改错题

}STREC;

if(a[i].sc

fun(s,N);

4.程序设计题

(1)

#defineN10

#include

typedefstruct

{

charnum[10];

intsc;

}STREC;

floatfun(STRECa[],intn)

{

inti,s=0;

floatave;

for(i=0;i

s=s+a[i].sc;

ave=(float)s/n;

returnave;

}

voidmain()

{

inti;

floataver;

STRECs[N]={{"Li001",85},{"Li003",76},{"Li002",69},

{"Li004",96},{"Li006",79},{"Li005",86},

{"Li008",68},{"Li007",77},{"Li010",96},

{"Li009",64}};

aver=fun(s,N);

for(i=0;i

if(s[i].sc>aver)

printf("%s:

%d\n",s[i].num,s[i].sc);

}

(2)

#defineN10

#include

typedefstruct

{

charnum[10];

intsc;

}STREC;

intfun(STRECa[],intn)

{

inti,max=-1;

for(i=0;i

if(a[i].sc>max)

max=a[i].sc;

returnmax;

}

voidmain()

{

inti,maxsc;

STRECs[N]={{"Li001",85},{"Li003",76},{"Li002",69},

{"Li004",96},{"Li006",79},{"Li005",86},

{"Li008",68},{"Li007",77},{"Li010",96},

{"Li009",64}};

maxsc=fun(s,N);

for(i=0;i

if(s[i].sc==maxsc)

printf("%s:

%d\n",s[i].num,s[i].sc);

}

(3)

#include

#defineM5//人数

#defineN3//课程数

structstudent

{

charnum[10];

charname[20];

floatscore[N+1];

};

voidmain()

{

structstudentstud[M];

inti,j,max;

floataver;

printf("Inputdata:

\n");

printf("NoNamescore1score2score3\n");

for(i=0;i

{

scanf("%s%s",stud[i].num,stud[i].name);

scanf("%f%f%f",&stud[i].score[0],&stud[i].score[1],

&stud[i].score[2]);

}

printf("scoreaverage:

");

for(j=0;j

{

aver=0;

for(i=0;i

aver=aver+stud[i].score[j];

aver=aver/M;

printf("%

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

当前位置:首页 > 工程科技 > 能源化工

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

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