




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数学与软件科学学院 实验报告 2015年 6月 9日课程名称:C语言程序设计 专业:信息与计算科学 2014级 6班实验编号: 实验六 指导教师:冯山姓名:杨帆 学号:2014060634 实验得分 一、实验目的(1) 了解和掌握C语言环境下模块化程序设计的基础-基于函数模块的程序设计技术;(2) 复习C语言程序的基本结构特点,了解基于函数模块的程序模块及其调用关系、过程;(3) 函数的声明、定义、使用方法;(4) 对各种变量属性的使用方法;(5) 对C语言中常用的预编译命令的基本掌握。二、实验内容函数的声明、定义和使用方法。具体实例如下:(1) 编写一个在屏幕上画一条正弦曲线的函数;(2) 编写一个函数,它可以求出给定数的所有因子,如下形式显示其结果:72=2*2*2*3*3;(3) 分别写出一个求N个数的最大公约数和最小公倍数的递归函数;(4) 试编制n碟片hanoi塔的问题求解函数,并利用它求解4个盘片的结果;(5) 试编写求n!的函数,并求n=7的结果。2.有关变量的属性实验(静态、动态、全局、局部等方面)。(1) 仔细分析以下程序的执行结果,然后上机运行如下程序段,并对各个变量的属性及其使用结果进行比较分析:main() /*(a)*/ int x=1; /*(b)*/ void prt(void); int x=3; prt(); printf(The second x is %dn,x); /*(c)*/ printf(The first x is %dn,x);void prt(void) /*(d)*/ int x=5; printf(The third x is %dn,x); /*(e)*/(2) 仔细分析下列程序,是否有错误之处?然后分析其执行结果,上机验证并对各个变量的存储属性及其结果进行比较分析:#define LOW 11#define HIGH 23#define CHANGE 12int i=LOW;main() int workover(int i); int reset(int i); int i=HIGH; reset(i/2.5); printf(i=%dn,i); reset(i=i/3); printf(i=%dn,i); reset(i/2); printf(i=%dn,i); workover(i); printf(i=%dn,i);workover(int i); i=(i%i+)*(i*i)/(2*i)+4); printf(i=%dn,i); return (i);reset(int i); i=i=CHANGE?LOW:HIGH+; return (i); (3) 以下程序希望打印5行*,能否做到?为什么?int i;main() void prt(); for (i=0;i5;i+) prt(); void prt() for (i=0;i5;i+) printf(%c,*); printf(n);(4) 分析、编辑并执行以下程序,如果有错,请指出其错误原因,同时需要指出各个变量的存储属性。/*file1.c*/int last(void);int new(int);int reset(void);exter int i;main(void)int i,j;i=reset();for (j=1;j=3;j+) printf(“i=%dtj=%dn”,i,j);printf(“next(i)=%dt”,next(i);printf(“last(i)=%dn”,last();printf(“new(i+j)=%dn”,new(i+j);int next(void)return (i+);/*file2.c*/static int i=10;fast(void)rturn (i-=1_);new(int i)static int j=-5;return (i=j+=+i);/*file3.c*/extern int i;reset()return (i);3.预编译命令实验。具体实例如下:(1) 一般宏替换实验;(2) 带参数的宏替换;三、实验准备(1) 编写所选实验题目的程序代码和流程图;(2) 检查源程序并给出其可能的运行结果说明。四、实验步骤及结果1、(1) 编写一个函数,它可以求出给定数的所有因子,如下形式显示其结果:72=2*2*2*3*3;程序代码如下:运行结果:分析:此程序根据最小公倍数和辗转相除法写。(2) 分别写出一个求N个数的最大公约数和最小公倍数的递归函数;运行结果:分析: 此程序采用的是辗转相除法,根据数学上面的只是求的最大公约数以及最小公倍数。(3) 试编制n碟片hanoi塔的问题求解函数,并利用它求解4个盘片的结果; 程序如下:结果如下:分析:(1)以C为辅助将A杆上面的n-1张盘移到B杆hanoi(n-1,A,B,C);(2)将n张盘从杆A移到C move(n,A,C)(3)以A杆为辅助将B杆上n-1移到C上 hanoi(n-1,B,C,A)(4)试编写求n!的函数,并求n=7的结果。 程序如下:分析:fact(num-1)运用另一个函数进行嵌套。2、 (1)上机调试结果修改后的程序如下:分析:分程序也要用花括符括起来。(2)上机调试结果该程序有误,修改为:#include #define LOW 11#define HIGH 23#define CHANGE 12int i=LOW;int main(void) int i=HIGH; int reset(int i); clrscr(); reset(i/2.5); printf(i=%dn,i); reset(i=i/3); printf(i=%dn,i); reset(i/2); printf(i=%dn,i); workover(i); printf(i=%dn,i); return 0;int workover(int i) i=(i%i+)*(i*i)/(2*i)+4); printf(i=%dn,i); return (i);reset(int i) i=i=CHANGE?LOW:HIGH; return (i);分析;宏定义只是字符串的替换,从define开始后面所有的非字符串内的宏都可以用宏定义的宏体替换。(3) 能(4) 上机调试结果修改后程序如下:分析错误原因:fast 写成了last ,程序的冗杂太多,删除一些没用的。3.预编译命令实验。(1) 一般宏替换实验(教材例7-5);程序如下:注意;宏替换只是字符串的替换。(2) 带参
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 45753-2025增材制造功能梯度增材制造工艺规范
- GB/T 45668-2025地下空间信息系统建设技术要求
- 隧道施工机械行业政策与市场分析考核试卷
- 航空器发动机性能与故障排除考核试卷
- 镁冶炼过程中的质量管理体系与认证标准考核试卷
- 铁路车辆门窗制造考核试卷
- 石棉在城市给水工程中的应用考核试卷
- 陶瓷企业线上线下融合考核试卷
- 幼儿肠胃常见疾病与护理
- 急诊外科演练脚本
- 镇江市京口区2024-2025学年小升初总复习数学测试卷含解析
- “五步一练”六环节在高中化学课堂教学中的实践研究
- 建筑工程典型安全事故案例
- 抖音来客本地生活服务休闲娱乐购物行业商家运营策划方案
- 不断提升法治素养课件
- 颐高集团简介数字园区投资运营商
- 不坐班申请书
- 中国土壤调理剂行业市场现状调查及前景战略研判报告
- 防火门维护与保养流程
- 《中国联通IPv6培训》课件
- 【MOOC】《Python语言程序设计》(东北大学)中国大学慕课答案
评论
0/150
提交评论