C语言程序设计希望_第1页
C语言程序设计希望_第2页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、封面作者:PanHongliang仅供个人学习/*-【程序设计】 功能:调用函数fun判断一个三位数是否水仙花数.在main函数中从键盘输入一个三位数,并 输出判断结果.请编写fun函数.说明:所谓水仙花数是指一3位数,其各位数字立方和等于该数本身.例如:153是一个水仙答案:花数,因为153=1+125+27.#include stdio.hint fun(int n)main()int n,flag。scanf(%d,&n)。flag=fun(n)。if(flag)printf(%d是水仙花数n,n)。elseprintf(%d不是水仙花数n,n)。getch()。yzj()。yz

2、j()FILE *IN,*OUT。int iIN,i。int iOUT。IN=fopen(in.dat,r)。if(IN=NULL)printf(Please Verify The Currernt Dir.It May Be Changed) OUT=fopen(out.dat,w)。if(OUT=NULL)printf(Please Verify The Current Dir. It May Be Changed) for(i=0。i10。i+)fscanf(IN,%d,&iIN)。iOUT=fun(iIN)。fprintf(OUT,%dn,iOUT)。fclose(IN)。fc

3、lose(OUT)。*Program* End *答案:int bw,sw,gw。bw=n/100。sw=(n-bw*100)/10。gw=n%10。if(n=bw*bw*bw+sw*sw*sw+gw*gw*gw)return 1 else return 0。/*-【程序设计】- 功能:把20个随机数存入一个数组组中地最大值.-#include stdio.h#define VSIZE 20int vectorVSIZE int fun(int list,int size)main()int i。clrscr()。for (i=0。iVSIZE。i+)vectori=rand()。printf

4、(Vector%d=%6dn,i,vectori)i=fun(vector,VSIZE)。printf(nMaxnum: Vector%d=%6dn,i,vectori) NONO()。getch()。NONO()int i,t。FILE *fp。fp = fopen(out.dat, w)。for (i=0。iVSIZE。i+)fprintf(fp,Vector%d=%6dn,i,vectori)t=fun(vector,VSIZE)。fprintf(fp,nMaxnum: Vector%d=%6dn,t,vectort) fclose(fp)。,然后输出该数*Program*End*i+)

5、【程序设计】功能:根据整型形参m,计算如下公式地值:1/41/6.1/2m.例如:若m=9,则应输岀:1.414484#include stdio.hdouble fun(int m)/*Program*/* End */ main()int n。clrscr()printf(Enter n: )scanf(%d, &n)printf(nThe result is %1fn, fun(n)yzj()。getch()。yzj()FILE *IN,*OUT。int s,i。int t。float o。IN=fopen(in.dat,r) if(IN=NULL) printf(Read Fi

6、le Error) OUT=fopen(out.dat,w) if(OUT=NULL)printf(Write File Error) for(i=0。i5。i+) int i,max=0。for(i=1。i sizeif(listmaxlisti)max=i。returnmax。/*y=1/2fscanf(IN,%d,&t)。o=fun(t)。fprintf(OUT,%fn,o)fclose(IN)。fclose(OUT)。答案: -double y=0。int i。for(i=1。i=m。i+) y+=1.0/(2*i)。 return(y)。/*-【程序设计】- 功能:编写函数f

7、un将一个数组中地值按逆序存放 并在main()函数中输出.例如:原来存顺序为8,6,5,4,1.要求改为:1,4,5,6,8.-#include stdio.h #define N 5 main()int aN=8,6,5,4,1,i for(i=0。iN。i+) printf(%4d,ai) printf(n)。fun(a,N)。for(i=0。iN。i+) printf(%4d,ai)yzj()。getch()。int fun(int arr,int n)yzj()FILE *IN,*OUT int n。int i10int oIN=fopen(in.dat,r)if(IN=NULL)*

8、Program*End*printf(Read File Error)OUT=fopen(out.dat,w) if(OUT=NULL)printf(Write File Error)for(n=0。n10。n+) fscanf(IN,%d,&in)fun(i,10)。for(n=0。n10。n+) fprintf(OUT,%dn,in)fclose(IN)。fclose(OUT)。答案: -int i,t。for(i=0。in/2。i+) t=arri。arri=arrn-1-i arrn-1-i=t。main()int m。printf(Enter m: )。scanf(%d, &

9、amp;m)。printf(nThe result is %ldn, fun(m)/*-程序设计】功能:求1到w之间地奇数之和(w是大于等于100小于等于1000地整数)#includestdio.h#includeconio.hlong fun(int w)*Program*End*yzj()。getch()。yzj()FILE *IN,*OUT。int c。int t。long o。IN=fopen(in.dat,r)。if(IN=NULL)printf(Read File Error)。OUT=fopen(out.dat,w)。if(OUT=NULL)printf(Write File

10、Error)。for(c=1。c=5。c+)fscanf(IN,%d,&t)。o=fun(t)。fprintf(OUT,%ldn,o)。fclose(IN)。fclose(OUT)。答案: -long y=0。int i。for(i=1。i=w。i+)if(i%2=1)y+=i。return y。/*-【程序设计】- 功能:计算n门课程地平均值,计算结果作为函数 值返回.例如:若有5门课程地成绩是:92,76,69,58,88,则函数地值为76.599998.#include stdio.hfloat fun(int a,int n)*Program* End *main()int a

11、=92,76,69,58,88。printf(y=%fn,fun(a,5)。getch()。yzj()。yzj()FILE *IN,*OUT。int iIN10,i,j。float fOUT。IN=fopen(in.dat,r)。if(IN=NULL)printf(Please Verify The Currernt Dir.It May Be Changed) OUT=fopen(out.dat,w)。if(OUT=NULL)printf(Please Verify The Current Dir. It May Be Changed) for(j=0。j5。j+)for(i=0。i5。i+

12、)fscanf(IN,%d,&iINi)。fOUT=fun(iIN,5)。fprintf(OUT,%fn,fOUT)。fclose(IN)。fclose(OUT)。答案: -int i。float y=0。for(i=0。in。i+)y+=ai。y=y/n。return y。/*-【程序设计】- 功能:编写函数求1100中奇数地平方和.结果为166650.float sum(int n)main()printf(sum=%fn,sum(100) yzj()。getch()。yzj()FILE *IN,*OUT。int n。int i。float o。IN=fopen(in.dat,r)

13、 if(IN=NULL)printf(Read File Error)OUT=fopen(out.dat,w) if(OUT=NULL)printf(Write File Error) fscanf(IN,%d,&i)。o=sum(i)。fprintf(OUT,%fn,o) fclose(IN)。fclose(OUT)。答案: -float s=0。int i,j。for(i=1。i=n。i=i+2) s=s+i*i。return(s)。/*-【程序设计】- 功能:将主函数中输入地字符串反序存放 例如:输入字符串“abcdefg”,则应输出“gfedcba”.#include stdi

14、o.h*Program*End*#include #include #define N 81 char fun(char *str,int n)main()char s N int l。clrscr()。printf(input a string:)l=strlen(s)。fun(s,l)。printf(The new string is :)getch()。yzj()。yzj()FILE *IN,*OUT。char sIN20,*sOUT。int iLENGTH。IN=fopen(in.dat,r) if(IN=NULL)printf(Please Verify The Currernt D

15、ir.It May BeChanged)OUT=fopen(out.dat,w)if(OUT=NULL)printf(Please Verify The Current Dir. It May BeChanged)fscanf(IN,%s,sIN)。iLENGTH=strlen(sIN)。sOUT=sIN。fun(sIN,iLENGTH)。fprintf(OUT,%sn,sOUT)fclose(IN)。fclose(OUT)。*Program* End *gets(s)puts(s)答案: -int i,j。char c。for(i=0,j=n-1。ij。i+,j-)/*c=*(str+i)。

16、*(str+i)=*(str+j)。*(str+j)=c。功能:在键盘上输入一个3行3列矩阵地各个元素地值(值为整数)积,并在fun()中输出.-#include stdio.hmain()int i,j,s,a33。for(i=0。i3。i+)for(j=0。j3。j+)scanf(%d,&aij)s=fun(a)。printf(Sum=%dn,s)yzj()。getch()int fun(int a33)yzj()FILE *IN,*OUT。int m。int n。int i33。int o。IN=fopen(in.dat,r) if(IN=NULL)printf(Read Fil

17、e Error) OUT=fopen(out.dat,w)/*-程序设计】ivn/2。i+,j-)*/或者for(i=0,j=n-1然后输出主对角线元素地*Program*End*if(OUT=NULL)printf(Write File Error)for(m=0。m3。m+)for(n=0。n3。n+) fscanf(IN,%d,&imn) o=fun(i)。fprintf(OUT,%dn,o)getch()。fclose(IN)。fclose(OUT)。答案: -int sum。int i,j。sum=1。for(i=0。i3。i+) sum=sum*aii。return sum

18、。/*-除地自然数之和.(k3000).-#include stdio.h #includeconio.hint fun(int k)main()int m printf(Enter m: )。scanf(%d, &m)。printf(nThe result is %dn,fun(m)yzj()。getch()【程序设计】功能:计算出k以内最大地10个能被13或17整*Program*End*yzj()FILE *IN,*OUT。int s。int t。int o。IN=fopen(in.dat,r) if(IN=NULL)printf(Read File Error) OUT=fop

19、en(out.dat,w) if(OUT=NULL)printf(Write File Error) for(s=1。s=2)&(b10) if(k%13=0)|(k%17=0)a=a+k。b+。 k-。return a。/*-【程序设计】- 功能:编写函数判断否被7整除,可以被7整除则返回1,否则返回0.调用该函数找出 数.-#include stdio.h int sub(int m)*Program* End *个整数m地各位数字之和能main()int i。for(i=100。i=200。i+) if(sub(i)=1)printf(%4d,i)。yzj()。getch()。y

20、zj()FILE *IN,*OUT。int n。int i10。int o。IN=fopen(in.dat,r) if(IN=NULL)printf(Read File Error)OUT=fopen(out.dat,w) if(OUT=NULL)printf(Write File Error)for(n=0。n10。n+) fscanf(IN,%d,&in)for(n=0。n10。n+)o=sub(in)。fprintf(OUT,%dn,o)fclose(IN)。fclose(OUT)。答案: -int k,s=0。dos=s+m%10。m=m/10。while(m!=0)。if(s

21、%7=0)k=1 else k=0。return(k)。/*-【程序设计】 功能:求一组数中大于平均值地数地个数 时,函 数值为3.#include stdio.h int fun(int a,int n)/*Program*/* End */ main()int a10=1,3,6,9,4,23,35,67,12,88int y。y=fun(a,10)。printf(y=%dn,y)。yzj()。getch()。yzj()FILE *IN,*OUT。int iIN10,iOUT,i,j。IN=fopen(in.dat,r)。if(IN=NULL)printf(Please Verify Th

22、e Currernt Dir.It May Be Changed) OUT=fopen(out.dat,w)。if(OUT=NULL)printf(Please Verify The Current Dir. It May Be Changed) for(j=0。j10。j+)for(i=0。i10。i+)fscanf(IN,%d,&iINi)。iOUT=fun(iIN,10)。例如:给定地一组1,3,6,9,4,23,35,67,12,88fprintf(OUT,%dn,iOUT) fclose(IN)。fclose(OUT)。答案: -int i,k=0。float s=0,ave

23、。for(i=0。in。i+)s+=ai。ave=s/n。printf(%f ,ave) for(i=0。iave)k+。return k。/*-【程序设计】- 功能:统计出若干个学生地平均成绩 得最高分地人数.例如:输入10名学生地成绩分别为92,87,68,56,92,84,67,75,92,66,平均成绩为77.9,最高分为92,得最高分地人数为3人.-#include stdio.hfloat Max=0 int J=0。float fun(float array,int n)main( )float a10,ave。int i=0。for(i=0。i10。i+) scanf(%f,&

24、amp;ai) ave=fun(a,10)。printf(ave=%fn,ave)printf(max=%fn,Max) printf(Total:%dn,J) getch()。yzj()。yzj()FILE *IN,*OUT。float iIN10,iOUT最高分以及则输出*Program*End*int iCOUNT。IN=fopen(in.dat,r)。if(IN=NULL)printf(Please Verify The Currernt Dir.It May Be Changed) OUT=fopen(out.dat,w)。if(OUT=NULL)printf(Please Veri

25、fy The Current Dir. It May Be Changed) for(iCOUNT=0。iCOUNT10 iCOUNT+) fscanf(IN,%f,&iINiCOUNT)。iOUT=fun(iIN,10)。fprintf(OUT,%f %fn,iOUT,Max)。fclose(IN)。fclose(OUT)。答案: -int i。float sum=0,ave。Max=array0。for(i=0。in。i+) if(Maxarray i) Max=array i。sum=sum+array i。ave=sum/n。for(i=0。in。i+)if(array i=M

26、ax) J+。return(ave)。/*-【程序设计】- 功能:在键盘上输入一个地值(值为整数),然后输出矩阵第一行与第三行元素之和,并在fun()-#include stdio.hmain()int i,j,s,a33。for(i=0。i3。i+)for(j=0。j3。j+)scanf(%d,&aij)。s=fun(a)。printf(Sum=%dn,s)。yzj()。3行3列矩阵地各个元素函数中输出.getch()。int fun(int a33)yzj()FILE *IN,*OUT int m。int n。int i33。int o。IN=fopen(in.dat,r) if(

27、IN=NULL)printf(Read File Error) OUT=fopen(out.dat,w) if(OUT=NULL)printf(Write File Error)for(m=0。m3。m+) for(n=0。n3。n+) fscanf(IN,%d,&imn) o=fun(i)。 fprintf(OUT,%dn,o) getch()。fclose(IN)。fclose(OUT)。答案: -int sum。int i,j。sum=0。for(i=0。i3。i+=2) for(j=0。j3。j+) sum=sum+aij。Program*End*return sum/*-【程

28、序设计】- 功能:用函数求fibonacci数列前n项地和.说明:fibonacci数列为数列地第一项值为1,第二项值也为1,从第三项开始,每一项均为其前 面相邻两项地和.例如:当n=28时,运行结果:832039-#include stdio.hlong sum(long f1,long f2)main()long int f1=1,f2=1。clrscr()。printf(sum=%ldn,sum(f1,f2) yzj()。getch()。yzj()FILE *IN,*OUT。int m,n。int i2。long int o。IN=fopen(in.dat,r) if(IN=NULL)p

29、rintf(Read File Error) OUT=fopen(out.dat,w) if(OUT=NULL)printf(Write File Error) for(n=0。n2。n+) fscanf(IN,%d,&in)o = sum(i0,i1)。fprintf(OUT,%ldn,o) fclose(IN)。fclose(OUT)。答案: -*Program*End*long f,k=f1+f2。int i。for(i=3。i=28。i+)f=f1+f2。k=k+f。f1=f2。f2=f。return(k)。#includeconio.h int fun(int n)/*Pro

30、gram*/* End */ main()int m。printf(Enter m: )scanf(%d, &m)printf(nThe result is %dn, fun(m)yzj()。getch()。yzj()FILE *IN,*OUT。int s。int t。int o。IN=fopen(in.dat,r) if(IN=NULL)printf(Read File Error) OUT=fopen(out.dat,w) if(OUT=NULL)printf(Write File Error)/*【程序设计】功能:找出一个大于给定整数且紧随这个整数地素数,并作为函数值返回#inc

31、lude stdio.hfor(s=1fscanf(IN,%d,&t) o=fun(t)。fprintf(OUT,%dn,o)fclose(IN)。fclose(OUT)。答案: -int i,k。for(i=n+1。i+) for(k=2。ki。k+) if(i%k=0) break。if(k=i) return(i)。#include stdio.hdouble fun(int m)/*Program*/ /* End */main()int n。clrscr()。printf(Enter n: )。scanf(%d, &n)。printf(nThe result is %

32、1fn, fun(n) yzj()。getch()。yzj()FILE *IN,*OUT int t。float o。s=5。s+)/*计算如下公式地值:y=1/2!+1/4!+.+1/m!【程序设计】功能:编写函数fun其功能是:根据整型形参(m是偶数)m,int c。IN=fopen(in.dat,r)。if(IN=NULL) printf(Read File Error)。OUT=fopen(out.dat,w)。if(OUT=NULL) printf(Write File Error)。for(c=1。c=5。c+)fscanf(IN,%d,&t)。o=fun(t)。fprin

33、tf(OUT,%fn,o)。fclose(IN)。fclose(OUT)。答案:double y=0.0。int i,j。double s=1。for (i=2。i=m。i+=2)for(j=i-1。jv=i。j+)s=s*j。y=y+1.0/s。return y。/*-【程序设计】- 功能:求一分数序列2/1,3/2,5/3,8/5,13/8,21/13地前n项之和.说明:每一分数地分母是前两项地分母之和,每一分数地分子是前两项地分子之和 例如:求前20项之和地值为32.660259.- #include stdio.hfloat fun(int n)main()float y y=fun(

34、20)。printf(y=%fn,y)。yzj()。getch()。*Program* End *yzj()FILE *IN,*OUT。int iIN,i。float fOUT。IN=fopen(in.dat,r)。if(IN=NULL)printf(Please Verify The Currernt Dir.It May Be Changed) OUT=fopen(out.dat,w)。if(OUT=NULL)printf(Please Verify The Current Dir. It May Be Changed) for(i=0。i5。i+)fscanf(IN,%d,&iI

35、N)。fOUT=fun(iIN)。fprintf(OUT,%fn,fOUT)。fclose(IN)。fclose(OUT)。答案: -int i。float f1=1,f2=1,f3,s=0。for(i=1。i=n。i+)f3=f1+f2。f1=f2。f2=f3。s=s+f2/f1。return s。/*-【程序设计】- 功能:对长度为7个字符地字符串,除首、尾字符 外,将其余5个字符按降序排列.例如:原来地字符串为CEAedca,排序后输出为CedcEAa.#include#include#includeint fun(char *s,int num)main()char s10。clrsc

36、r()。printf(输入7个字符地字符串:) gets(s)。fun(s,7)。printf(n%s,s)。getch()。NONO()。NONO()int i。char a100。FILE *rf, *wf。rf = fopen(in.dat, r) wf = fopen(out.dat, w) for(i=0。i3。i+)fscanf(rf, %s, &a) fun(a,7)。fprintf(wf, %s, a) fprintf(wf, n)fclose(rf)。fclose(wf)。答案: -int i,j char tfor(i=1。inum-1。i+)for(j=i+1。j

37、num-1。j+)if(sisj) t=si。si=sj。sj=t。*Program* End */*-【程序设计】 功能:编写函数用选择排序法对数组中地数据进行从小到大地排序- */#include #include void sort(int a,int n)main()int a13,i。clrscr()。for(i=0。i13。i+)ai=random(20)-5。for(i=0。i13。i+)printf(%3d,ai)。printf(n- n)。sort(a,13)。for(i=0。i13。i+)printf(%3d,ai)。yzj()。getch()。yzj()FILE *IN,*OUT。int n。int i10。int o。IN=fopen(in.dat,r)。if(IN=NULL)printf(Read File Error)。OUT=fopen(out.dat,w)。if(OUT=NULL)printf(Write File Error)。for(n=0。n10。n+)fscan f(IN,%d,&in)。sort(i,10)。for(n=0。n 10。n+)fprin tf(OUT,%dn,i n)。fclose(IN)。fclose(OUT)。答案:-int i,j,k,t。for(i=0。in-1。i+)*Prog

温馨提示

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

评论

0/150

提交评论