您好,欢迎访问三七文档
C语言程序设计实验报告1实验目的(1)掌握函数的定义方法、调用方法、参数说明以及返回值;(2)掌握实参与形参的对应关系,以及参数之间的“值传递”的方式;(3)掌握函数的嵌套调用及递归调用的设计方法;(4)在编程过程中加深理解函数调用的程序设计思想。2实验内容(1)编写一个函数primeNum(intx),功能是判断一个数是否为素数。(2)输入三个整数,求最大值和最小值。(3)编写函数mulNum(inta,intb),它的功能是用来确定a和b是否是整数倍的关系。如果a是b的整数倍,则函数返回值为1,否则函数的返回值为0。(4)编写两个函数,一个函数gcd()的功能是求两个整数的最大公约数,另一个函数mul()的功能是求两个整数的最小公倍数。3算法描述流程图(1)编写一个函数primeNum(intx),功能是判断一个数是否为素数。(2)输入三个整数,求最大值和最小值。(3)编写函数mulNum(inta,intb),它的功能是用来确定a和b是否是整数倍的关系。如果a是b的整数倍,则函数返回值为1,否则函数的返回值为0。(4)编写两个函数,一个函数gcd()的功能是求两个整数的最大公约数,另一个函数mul()的功能是求两个整数的最小公倍数。4源程序(1)编写一个函数primeNum(intx),功能是判断一个数是否为素数。#includestdio.hvoidprimeNum(intx){inti,k;if(x==0||x==1)printf(%disnotaprimenumber\n,x);else{for(i=2;i=x/2;i++)if(x%i==0)k=0;if(k==0)printf(%disnotaprimenumber\n,x);elseprintf(%disaprimenumber\n,x);}}voidmain(){intm;printf(请输入一个数:);scanf(%d,&m);primeNum(m);}(2)输入三个整数,求最大值和最小值。#includestdio.hintgetMax(inta,intb,intc){intmax=a;if(bmax)max=b;if(cmax)max=c;returnmax;}intgetMin(inta,intb,intc){intmin=a;if(bmin)min=b;if(cmin)min=c;returnmin;}main(){intx,y,z,m,n;printf(请输入三个数:);scanf(%d%d%d,&x,&y,&z);m=getMax(x,y,z);n=getMin(x,y,z);printf(最大值是%d\n,m);printf(最小值是%d\n,n);}(3)编写函数mulNum(inta,intb),它的功能是用来确定a和b是否是整数倍的关系。如果a是b的整数倍,则函数返回值为1,否则函数的返回值为0。#includestdio.hintmulNum(inta,intb){if(a%b==0)return1;elsereturn0;}main(){intx,y,m;printf(请输入两个整数:);scanf(%d%d,&x,&y);m=mulNum(x,y);if(m==1)printf(%disamultipleof%d\n,x,y);if(m==0)printf(%disnotamultipleof%d\n,x,y);}(4)编写两个函数,一个函数gcd()的功能是求两个整数的最大公约数,另一个函数mul()的功能是求两个整数的最小公倍数。#includestdio.hintgcd(intx,inty){intt,i;t=xy?x:y;for(i=t;i=1;i--){if(x%i==0&&y%i==0)break;}returni;}intmul(intx,inty,intz){intt,k;t=xy?x:y;for(k=t;k=x*y;k++){if(k%x==0&&k%y==0)break;}returnk;}main(){inta,b,m,n;printf(请输入两个正整数:);scanf(%d%d,&a,&b);m=gcd(a,b);n=mul(a,b,m);printf(最大公约数是:%d\n最小公倍数是:%d\n,m,n);}5测试数据素数判断:0,1,2,5,9,13,59,121;求三个数中的最大最小值:4,8,9;8,4,9;8,9,4;判断两个数是否是倍数关系:1与5,5与5,6与2,6与4,20与4,37与9。求两个数的最大公约数和最小公倍数:10和15;24和18;12和24;6运行结果素数判断求三个数中的最大最小值判断两个数是否是倍数关系求两个数的最大公约数和最小公倍数7出现问题及解决方法实验(1)要求函数类型为空值(void),不能有返回值,且要求在函数中输出是否为素数;解决方法:if(x%i==0)k=0;if(k==0)printf(%disnotaprimenumber\n,x);elseprintf(%disaprimenumber\n,x);实验(5)要求将最大公约数与两个整数一起作为实参传递给函数mul(),以此求出最小公倍数;解决方法:intmul(intx,inty,intz){intt,k;t=xy?x:y;for(k=t;k=x*y;k++){if(k%x==0&&k%y==0)break;}returnk;}没有用到变量z。或者:intmul(intx,inty,intz){k=x*y/z;returnk;}实验中我采取了第一种方法,但第二种方法较为简单,因为最初不知道最小公倍数=两个整数乘积再除以最大公约数8实验心得通过本次实验,更加熟练地掌握了函数的定义与调用,函数参数和返回值的使用方法;并练习了循环结构和条件控制语句的用法;对函数调用的程序设计思想加深了理解。
本文标题:C语言设计实验报告
链接地址:https://www.777doc.com/doc-6959917 .html