实验报告五
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计上机实验报告
实验5 函数
班级:
姓名:
学号:
实验5 函数
一实验目的:
(1)熟练掌握函数的方法。
(2)熟练掌握函数调用的方法。
(3)熟练掌握函数说明的方法。
(4)理解单个变量作为函数的形式参数时,函数是如何定义和调用的。
(5)理解数组名作为函数的形式参数时,函数是如何定义和调用的。
(6)理解和掌握变量的各种、存储的概念和使用。
(7)掌握调试带有自定义函数的方法。
二实验内容:
(1)学会函数的调用和定义
(2)学会函数的说明的位置
(3)单个变量作为函数的形式参数时,函数是如何定义的。(4)变量的各种存储的概念和使用。
(5)掌握调试带有自定义函数的方法。
三.实验操作及步骤
1. 通过对项目的管理调试有两个原程序文件组成的程序
联调有以下两个原程序文件构成的程序。
(1)在windows环境下进入Visual C++6.0.
(2)在Visual C++6.0环境下建立一个新的工作空间
(3)在My workspace工作空间Myproject
(4)在项目中新建一个类型的文件first.cpp
(5)在编辑窗口编辑first.cpp文件。
(6)在Mproject项目中再新建一个Source Files 类型的文件second.cpp.
(7)在编辑窗口中编进second.cpp文件。
(8)编译,连接并运行程序。程序调试成功。
2.通过调试,将下面的程序修改为正确的程序
程序的功能是输入球的半径,求球的表面积。
(1)
将程序输入编辑窗口,编辑该程序,编译给出的错误提示包括:
第一个错误提示信息是“第8行错误,area,没有定义的标识符”,第8行的语句是“area=A_sphere(double r);”变量area在主函数中没有定义。第二个错误提示信息”第6行错误,A_sphere,函数在调用之前没有说明。
(2)在编辑窗口修改程序。
在主函数中增加对变量area的定义“double area;”并增加函数说
说明语句“double A_sphere(double r)”。将其加在主函数的前面。
(3)再次编译。
程序还有4个错误。
前两错误在第8行,错误提示信息是“double之前少了一个)”和“函数不能0个参数”,仔细检查,程序并没有少左圆括号,而是调用的实际参数书写错误,应该写为:“area=A_sphere(r);”.还有一个错误在14行,错误提示信息是”函数必须返回一个值“,检查函数定义,return语句后没有表达式,将其改为”return area“;
(4再次编译,编译成功。运行程序正常运行。
3.使用单步调试方法和断点调试方法观察不同存储类别的变化情况
下列程序中定义了外部变量y,main()函数的内部变量i,decr()函数的内部静态变量x.
(1)将程序输入编辑窗口,编辑并连接程序。
(2)使用单步调试方法调试程序,观察变量的变化情况。
选择Build-Start Debug-Step Into命令或直接按快捷键【F11】单步调试。尽管程序还没有执行,但是,变量窗口的内容显示了变量y的内容是10,如图所示。因为y是外部变量,有系统负责初始化。
按快捷键【F10】单步执行,main()函数的变量i的值是-8589993460,这说明自动变量的初值是一个不定值。
再次按快捷键【F10】,程序进入循环,在变量窗口的i变成了红色的I
按快捷键【F11】进入函数decr()中进行调试(注意一要用快捷键【F11】,否则不能进入被调用函数()。
进入函数以后,变量窗口中已经可以看到x的值是10,因为x是decr ()函数定义的内部静态变量,按快捷键【F10】,变量窗口中增加了变量i,其值又是-8589993460.注意,这时的i已经不是主函数中的i 了,而是decr()函数中的自动变量。
再次4次快捷键【F10】.变量窗口中显示i。x,和y的值,全部是9 按快捷【F10】。程序运行窗口显示“X=9 y=9 i=9“。
按快捷键【F10】回到主函数,接着再按两次快捷键[F10],主函数的值变为2.
按快捷键【F11】第二次进入decr()函数,这时,变量窗口中变量x
的值是9,并没有因外部变量,也不会再decr()函数返回主函数时空间被释放。
连续按5次快捷键【F10】,变量窗口中显示I x 和y的值是9,8和8.i 是自动变量,每次函数结束时,空间被释放,再次进入函数时,重新分配空间,因此第二次进入函数运行以后,i的值任然是9.
按快捷键【F10】,程序运行窗口显示:x=9.y=8.x=8.”
同样的方法。可以观察main()函数第三次调用函数decr()的执行情况,变量窗口中显示i。x和y的值是9.7和7.
最后,按快捷键【Shift+F5】退出调试状态。
(3)使用断点调试方法调试程序,观察变量的变化范围。
在编辑窗口中设置两个断点,在语句“decr();“所在行右击,在弹出的快捷菜单中选择Insert/Remove Breakpoints命令”再在语句“printf (”\n x=%d y=%d i=%d”,x,y,i);”所在行右击。在弹出的快捷菜单中选择Insert/Remove Breakpoints命令。
选择Build-Start Debug-Step Into命令(或直接按快捷键【F5】)。程序执行到主函数对decr()函数的调用前暂停,如下图,这时,变量窗口中的值是1,观察窗口中y的值是10.说明在第一次进入主函数执行之前,i的值(main()函数中的自动变量)和y的值已经有确定的值。
再次按快捷键【F5】,程序执行到decr()函数的“i++;”,语句之后暂停,如下图。这时,变量窗口中显示的i.x和y的值全部是9,这将是下一句printf()函数输出的3个值。
按快捷键【F5】,程序执行到decr函数的调用前暂停,变量窗口中的值显示i值是2,观察窗口中显示的y值是9.
再次按快捷键【F5】,程序执行到decr()函数的“i++;”语句之后暂停。变量窗口中显示的i.x和y 值是9.8和8.
按两次快捷键【F5】,变量窗口中显示的i.x和y值是9.7和7。