实验报告五

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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。

相关文档
最新文档