- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验6函数与编译预处理实验6函数与编译预处理
实验六 函数与编译预处理(4学时)
实验前必须做的操作——新建文件夹:
首先在各自对应的计算机ncre(k:)盘上对应座位号文件夹内新建一个文件夹,文件夹的名字为“班级+学号的后两位+姓名”,如座位号为K02,航海1111班、学号后两位是02的、姓名为“张强”的同学,则其对应的文件夹名字是:航海111102张强。然后在刚才建好的文件夹里面再建立一个文件夹,文件夹为“实验6”。
【实验目的】
1、 掌握自定义函数的一般结构及定义函数的方法;
2、 掌握函数的形式参数、实际参数、函数返回值等重要概念;
3、 掌握函数实参与形参间的“值传递”方式;
4、 掌握函数声明、函数调用的一般方法;
5、 掌握模块化程序设计思想,会采用C语言中函数进行模块化程序设计;
6、 掌握全局变量和局部变量作用域以及全局变量和局部变量的使用方法;
7、 掌握函数的嵌套调用的程序的执行过程,会使用嵌套调用设计程序;
8、 掌握使用函数递归调用的程序的执行过程,会使用递归程序解决实际问题;
9、 理解宏的概念,掌握宏定义。了解文件包含的概念,掌握其用法;
10、 学习对多文件程序的编译和运行;
11、 熟练掌握VC程序调试方法,包括断点的设置和取消,以及单步执行跟踪进入函数和跳出函数的方法。
【实验内容】
[实验任务一]:断点的设置和取消、单步执行跟踪进入函数和跳出函数方法练习
程序跟踪调试实例6-1:调试示例(请仔细按以下各步骤进行操作):
从键盘输入一个正整数n,计算 n! 的值,要求定义和调用函数fact(n),计算n!。
源程序(有错误的程序)
运行结果(改正错误后程序的运行结果)
Input n: 10
10! = 3628800
说明:实验五中我们使用了程序运行到光标位置调试程序,本次实验需要掌握设置断点,以及单步调试进入函数和跳出函数的方法。
【操作步骤】:
(1)输入源程序,并以error6_1.c文件名最终保存在实验6文件夹里,编译程序,出现警告信息:
双击该警告信息,箭头指向“f=fact(n);”这一行,警告信息指出函数“fact”没有定义,而函数“fact”实际上已经定义了,这是为什么呢?因为函数在调用之前,必须先声明。在主调函数的变量定义前面加上函数声明“long fact(int m);”后,重新编译,连接,都正确。
注意:
如果将error6_1.c文件改为error6_1.cpp (即改为C++源程序文件),编译程序时,出现的将是以下错误信息(而不是警告信息):
可见VC++系统对.c文件和.cpp文件在进行编译时,对语法的要求不完全一样,这一点希望同学们注意。此处错误修改的方法与上面相同。
(2)调试开始,设置2个断点(断点的作用:程序执行到断点处暂停,使用户可以观察当前的变量或其它表达式的值,然后继续运行),先把光标定位到要设置断点的位置,然后单击编译工具条上的(Inert / Remove Breakpoint (F9)),断点就设置好了(如图6.1所示)。如果要取消断点,只要把光标放到要取消的断点处,单击,这个断点就取消了。
图6.1 设置断点
(3)单击编译工具条(go (F5)),运行程序,用户输入n的值10后,程序运行到第一个断点位置暂停(如图6.2所示)。
图6.2 程序运行到断点位置
(4))单击(Step Into (F11))进入函数fact()调试,箭头表示程序已经执行到函数fact()内(如图6.3所示)。
(5)使用,在函数fact()中设置程序的第3个断点(如图6.3所示)。
图6.3 进入函数fact( )调试,并在运行时设置断点
(6)单击(go (F5)),程序直接运行到断点处,暂停(如图6.4所示),在变量窗口观察到product的值是-2903040,不正确,因为变量product未赋初值,加上语句product=1后,按以上的步骤,重新编译、连接,运行到第3个断点处,变量窗口中product的值正确。
图6.4 程序从函数fact()开始直接运行到第3个断点的位置(return前面)
(7)现在需要从被调函数返回到主调函数,单击调试工具条中的(Step Out (Shift+F11)),程序返回主调函数继续执行(如图6.5所示)。
图6.5 程序回到了主调函数
(8)继续单击(go (F5)),程序执行到最后(如图6.6所示),在运行窗口输出10!=3628800,与题目要求的结果一致。
图6.6 程序执行到最后
(9)单击终止调试图标(Stop Debugging(Shaft+F5)),程序调试结束。
程序跟踪调试实例6-2:模仿示例调试以下程序,直到输出正确结果,将修改好的程序以error6_2.c为文件名最终保存在实验6文件夹里。(需要存盘)
程序功能:利用函数调用
您可能关注的文档
最近下载
- 患者跌倒鱼骨图.pptx
- 国际结算-托收案例分析.ppt
- 学校安全联席会议制度.docx VIP
- 部编小学语文单元整体作业设计二年级上册第五单元 2.docx
- 基于单片机的温度控制系统设计.pptx VIP
- 国家开放大学电大组织行为学1-7章节自测答案.pdf
- 游戏化教学在小学数学教育中的应用教学研究课题报告.docx
- 苏G/T 28-2017- 预应力混凝土抗拔空心方桩 钢板、螺栓机械式连接.pdf
- 中国国家标准 GB/T 41330-2022锅炉用水和冷却水分析方法 痕量铜、铁、钠、钙、镁含量的测定 电感耦合等离子体质谱(ICP-MS)法.pdf
- 工厂化循环水养殖项目可行性研究报告.docx VIP
文档评论(0)