- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++程序设计1实验报告.doc
实 验 报 告
( 2013 / 2014 学年 第 1学期)
课程名称 C++程序设计1实验名称函数与程序结构实验时间 2013年12月13日指导教师 谭 平
学生姓名班级学号学院(系)数学与计算机学院专 业软件工程
PAGE 3
实验名称函数与程序结构指导教师谭平实验类型设计与验证实验学时6实验时间2013.12.13实验目的和要求
1.掌握正确的函数定义、调用,会正确设置形式参数,理解传值与传地址的不同,运用函数实现模块化程序设计。
2.理解各种不同存储类别变量的作用域。
3.进一步熟悉调试器的使用,会利用调试器进行查错改错,会跟踪程序运行的每一步,观察变量的变化情况。二、实验环境(实验设备)
硬件: 微型计算机
软件: Microsoft Visual Studio 2008三、实验原理及内容
实验题目1:输入下列程序,运行它,分析得到的结果。
#include iostream.h
int n = 0;
int func(int x);
void main()
{
int a,b;
a = 5;
b = func(a);
cout \nlocal a= a endl;
local b= bendl;
global n= nendl;
a++;
b = func(a);
cout \nlocal a= a endl
local b= bendl
global n= nendl;
}
int func(int x)
{
int a=1;
static int b=10;
a++;
b++;
x++;
n++;
cout \nlocal a= a endl
local b= bendl
parameter x= x endl;
return a+b;
}
[实现要求]:
运行该程序,得到运行结果
分析得到的结果,说明为什么得到这样的结果
实验解答:
实验题目2:编写一个函数,求数列运算中从n个不同的数中取r个数的所有选择的个数。其个数值为:
,其中: n! = n*(n-1)*(n-2)*...*1。
[测试数据]:
输入:5 3
输出:10
输入:10 20
输出:Input Invalid !
输入:-1 4
输出:Input Invalid!
输入:50 3
输出:230300
输入:0 0
程序结束
[实现要求]:
分别用递归和非递归两种方式完成程序设计;
主程序中设计一个循环,不断从输入接收n和r的值,计算结果并输出,当用户输入0 0时,程序结束;
能检查输入数据的合法性,要求n=1并且n=r;
上面的测试数据能得到正确结果。
[实现提示]:
可以用double数据类型来存放函数的计算结果
递归结束条件:
如果 r = 0 ,则C(n, r) = 1
如果 r = 1, 则C(n, r) = n
[思考问题]
你对各种数据类型的字长是否有了新的认识?
递归函数的书写要点是什么?
你觉得递归和非递归函数哪种好些?
实验解答:
代码、运行截图、上面的问题解答
实验题目3:将上面的实验2的程序改成多文件结构
[实验要求]
将上面用非递归方式写成的程序改成用多文件结构表示。要求将main()函数放在一个文件中,将另外两个函数放在另一个文件中,将函数原型说明放在一个头文件中。建立一个项目,将这三个文件加到你的项目中,编译连接使你的程序正常运行。
[思考问题]
多文件结构中头文件的作用是什么?
将程序划分为多个文件有什么好处?
实验解答:
实验题目4:给定某个年、月、日的值,例如,2005年7月11日,计算出这一天属于该年的第几天,要求写出计??闰年的函数和计算日期的函数。
实验解答:请写出完整的源程序代码及运行截图:
四、实验小结(包括问题和解决方法、心得体会、意见与建议等)
成 绩批阅人日 期
文档评论(0)