C语言程序设计导学参考解答.docx_第1页
C语言程序设计导学参考解答.docx_第2页
C语言程序设计导学参考解答.docx_第3页
C语言程序设计导学参考解答.docx_第4页
C语言程序设计导学参考解答.docx_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计导学(第三版)参考答案 杜友福 编C语言实验(第三版)参考答案 实验一 3. 程序填空题 a 、 b 、 t 4. 程序改错题 (1) scanf(%lf,&f); c=5.0/9.0*(f-32.0); printf(f=%lf c=%lfn,f,c); (2) scanf(%d,&n); sum=50*n; printf(n=%d,s=%dn,n,s); 5. 程序设计题 (1) #include void main() float a,b,c,aver; printf(Input a b c:); scanf(%f%f%f,&a,&b,&c); aver=(a+b+c)/3.0; printf(average=%fn,aver); (2) #include void main() float rmb,dollar; printf(Input rmb:); scanf(%f,&rmb); dollar=rmb/6.508; printf(%frmb=%f$n,rmb,dollar); 实验二 2. 程序填空题 (1) num%10 、 num/100%10 、 g+b=s 1 (2) flag=0 、 year%100!=0 、 year%400=0 3. 程序改错题 switch(grade) case 10: case 6: printf(grade=Dn); break; 4. 程序设计题 (1) include void main() int x,n; scanf(%d,&x); if(x=100000)x=x%100000; if(x=10000)n=5; else if(x=1000)n=4; else if(x=100)n=3; else if(x=10)n=2; else n=1; printf(%d has %d digitsn,x,n); switch(n) case 1:printf(%dn,x);break; case 2:printf(%d %dn,x%10,x/10);break; case 3:printf(%d %d %dn,x%10,x/10%10,x/100);break; case 4:printf(%d %d %d %dn, x%10,x/10%10,x/100%10,x/1000);break; case 5:printf(%d %d %d %d %dn, x%10,x/10%10,x/100%10,x/1000%10,x/10000);break; (2) #include void main() float a,b,c,max; scanf(%f%f%f,&a,&b,&c); if(ab) max=a; else max=b; 2 max=maxc?max:c; printf(max=%gn,max); 实验三 2. 程序填空题 (1) &m 、 i=m 、 t+1.0/(i*i) (2) mn 、 i=m 、 t*k 3. 程序改错题 scanf(%ld,&m); if(d%2!=0) m=m/t; 4. 程序设计题 (1) #include void main() int x,s=0; for(x=50;x=180;x+) if(x%3=0 & x%4=0) printf(%d ,x); s=s+x; printf(nsum=%dn,s); (2) #include void main() int a,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%dn, a,b,c,d,e,d,c,b,a); 3 实验四 2. 程序填空题 ,1, m=m-n 、 n=n-m 、 m!=n ,2, a=0|diac=0.00001); 4. 程序设计题 (1) #include void main() int x,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 void main() float a,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; 4 a=c; while(fabs(fc)0.0001); printf(x=%f, y=%fn,c,fc); 实验五 2. 程序填空题 ,1, &aij 、 a00 、 i 、 j 、 max ,2, x=ai 、 aj=x 3. 程序改错题 int aN=1,5,8,7,6,3,2,4; for(i=0;iN-1;i+) t=ai,ai=ak,ak=t; 4. 程序设计题 (1) #include void main() int i,j,f=0,a34=1,2,3,4,5,6,7,-8,9,10,-11,12; for(i=0;(i3 & f=0);i+) for(j=0;j4;j+) if(aij0) f=1; printf(i=%d,j=%dn,i,j); break; if(f=0) printf(no found!n); (2) #include #include #define N 10 void main() int i,j,s; 5 /int aN=1,3,5,7,9,11,13,15,17; int aN=17,15,13,11,9,7,5,3,1; scanf(%d,&s); i=0; if(a0ai) i+; else while(si;j-) aj=aj-1; aj=s; for(i=0;iN;i+) printf(%3d,ai); printf(n); 实验六 2. 程序填空题 stri!=0 、 bb5+ 、 bbi或bb5 3. 程序改错题 for(k=0;substrk=stri+k;k+) if(substrk+1=0) 4. 程序设计题 (1) #include #include void main() char str81,c; int i,j; printf(Input a string:); gets(str); printf(Input a char:); c=getchar(); for(i=0;stri!=0;i+) if(stri=c) for(j=i;jstrlen(str);j+) strj=strj+1; i-; 6 puts(str); (2) #include #include void main() char str81,substr81; int i,n=-1; printf(Input a string:); gets(str); printf(Input a substring:); gets(substr); for(i=0;stri!=0;i+) for(k=0;substrk=stri+k;k+) if(substrk+1=0) n=i;break; printf(n=%dn,n); 实验七 2. 程序填空题 n-1 、 aj+1 、 aj+1 、 s 3. 程序改错题 int leap(int year) flag=flag|(year%400=0); if(leap(y)=1) 4. 程序设计题 (1) #include int isprime(int); void main() int x,s=0; for(x=200;x=300;x+) if(isprime(x) s=s+x;printf(%d ,x); printf(nsum of prime=%dn,s); 7 int isprime(int n) int i,flag=1; for(i=2;in;i+) if(n%i=0) flag=0;break; return (flag); (2) #define N 10 #include void sort(int a,int n) int i,j,k,t; for(i=0;in-1;i+) k=i; for(j=i+1;jn;j+) if(ajak) k=j; t=ak; ak=ai; ai=t; void main() int i,x10=5,7,4,2,8,6,1,9,0,3; printf(the original array:n); for(i=0;iN;i+) printf(%d,xi); printf(n); sort(x,N); printf(the sorted array:n); for(i=0;i=0 & si=9) sj+=si; sj=0; 4. 程序设计题 (1) #include #include void fun(char s,int i,int j) char t; if(i=j) return; else t=si; si=sj; sj=t; fun(s,i+1,j-1); void main() char str81; gets(str); fun(str,0,strlen(str)-1); puts(str); (2) /sy8proc2.c #include #include extern double newx(double a,double b); double f(double x) double y; y=2*x*x*x-3*x*x+7*x-13; return (y); void main() double a,b,x; do 9 printf(Please input a,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=%lfn,x,f(x); /sy8newx2.c double newx(double a,double b) /或 extern double newx(double a,double b) double xnew; xnew=(a*f(b)-b*f(a)/(f(b)-f(a); return (xnew); 实验九 2. 程序填空题 ,1, p=a 、 *,*p+j, 注:外循环改为:for(i=0;i3;i+,p+) ,2, pstr=s 、 *pstr-0 、 pstr+ 3. 程序改错题 *ave=sum/n; scanf(%f,score+k);/ printf(The result is:%dn,average(score,m,&aver); 4. 程序设计题 #include void fun(char *pp) int i,n=0; while(*(pp+n)=*) 10 n+; for(i=n;*(pp+i)!=0;i+) if(*(pp+i)!=*) *(pp+n)=*(pp+i); n+; *(pp+n)=0; void main() char aa80; printf(Please enter a string:n); scanf(%s,aa); fun(aa); printf(After changing, the string become:n); printf(%sn,aa); (1) #include void fun(char *pp) int i,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; void main() char aa80; 11 printf(Please enter a string:n); scanf(%s,aa); fun(aa); printf(After changing, the string become:n); printf(%sn,aa); (2) #include void fun(char *pp) int i,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;ij-k;i+) *(pp+i)=*(pp+i); *(pp+i)=0; /或去掉此for循环,直接用*(pp+j-k)= 0; else *(pp+j)=0; void main() char aa80; printf(Please enter a string:n); scanf(%s,aa); fun(aa); printf(After changing, the string become:n); printf(%sn,aa); 12 (3) #include void fun(char *pp) int i,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; void main() char aa80; printf(Please enter a string:n); scanf(%s,aa); fun(aa); printf(After changing, the string become:n); printf(%sn,aa); 实验十 2. 程序填空题 (*p) 、 struct stu 、 &student2 3. 程序改错题 STREC; if(ai.scaj.sc) fun(s,N); 13 4. 程序设计题 (1) #define N 10 #include typedef struct char num10; int sc; STREC; float fun(STREC a,int n) int i,s=0; float ave; for(i=0;in;i+) s=s+ai.sc; ave=(float)s/n; return ave; void main() int i; float aver; STREC sN=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;iaver) printf(%s:%dn,si.num,si.sc); (2) #define N 10 #include typedef struct char num10; int sc; STREC; int fun(STREC a,int n) int i,max=-1; for(i=0;imax) 14 max=ai.sc; return max; void main() int i,maxsc; STREC sN=Li001,85,Li003,76,Li002,69, Li004,96,Li006,79,Li005,86, Li008,68,Li007

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论