C语言程序设计实验报告函数.docx
《C语言程序设计实验报告函数.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验报告函数.docx(8页珍藏版)》请在冰豆网上搜索。
C语言程序设计实验报告函数
C语言程序设计实验报告(实验名称:
函数)
1实验目的
(1)掌握函数的定义方法、调用方法、参数说明以及返回值;
(2)掌握实参与形参的对应关系,以及参数之间的“值传递”的方式;
(3)掌握函数的嵌套调用及递归调用的用的设计方法;
(4)在编程过程中加深理解函数调用的程序设计思想。
2实验内容
(1)编写一个函数primeNum(intx),功能是判别一个数是否为素数。
要求:
1在主函数中输入一个整数x(直接赋值或从键盘输入);
2函数类型为空值(void),调用primeNum()函数后,在函数中输出x是否为素数的信息,输出格式为“xisaprimenumber”或”xisnotaprimenumber”;
3分别输入一下数据:
0,1,2,5,9,13,59,121,并运行程序,检查结果是否正确。
(2)编写函数mulNum(inta,intb),它的功能是用来确定a和b是否是整数倍的关系。
如果a是b的整数倍,则函数返回值为1,否则函数返回值为0。
要求:
1在主函数中从键盘输入一对整型数据a和b;
2调用函数后,根据返回值对a和b的关系进行说明。
例如,在主函数中输入:
10,5,则输出“10isamultipleof5”;
3分别输入下面几组数据进行函数的正确性测试:
1与5,5与5,6与2,6与4,20与4,37与9。
3算法描述流程图
(1)primeNum(intx)(判别一个数是否是素数)函数流程图
①主函数流程图:
声明变量n
输入n
判断n是否为素数?
输出该数是素数
输出该数不是素数
结束
假
真
提示输入一个数
开始
②判断素数函数流程图:
定义函数primNum(intx)
声明变量x及
循环变量i
i==0或i==1?
i=2
返回0值
结束
假
真
真
返回1值
假
真
开始
假
i+1
ix%i==0?
(2)mulNum(inta,intb)(确定a和b是否是整数倍的关系)函数流程图
①主函数流程图:
声明变量m、n
输入m、n
判断m是否为n的倍数?
输出m是n的倍数
输出m不是n的倍数
结束
假
真
提示输入两个数
开始
②判断倍数流程图:
定义函数mulNum(inta,intb)
声明变量a、b
a%b==0?
返回0值
结束
真
返回1值
假
开始
4源程序
(1)判断某个数是否是素数
#include
intprimNum(intx)/*编写函数判断某个数是否是素数*/
{
inti;
if(x==0||x==1)/*当x等于1或等于0时判断是否为素数*/
return0;
for(i=2;i{
if(x%i==0)
return0;
}
if(x%i)/*当x等于2或不满足上述条件时时判断出该数是素数*/
return1;
}
voidmain()
{
intn;
printf("Pleaseinputaninteger:
");/*提示从键盘输入一个数x*/
scanf("%d",&n);
if(primNum(n)==1)/*调用定义的函数*/
printf("%disaprimenumber\n",n);/*由函数得出结论判断是否为素数*/
else
printf("%disnotaprimenumber\n",n);
}
(2)个数是否是整数倍关系
#include
intmulNum(inta,intb)/*定义函数确定两个数是否有整数倍关系*/
{
if(a%b==0)/*判断出a是b的整数*/
return1;
else/*判断出a不是b的整数*/
return0;
}
voidmain()
{
intm,n;
printf("pleaseinputtowintegers:
\n");/*提示从键盘输入两个数*/
scanf("%d%d",&m,&n);/*从键盘输入两个数的值*/
if(mulNum(m,n)==1)/*调用定义的函数并判断输出相应的结果*/
printf("%disamultipleof%d\n",m,n);
else
printf("%disnotamultipleof%d\n",m,n);
}
5测试数据
(1)实验
(1)测试数据为0,1,2,5,9,13,59,121
运行结果
当测试数据0时
当测试数据1时
当测试数据2时
当测试数据5时
当测试数据9时
当测试数据13时
当测试数据59时
当测试数据121时
(2)实验2测试的数据1与5,5与5,6与2,6与4,20与4,37与9。
运行结果
当测试1与5时
当测试5与5时
当测试6与2时
当测试6与4时
当测试20与4时
当测试37与9时
6出现问题及解决方法
1)在判断某个数是否是素数的本实验中,我在使用循环遍历判断x是否为素数的时候循环体的内容错误地编写为:
for(i=2;i{
if(x%i==0)
return0;
else
return1;
}
导致程序不能正确地按照设想的结果运行,在判断清循环体的执行过程后将程序正确地改为了:
for(i=2;i{
if(x%i==0)
return0;
}
2)在判断确定两个数是否是整数倍关系的本实验中,我在定义两个形参时错误地编写成了(inta,b),经检查后改为正确格式(inta,intb)。
3)此外,在编写程序的时候,在标点符号上还有一些细节上的疏漏,如:
标点没有在英文的状态下使用,还有一条语句结束后遗漏了分号“;”。
7实验心得
本次实验,我掌握了一些具体函数的定义和调用方法,函数形参以及返回值的使用。
在操作的过程中深刻地体会到函数调用的便捷。
通过对循环和条件选择的使用,我亲自感受并实践了程序设计的思想,同时对C程序设计也有了总体的认识。
此外,编写程序的严谨思想也令我深深地感受一丝不苟地工作的重要性。