欢迎来到天天文库
浏览记录
ID:38698420
大小:282.00 KB
页数:17页
时间:2019-06-17
《实验四 模块化设计思想和函数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验(实训)报告项目名称实验四函数所属课程名称C语言程序设计项目类型验证性实验(实训)日期班级学号姓名指导教师马雪英浙江财经学院教务处制一、实验(实训)概述:【实验目的】1.熟悉定义函数的方法;验证函数实参与形参的对应关系、值传递;函数重载.2.理解全局变量和局部变量、动态存储和静态存储变量。3.学会使用预编译命令【实验要求】1.正确使用函数进行程序设计;2.正确运用实参与形参进行参数传递。【基本原理】见第四章课件【实施环境】(使用的材料、设备、软件)VisualC++6.0二、实验(实训)内容:实验任务一用DEBUG跟踪程序流程,回答问题第1题【考查知识点】函数调用、参数
2、传递、调试【项目内容】用辗转相除法求最大公约数,并利用最大公约数求最小公倍数。已经有如下正确的程序了,请为该程序建立控制台工程,然后按照要求进行测试和调试。#includeusingnamespacestd;intmain(){intgcd(int,int);intlcm(int,int,int);intm,n,g,l;cin>>m>>n;g=gcd(m,n);cout<<"G.C.D="<3、v>u){t=u;u=v;v=t;}while((r=u%v)!=0){u=v;v=r;}return(v);}intlcm(intu,intv,inth){return(u*v/h);}【方案设计】请根据课件中关于辗转相除法的相关内容,理解辗转相除法的执行过程。并画出gcd函数的流程图。【实验(实训)过程】(步骤、记录、数据、程序等)(1)测试:请拟5组数据,比如m=100,n=105等等,运行上面的程序,初步测试该程序是否正确。对每组数据,写出程序的输出结果,判断输出结果是否正确。回答:(2)调试:对下面每组数据,通过调试,给出每个步骤后,m、n(或u、v)变量的值。提4、示1:调试方法,在cin语句处插入一个断点,进行调试,如下图所示。然后单步运行(stepover),输入两个数据m和n。提示2:当运行到g=gcd(m,n);这条语句处时,点击调试工具条上的StepInto按钮,进入到gcd函数中进行调试。1)m=18,n=33main函数中:m的值是:n的值是:gcd函数中:uv进入到gcd时:执行完if语句后:第一次while循环执行之后:第二次while循环执行之后:…main函数中:gcd函数的返回值是:赋值后变量g的值是:赋值后变量l的值是:1)m=10,n=16main函数中:m的值是:n的值是:gcd函数中:uv进入到gcd时5、:执行完if语句后:第一次while循环执行之后:第二次while循环执行之后:…main函数中:gcd函数的返回值是:赋值后变量g的值是:赋值后变量l的值是:【结论】(结果、分析)无第2题【考查知识点】函数调用、参数传递、调试【项目内容】教材课后习题7。写一个函数验证著名的哥德巴赫猜想:任一个不小于6的偶数可以表示为两个素数之和。如6=3+3,8=3+5,10=3+7,…。在主函数中输入一个不小于6的偶数n,然后调用函数godbaha,在godbaha函数中再调用prime函数,prime函数的作用是判别一个数是否为素数。在godbaha函数中输出以下形式的结果:34=36、+31已经有如下正确的程序了,请为该程序建立控制台工程,然后按照要求进行测试和调试。#include#includeusingnamespacestd;intmain(){intgodbaha(int);intn;cout<<"inputn:";cin>>n;godbaha(n);return0;}intgodbaha(intn){intprime(int);inta,b;for(a=3;a<=n/2;a=a+2){if(prime(a)){b=n-a;if(prime(b))cout<7、return0;}intprime(intm){inti,k=sqrt(m);for(i=2;i<=k;i++){if(m%i==0)break;}if(i>k)return1;elsereturn0;}【方案设计】为该程序建立控制台工程。【实验(实训)过程】(步骤、记录、数据、程序等)(1)测试:请运行该程序,输入几个大于6的偶数,初步判断该程序的正确性。给出你测试的结果回答:(2)调试:观察函数调用过程。回答下面的问题。提示1:在main函数的cin语句处设置断点(如下图所示),进行调试,输入n的值为20。提示
3、v>u){t=u;u=v;v=t;}while((r=u%v)!=0){u=v;v=r;}return(v);}intlcm(intu,intv,inth){return(u*v/h);}【方案设计】请根据课件中关于辗转相除法的相关内容,理解辗转相除法的执行过程。并画出gcd函数的流程图。【实验(实训)过程】(步骤、记录、数据、程序等)(1)测试:请拟5组数据,比如m=100,n=105等等,运行上面的程序,初步测试该程序是否正确。对每组数据,写出程序的输出结果,判断输出结果是否正确。回答:(2)调试:对下面每组数据,通过调试,给出每个步骤后,m、n(或u、v)变量的值。提
4、示1:调试方法,在cin语句处插入一个断点,进行调试,如下图所示。然后单步运行(stepover),输入两个数据m和n。提示2:当运行到g=gcd(m,n);这条语句处时,点击调试工具条上的StepInto按钮,进入到gcd函数中进行调试。1)m=18,n=33main函数中:m的值是:n的值是:gcd函数中:uv进入到gcd时:执行完if语句后:第一次while循环执行之后:第二次while循环执行之后:…main函数中:gcd函数的返回值是:赋值后变量g的值是:赋值后变量l的值是:1)m=10,n=16main函数中:m的值是:n的值是:gcd函数中:uv进入到gcd时
5、:执行完if语句后:第一次while循环执行之后:第二次while循环执行之后:…main函数中:gcd函数的返回值是:赋值后变量g的值是:赋值后变量l的值是:【结论】(结果、分析)无第2题【考查知识点】函数调用、参数传递、调试【项目内容】教材课后习题7。写一个函数验证著名的哥德巴赫猜想:任一个不小于6的偶数可以表示为两个素数之和。如6=3+3,8=3+5,10=3+7,…。在主函数中输入一个不小于6的偶数n,然后调用函数godbaha,在godbaha函数中再调用prime函数,prime函数的作用是判别一个数是否为素数。在godbaha函数中输出以下形式的结果:34=3
6、+31已经有如下正确的程序了,请为该程序建立控制台工程,然后按照要求进行测试和调试。#include#includeusingnamespacestd;intmain(){intgodbaha(int);intn;cout<<"inputn:";cin>>n;godbaha(n);return0;}intgodbaha(intn){intprime(int);inta,b;for(a=3;a<=n/2;a=a+2){if(prime(a)){b=n-a;if(prime(b))cout<7、return0;}intprime(intm){inti,k=sqrt(m);for(i=2;i<=k;i++){if(m%i==0)break;}if(i>k)return1;elsereturn0;}【方案设计】为该程序建立控制台工程。【实验(实训)过程】(步骤、记录、数据、程序等)(1)测试:请运行该程序,输入几个大于6的偶数,初步判断该程序的正确性。给出你测试的结果回答:(2)调试:观察函数调用过程。回答下面的问题。提示1:在main函数的cin语句处设置断点(如下图所示),进行调试,输入n的值为20。提示
7、return0;}intprime(intm){inti,k=sqrt(m);for(i=2;i<=k;i++){if(m%i==0)break;}if(i>k)return1;elsereturn0;}【方案设计】为该程序建立控制台工程。【实验(实训)过程】(步骤、记录、数据、程序等)(1)测试:请运行该程序,输入几个大于6的偶数,初步判断该程序的正确性。给出你测试的结果回答:(2)调试:观察函数调用过程。回答下面的问题。提示1:在main函数的cin语句处设置断点(如下图所示),进行调试,输入n的值为20。提示
此文档下载收益归作者所有