函数编程题.docx_第1页
函数编程题.docx_第2页
函数编程题.docx_第3页
函数编程题.docx_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

函数编程题:1.求x的n次方的值,其中n是整数#includestdio.hvoid main()double xpower(float x,int n);double r;float x;int n;scanf(%f%d,x,n);r=xpower(x,n);printf(%f,r);double xpower(float x,int n)if(n=0)return(1);else return(x*xpower(x,n-1);2. 功能:调用函数fun判断一个三位数是否水仙花数。 在main函数中从键盘输入一个三位数,并输 出判断结果。请编写fun函数。说明:所谓水仙花数是指一3位数,其各位数字立方和 等于该数本身。例如:153是一个水仙花数,因为153=1+125+27。#include stdio.h int fun(int n) /*Program*/ 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 /* End */void main() int n,flag; scanf(%d,n); flag=fun(n); if(flag) printf(%d 是水仙花数n,n); else printf(%d 不是水仙花数n,n);3. 功能:编写程序, 求矩阵(3行3列)与2的乘积 例如:输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出: 200 400 600 800 1000 1200 1400 1600 1800#include stdio.hvoid fun(int array33) /*Program*/ int i,j; for(i=0; i 3; i+) for(j=0; j 3; j+) arrayij=arrayij*2; /* End */ main() int i,j; int array33; for(i=0;i3;i+) for(j=0;j3;j+) scanf(%d,arrayij); fun(array); for (i=0; i 3; i+) for (j=0; j 3; j+) printf(%6d,arrayij); printf(n); 4. 题目:用函数求一个N阶方阵右下三角元素的和(包括副对角线上的元素)。#include stdio.h#define N 3int sum(int aN) /*Program*/ int i,j,k=0; for(i=0;iN;i+) for(j=N-1-i;jN;j+) k=k+aij; return(k); /* End */main() int aNN,i,j; for(i=0;iN;i+) for(j=0;jN;j+) scanf(%d,aij); printf(n); printf(sum=%5dn,sum(a);5. 功能:求两个整数的最大公约数#includestdio.hint gcd(int n,int m) /*Program*/ int r,t; if(nm) t=n;n=m;m=t; r=n%m; while(r!=0) n=m;m=r;r=n%m; return(m); /* End */main() int n,m,result; scanf(%d%d,n,m); result=gcd(n,m); printf(the gcd is %dn,result);6. 功能:编写main程序调用函数fact求解从m个元素选n个元素的组合数的个数。计算公式是: 组合数m!/(n!*(m-n)!)。注意:mn。说明:函数fact(x)的功能是求x!。#include stdio.hlong fact(int x) long y; int i; y=1; for(i=1;i=x;i+) y=y*i; return y;main() int m,n; long zhsgs; scanf(%d%d,m,n); /*Program*/ zhsgs=fact(m)/(fact(n)*fact(m-n); /* End */ printf(%dn,zhsgs);7. 功能:编写函数用冒泡排序法对数组中的数据进行从小到大的排序。#include stdlib.h#includestdio.hvoid sort(int a,int n) /*Program*/ int i,j,t; for(i=0;in;i+) for(j=0;jn-i;j+) if(ajaj+1) t=aj;aj=aj+1;aj+1=t; /* End */void main() int a10,i; for(i=0;i10;i+) scanf(%d,ai); sort(a,10); for(i=0;i10;i+) printf(%d ,ai);8. 功能:从键盘为一个55整型数组输入数据,调用fun函数找出主对角线上元素的最小值。#include stdio.hint fun(int a55)/*Program*/ int i,vm; vm=a00; for(i=1;i5;i+) if(vmaii) vm=aii; return(vm);/* End */void main( )int i,j,vmin;int array55;for(i=0;i5;i+) for(j=0;j5;j+) scanf(%d,arrayij); vmin=fun(array); printf(Min=%d,vmin);9. 功能:在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出主对角线元素的积,并在fun()函数中输出。#include stdio.hint fun(int a33) /*Program*/ int i; float sum=1; for(i=0;i3;i+) sum=sum*aii; return(sum); /* End */ void main() int i,j,a33,t; for(i=0;i3;i+) for(j=0;j3;j+) scanf(%d,aij); t=fun(a); printf(%d,t);10. 功能:从键盘为一维整型数组输入10个成绩,统计大于等于60分的成绩,并在main函

温馨提示

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

评论

0/150

提交评论