教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教学研究 >

实验 函数与程序结构

来源:网络收集 时间:2026-09-11
导读: C++编程 实验函数与程序结构 实验目的 掌握函数声明、定义和使用的方法 掌握函数递归调用的方法 掌握全局变量、局部变量、静态变量的使用方法 掌握内联函数、重载函数及默认函数参数的使用方法 掌握自定义头文件的方法,学会建立和调试多文件程 实验内容 1.

C++编程

实验函数与程序结构

实验目的

掌握函数声明、定义和使用的方法

掌握函数递归调用的方法

掌握全局变量、局部变量、静态变量的使用方法

掌握内联函数、重载函数及默认函数参数的使用方法

掌握自定义头文件的方法,学会建立和调试多文件程

实验内容

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=" << b<<endl<< "global n=" << n<<endl;

a++;

b = func(a);

cout << "\nlocal a=" << a<< endl<< "local b=" << b<<endl<< "global n=" << n<<endl;

}

int func(int x)

{

int a=1;

static int b=10;

a++;

b++;

x++;

n++;

cout << "\nlocal a=" << a<< endl<< "local b=" << b<<endl<< "parameter x=" << x << endl;

return a+b;

}

C++编程

[实现要求]:

·运行该程序,得到运行结果

·分析得到的结果,说明为什么得到这样的结果

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

程序结束

[实现要求]:

1. 分别用递归和非递归两种方式完成程序设计;

2. 主程序中设计一个循环,不断从输入接收n和r的值,计算结果并输出,当用户输入0 0时,程序结束;

3. 能检查输入数据的合法性,要求n>=1并且n>=r;

4. 上面的测试数据能得到正确结果。

[实验步骤]

1. 利用一个非递归函数fn(int n)计算n!,利用另一个函数Cnr(int n, int r)计算Cnr,在该函数中调用fn(),问题:你打算用什么样的变量类型来存放n!函数返回的值?注意各种数据类型的内存字长不同,整数能存放的数据范围有限,你如何解决?

2. 利用一个递归函数实现,实现时利用公式:

C(n,r) = C(n, r-1) * (n – r + 1) / r

递归实现.

[实现提示]:

1. 可以用double数据类型来存放函数的计算结果

2. 递归结束条件:

如果 r = 0 ,则C(n, r) = 1

如果 r = 1, 则C(n, r) = n

[思考问题]

1. 你对各种数据类型的字长是否有了新的认识?

2. 递归函数的书写要点是什么?

C++编程

3. 你觉得递归和非递归函数哪种好些?

4. 将上面的程序改成多文件结构

[实验要求]

将上面用非递归方式写成的程序改成用多文件结构表示。要求将main()函数放在一个文件中,将另外两个函数放在另一个文件中,将函数原型说明放在一个头文件中。建立一个项目,将这三个文件加到你的项目中,编译连接使你的程序正常运行。[实验步骤]

1. 新建一个项目,命名为“multifile”

2. 用File|New创建一个新的”C++ Source File”,命名为main.cpp

3. 用File|New创建一个新的”C++ Source File”,命名为func.cpp

4. 用File|New创建一个新的”C/C++ Header File”,命名为func.h

5. 用File|Open打开你前面实验中用非递归方式求C(n,r)的C++源程序文件,将其中的主函数部分拷贝到main.cpp中,将其中的两个函数实现放到func.cpp中,再将两个函数的原型写到func.h中

6. 在main.cpp 中包含进头文件:

#include “func.h”

7. 编译连接该项目,运行它。你得到的结果应该和上一个实验一样。

[思考问题]

1. 多文件结构中头文件的作用是什么?

2. 将程序划分为多个文件有什么好处?

实验 函数与程序结构.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1570752.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)