《C语言程序设计实验报告(2).docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验报告(2).docx(8页珍藏版)》请在三一办公上搜索。
1、C语言程序设计实验报告C语言程序设计实验报告 1 实验目的 掌握函数的定义方法、调用方法、参数说明以及返回值; 掌握实参与形参的对应关系,以及参数之间的“值传递”的方式; 掌握函数的嵌套调用及递归调用的用的设计方法; 在编程过程中加深理解函数调用的程序设计思想。 2 实验内容 编写一个函数primeNum(int x),功能是判别一个数是否为素数。 要求: 在主函数中输入一个整数x; 函数类型为空值,调用primeNum( )函数后,在函数中输出x是否为素数的信息,输出格式为“x is a prime number”或”x is not a prime number”; 分别输入一下数据:0,
2、1,2,5,9,13,59,121,并运行程序,检查结果是否正确。 编写函数 mulNum(int a,int b),它的功能是用来确定a和b是否是整数倍的关系。如果a是b的整数倍,则函数返回值为1,否则函数返回值为0。 要求: 在主函数中从键盘输入一对整型数据a和b; 调用函数后,根据返回值对a和b的关系进行说明。例如,在主函数中输入:10,5,则输出“10 is a multiple of 5”; 分别输入下面几组数据进行函数的正确性测试:1与5,5与5,6与2,6与4,20与4,37与9。 3 算法描述流程图 (1) primeNum(int x)函数流程图 主函数流程图: 开始 声明变
3、量n 提示输入一个数 输入n 判断n是否为素数? 假 真 输出该数是素数 输出该数不是素数 结束 判断素数函数流程图: 开始 定数primNum(int x) 义函声明变量x及 循环变量i i=0或i=1? 假 i=2 真 i x? 真 假 假 i+1 x% i=0? 返回1值 真 返回0值 结束 mulNum(int a,int b)函数流程图 主函数流程图: 开始 声明变量m、n 提示输入两个数 输入m、n 判断m是否为n的倍数? 假 真 输出m是n的倍数 输出m不是n的倍数 结束 判断倍数流程图: 开始 定数mulNum(int a,int b) 义函声明变量a、b a%b=0? 假 真
4、 返回1值 返回0值 结束 4 源程序 判断某个数是否是素数 #include int primNum(int x) /*编写函数判断某个数是否是素数*/ int i; if (x=0|x=1) /*当x等于1或等于0时判断是否为素数 */ return 0; for (i=2;ix;i+) /* 当x大于2时判断不为素数的数 */ if (x%i=0) return 0; if (x%i) /* 当x等于2或不满足上述条件时时判断出该数是素数 */ return 1; void main int n ; printf(Please input an integer:); /* 提示从键盘输入
5、一个数x */ scanf(%d,&n); if (primNum(n)=1) /* 调用定义的函数 */ printf(%d is a prime numbern,n); /* 由函数得出结论判断是否为素数 */ else printf(%d is not a prime numbern,n); (2)个数是否是整数倍关系 #include int mulNum(int a,int b)/* 定义函数确定两个数是否有整数倍关系*/ if (a%b=0) /* 判断出a是b的整数*/ return 1; else /* 判断出a不是b的整数*/ return 0; void main int
6、m,n; printf (please input tow integers:n); /*提示从键盘输入两个数 */ scanf (%d%d,&m,&n); /*从键盘输入两个数的值 */ if(mulNum(m,n)=1) /*调用定义的函数并判断输出相应的结果*/ printf(%d is a multiple of %dn,m,n); else printf(%d is not a multiple of %dn,m,n); 5 测试数据 实验测试数据为0,1,2,5,9,13,59,121 运行结果 当测试数据0时 当测试数据1时 当测试数据2时 当测试数据5时 当测试数据9时 当测试
7、数据13时 当测试数据59时 当测试数据121时 实验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;ix;i+) if (x%i=0) return 0; 2)在判断确定两个数是否是整数倍关系的本实验中,我在定义两个形参时错误地编写成了,经检查后改为正确格式。 3)此外,在编写程序的时候,在标点符号上还有一些细节上的疏漏,如:标点没有在英文的状态下使用,还有一条语句结束后遗漏了分号“ ; ”。 for (i=2;ix;i+) if (x%i=0) return 0; return 1; else 7实验心得 本次实验,我掌握了一些具体函数的定义和调用方法,函数形参以及返回值的使用。在操作的过程中深刻地体会到函数调用的便捷。通过对循环和条件选择的使用,我亲自感受并实践了程序设计的思想,同时对C程序设计也有了总体的认识。此外,编写程序的严谨思想也令我深深地感受一丝不苟地工作的重要性。