C语言设计实验报告.docx
- 文档编号:4008895
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:11
- 大小:182.49KB
C语言设计实验报告.docx
《C语言设计实验报告.docx》由会员分享,可在线阅读,更多相关《C语言设计实验报告.docx(11页珍藏版)》请在冰豆网上搜索。
C语言设计实验报告
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),功能是判断一个数是否为素数。
#include
voidprimeNum(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);
else
printf("%disaprimenumber\n",x);
}
}
voidmain()
{
intm;
printf("请输入一个数:
");
scanf("%d",&m);
primeNum(m);
}
(2)输入三个整数,求最大值和最小值。
#include
intgetMax(inta,intb,intc)
{
intmax=a;
if(b>max)
max=b;
if(c>max)
max=c;
returnmax;
}
intgetMin(inta,intb,intc)
{
intmin=a;
if(b min=b; if(c 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。 #include intmulNum(inta,intb) { if(a%b==0) return1; else return0; } 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()的功能是求两个整数的最小公倍数。 #include intgcd(intx,inty) { intt,i; t=x x: y; for(i=t;i>=1;i--) { if(x%i==0&&y%i==0) break; } returni; } intmul(intx,inty,intz) { intt,k; t=x>y? 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); else printf("%disaprimenumber\n",x); 实验(5)要求将最大公约数与两个整数一起作为实参传递给函数mul(),以此求出最小公倍数;解决方法: intmul(intx,inty,intz) { intt,k; t=x>y? 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实验心得 通过本次实验,更加熟练地掌握了函数的定义与调用,函数参数和返回值的使用方法;并练习了循环结构和条件控制语句的用法;对函数调用的程序设计思想加深了理解。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 设计 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)