c语言部分习题参考答案(8--).doc_第1页
c语言部分习题参考答案(8--).doc_第2页
c语言部分习题参考答案(8--).doc_第3页
c语言部分习题参考答案(8--).doc_第4页
c语言部分习题参考答案(8--).doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

C语言部分习题参考答案第8章 函数8.1 (1)2 (2)2 (3)1 (4)4 (5)48.2 (1)x,y x,y z,y z,y float value;(2)f(middle)*f(left)0 abs(f(middle))0) for(p=1.0;n0;n-) p=p*x; eles p=1.0; return p;8.4 (2)8.5 i=5i=2i=5i=0i=58.69#includemath.hint isprime(int n) int i,flag=1; for(i=2;i=sqrt(n);i+) if(n%i=0) flag=0;break; return(flag);main() int m,n,i; printf(Input M,N:(MN)n); scanf(%d,%d,&m,&n); printf(Prime of %d-%d:n,m,n); for(i=m;iu) t=u;u=v;v=t;while(r=u%v)!=0) u=v;v=r;return(v);int lcd(int u,int v,int h)return(u*v/h);main() int u,v,h,l,i;for(i=1;i11;i+) scanf(%d%d,&u,&v); printf(%d,%d,u,v); h=hcf(u,v); printf(zdgys=%d,h); l=lcd(u,v,h); printf(zxgbs=%dn,l); 8.11方法一:int f(int n) int i,j,k,m; i=n/100; j=(n-i*100)/10; k=n%10; m=i+j+k;return m; main() int i,j,s=0; for(i=100;i1000;i+) j=f(i); if(j=5) s+; printf(The total is %dn,s);8.11方法二:int f () int i,j,k,m,n; int s=0; for(n=100;nr):n); scanf(%d,%d,&n,&r); p=fact(n)/fact(n-r); printf(p=%ldn,p);long fact(n)int n; long f; int i; f=1; for(i=1;i=n;i+)f=f*i; return(f);第九章 数组1查找最大数输入10个数max=a0for(i=1;i10;i+)maxYai Nmax=ai输出最大数max/*查找最大数方法一*/ main() int a10,max,i; for(i=0;i10;i+)scanf(%d,&ai); max=a0; for(i=1;i10;i+)if(maxai) max=ai; printf(max=%dn,max); 输入10个数max=a0for(i=1;i10;i+)amaxYai Nmax=i输出最大数amax /*查找最大数方法二*/main() int a10,max,i; for(i=0;i10;i+)scanf(%d,&ai); max=0; for(i=1;i10;i+)if(amaxai) max=i; printf(max=%dn,amax);2、查找与x值相同的数main() int a10,x,i,flag; for(i=0;i10;i+)scanf(%d,&ai); printf(input x:n); scanf(%d,&x); flag=0; for(i=0;i10;i+)if(x=ai) flag=1; break; if(flag) printf(a%d=%dn,i,x);else printf(no this numbern);3、删除与x值相同的数main()输入10个数输入要删除的值xflag=0for(i=0;i10;i+)x= =Yai Nflag=1breakflag 1 0for(j=i;j9;j+)没有与x值相同的数aj=aj+1输出删除后的数组 int a10,x,i,j,flag; for(i=0;i10;i+)scanf(%d,&ai); printf(input x:n); scanf(%d,&x); flag=0; for(i=0;i10;i+)if(x=ai) flag=1; break; if(flag) for(j=i;j9;j+)aj=aj+1; /*进行删除*/ for(i=0;i9;i+)printf(%d ,ai); /*输出删除x后的数组*/ printf(n); else printf(no this numbern);4、冒泡法排序#define N 10main() int aN,i,j,temp; for(i=0;iN;i+)scanf(%d,&ai); printf(n); for(j=0;jN-1;j+)for(i=0;iai+1) temp=ai; ai=ai+1; ai+1=temp; for(i=0;iN;i+)printf(%d ,ai); printf(n);5、选择法排序#define N 10main() int aN,i,j,k,temp; for(i=0;iN;i+)scanf(%d,&ai); printf(n); for(j=0;jN-1;j+) k=j; for(i=j+1;iai) k=i; temp=ak; ak=aj; aj=temp; for(i=0;iN;i+)printf(%d ,ai); printf(n)6、在10个有序数中插入x,并保持原有顺序main() int a11=23,34,45,56,67,78,89,97,100,120; int i,x,temp; for(i=0;i10;i+)printf(%d ,ai); printf(n); printf(input x:n); scanf(%d,&x); for(i=0;i10;i+)if(xai) temp=ai; ai=x; x=temp; a10=x; for(i=0;i=10;i+)printf(%d ,ai); printf(n);7、输入一字符串,判断是否为“回文”(3种方式)#include stdio.h输入字符串i=0 j=strlen(str)-1 flag=1while(ij)striY!=strjN flag=0breaki+ j-FlagY N是回文不是回文#include string.hmain() char str50; int i,j,flag; gets(str); i=0; j=strlen(str)-1; flag=1; while(ij) if(stri!=strj) flag=0; break;i+; j-; puts(str); if(flag) printf(是回文n);else printf(不是回文n);#include stdio.h#include string.hmain() char str50; int i,j,flag; gets(str); flag=1; for(i=0,j=strlen(str)-1;ij;i+,j-) if(stri!=strj) flag=0; break; puts(str); if(flag) printf(是回文n);else printf(不是回文n);#include stdio.h#include string.hmain() char str50; int i,j,flag; gets(str); flag=1; j=strlen(str)-1; for(i=0;i=a&stri=A&stri=0&stri=9) d+;else if(stri= ) s+; else o+; puts(str); printf(%d,%d,%d,%dn,a,d,s,o);9、有一数组中存放10个学生的考试成绩,写函数求其平均成绩 main() float average( ); float a10,aver; int i; for(i=0;i10;i+) scanf(%f,&ai); aver=average(a,10); printf(average = %.2fn,aver); float average(b,n) float b ;int n; float aver,sum=0; int i; for(i=0;in;i+) sum=sum+bi; aver=sum/10; return( aver); 10、写函数,利用指针将数组中的10个数按反序存放 #define N 10 void inv(x) int *x; int i,t;for(i=0;iN/2;i+) t=*(x+i); *(x+i)=*(x+N-1-i); *(x+N-1-i)=t; return; main() int aN,i,*p; p=a; for(i=0;iN;i+,p+) scanf(%d,p); p=a; inv(p); for(i=0;iN;i+,p+) printf(%5d,*p); printf(n); 11、写函数,连接两个字符串#include stdio.h#include string.hmain() char s180,s250; void link(); printf(input s1:n); gets(s1); printf(input s2:n); gets(s2); link(s1,s2); puts(s1);/*link()函数方法1*/void link(s1,s2)char s1,s2; int i,l1,l2; l1=strlen(s1); l2=strlen(s2); for(i=0;i=l2;i+)s1l1+i=s2i; return;/*link()函数方法2*/void link(s1,s2)char s1,s2; int i,l; l=strlen(s1); i=0; for(;s2i!=0;)s1l+i=s2i+; s1l+i=0; return;12编一函数,实现将数组中的最大值与最后一个数,最小值与第一个数交换。#define N 10void pro(a,n)int a,n; int i,max,min,t; max=min=0; for(i=1;in;i+) if(amaxai) min=i; t=a0;a0=amin;amin=t; t=an-1;an-1=amax;amax=t;main() int aN,i; printf(Input %d Integer:n,N); for(i=0;iN;i+) scanf(%d,&ai); pro(a,N); printf(Output:n); for(i=0;iN;i+) printf(%d ,ai);13编一函数,实现将数组中的最大值与最后一个数,最小值与第一个数交换(指针实现)。#define N 10void pro(a,n)int a,n; int *p,*max,*m

温馨提示

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

评论

0/150

提交评论