




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计实验报告-实验8 函数一实验目的 (1)掌握定义函数的方法 (2)掌握函数实参与形参的对应关系以及“值传递”“地址传递”的方式 (3)掌握函数的嵌套调用和递归调用的方法 (4)掌握全局变量和局部变量、动态变量、静态变量的概念和使用方法 二实验内容和步骤 1.填空题 (1)下面程序的功能是计算Cmn=m!/n!*(m-n)!的值。#includelong int jf(int n) int i; long int t=1;for(i=1;i=n;i+)t*=i;return(t);long int cmn(int m,int n) return(jf(m)/(jf(n)*jf(m-n);int main() int m,n; printf(please enter m and n:); scanf(%d,%d,&m,&n); printf(%d,cmn(m,n); return 0; 反思与总结:注意调用函数cmn(m,n)的格式!这里的m,n指的是作为实参的m,n(2)程序用于求两个正整数m,n之间的非素数之和(包括m和n)#include#includeint prime(int m) int i,k,j; k=sqrt(m);for(j=2;j=k;j+)if(m%j=0) break;if(j=k) return 0;else return 1;int main() int m=2,n=20,i,j,k,s; s=0;for(i=m;i=n;i+)if(prime(i)=0) s+=i;printf(Sum is:%dn,s);return 0;(3)程序用于求一维数组a中既不能被3整除也不能被5整除的元素之和。#include#includeint fun(int arr,int n) int i; int s=0;for(i=0;in;i+)if(arri%3!=0&arri%5!=0)s+=arri;return(s);int main() int a12=1,8,5,10,6,18,7,2,4,12,9,11; printf(The result is:%ldn,fun(a,12);return 0;反思与总结:定义函数时,形参的类型不能省略!调用函数时,形参变实参,类型也省略,如果形参是数组,那么写实参只需写出数组名就可以(不能写!)。2.改错题 (1)上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。int main() int x,y; scanf(%d%d,&x,&y); printf(%dn,sum(x,y);return 0;int sum(int a,int b) return(a+b);(2)给定程序的功能是求一维数组a中值为偶数的元素之和。#includesum(int arr,int n) int i,s; s=0;for(i=0;in;i+)if(arri%2=0)s+=arri;return(s);int main() int a10=10,4,2,7,3,12,5,34,5,9,s; s=sum(a,10);printf(The result is:%dn,s);return 0;反思与总结:定义函数sum时,这里省略了函数类型,系统默认是int型!3.编程题 (1)求两个整数的最大公约数和最小公倍数。#includeint main() int maxf(int a,int b); int minf(int a,int b,int c); int m,n,max,min; scanf(%d,%d,&m,&n);max=maxf(m,n); min=minf(max,m,n);printf(最大公约数=%d,最小公倍数=%dn,max,min);return 0;int maxf(int a,int b) int t; if(ab) t=a;a=b;b=t;t=a%b;while(t!=0) a=b;b=t;t=a%b;return (b);int minf(int a,int b,int c) return(b*c/a); #includemax=0;min=0;int main() int maxf(int a,int b); int minf(int a,int b,int c); int m,n; scanf(%d%d,&m,&n); maxf(m,n);minf(max,m,n); printf(最大公约数为%d,最小公倍数为%dn,max,min); return 0;int maxf(int a,int b) int t; if(ab) t=a;a=b;b=t;t=a%b;while(t!=0) a=b;b=t;t=a%b; max=b; int minf(int a,int b,int c) min=b*c/a;反思与总结:1.掌握求最大公约数的方法,且知最小公倍数=m*n/最大公约数;2.定义时的函数类型int可以省,但在主函数中声明时函数类型int不可省!3.这道题中定义的函数无返回值,函数类型应为void(2)输入一个十进制整数,输出其对应的二进制数。#includevoid fun(int m,int k) 正确的运行结果: int a100,i,j;for(i=0;m!=0;i+) ai=m%k;m=m/k;for(j=i-1;j=0;j-) 如果改成j=i:printf(%d,aj);int main() int m; scanf(%d,&m); fun(m,2); return 0;(3)将字符串1的第1,3,5,7,9位置的字符复制到字符串2并输出。#includevoid cp(char str1,char str2) int i,j; for(i=0,j=0;i20;i+=2,j+) str2j=str1i; str2j=0;int main() char str180=This is a c Program,str280; printf(String is :%sn,str1); cp(str1,str2); printf(Result is :%sn,str2); return 0;反思与总结:当一维数组作为形参时,可为空;当二维数组作为形参时,第一个可为空;(4)用递归法求n阶勒让德多项式,递归公式为:#includeint main() float fac(int n,int x); int n,x; float y; printf(input two number:); scanf(%d%d,&n,&x); y=fac(n,x); printf(%f,y); return 0;float fac(int n,int x) float y; if(n=0) y=1; else if(n=1) y=x; else if(n1) y=(2*n-1)*x*fac(n-1,x)-(n-1)*fac(n-2,x)/n; return(y);(5)编写一个函数,使给定的二维数组(3*3)转置。 #includevoid convert(int a3) int b33
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北京市中医院安全生产法规与岗位责任制专项考试
- 2025年江苏省港口集团社会招聘考前自测高频考点模拟试题及答案详解(各地真题)
- 秦皇岛市中医院临床决策能力考核
- 2025河北张家口市事业单位招聘有关事项考前自测高频考点模拟试题及参考答案详解
- 秦皇岛市中医院放射生物学应用考核
- 2025中心医院围术期凝血功能管理考核
- 2025儿童医院慢性阻塞性肺疾病老年患者管理考核
- 2025年合肥市第八人民医院招聘14人模拟试卷及答案详解(典优)
- 2025中心医院输血疗效评估考核
- 2025湖北襄阳市农业科学院招聘急需专业技术人才4人模拟试卷及1套完整答案详解
- 2025年市场营销自考真题及答案
- 数字化转型文化旅游产业智慧化发展研究报告
- 低空经济全景图:新质生产力驱动下的万亿级新赛道与区域标杆实践
- 硫酸安全培训与防范课件
- 2025年营造林监理工程师试题
- 空乘盘发课件
- 中建土建劳务招标标准清单编制参考
- 土地调查评估服务方案(3篇)
- 小学生英语水果课件下载
- 湖北省老年教育管理办法
- 人教新版(PEP)四年级上册单元测试卷 Unit1 Helping at home (含听力音频听力原文及答案)
评论
0/150
提交评论