



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计实验报告实验四 函数程序设计班级 2012196 学号 201219628 姓名 李明月 一、实验目的(1)掌握C语言函数定义及调用的规则;(2)掌握递归函数的编写方法和运行过程;(3)理解变量的作用域和生存期。二、实验内容及步骤1、程序改错输入已编好的源程序,源程序中包含有错误,先对源程序进行编译和连接,然后根据提示信息,修改程序中的错误,经过多次修改编译连接,直到编译、连接成功。最后运行程序,输出正确结果。(1)下述程序中,函数FUN功能是:计算正整数NUM的各位上的数字之积。例如,若输入252,则输出应该是20;若输入202,则输出应该是0。#include /*提示:有3处错误*/ #include long fun(num)long k=1;dok*=num%10;num=10;while (num)return k;void main()long n;scanf(“%ld”,&n);printf(“n%ldn”,fun(n);修改后程序代码:#include #include long fun(long num)long k=1;dok*=num%10; num/=10;while (num);return k;void main()long n;scanf(%ld,&n);printf(n%ldn,fun(n);2、编写程序模拟掷骰子游戏。已知掷骰子游戏的游戏规则为:每个骰子有6面,这些面包含1、2、3、4、5、6个点,掷两枚骰子之后,计算点数之和。如果第一次掷的点数和为7或11,则游戏者获胜;如果第一次掷的点数和为2、3或12,则游戏者输;如果第一次掷的点数和为4、5、6、8、9或10,则将这个和作为游戏者获胜需要掷出的点数,继续投骰子,直到掷到该点数时算是游戏者获胜。如果投掷7次仍未掷到该点数,则游戏者输。程序代码:#include #include #include int main()int sum1();int sum,dot,i=1,state;srand(time(NULL);sum=sum1();switch(sum)case 7:case 11: state=1; break;case 2:case 3:case 12: state=-1; break;default: state=0; dot=sum;printf(你获胜需要掷出的点数是: %dn,dot);break;while(state=0) sum=sum1(); if(sum=dot&i=7)state=-1; i+;if(state=1)printf(恭喜你,你赢了n);elseprintf(对不起,你输了n);return 0;int sum1()int n1,n2,sum;n1=1+(rand()%6);n2=1+(rand()%6); sum=n1+n2;printf(你掷的点数是:%dn,sum);return sum;运行结果:3. 递归程序设计练习计算最大公约数 利用计算最大公约数的三条性质,用递归方法计算两个整数的最大公约数。性质1:如果xy,则x和y的最大公约数与x-y和y的最大公约数相同 性质2:如果yx,则x和y的最大公约数与x和y-x的最大公约数相同性质3:如果x=y,则x和y的最大公约数与x值和y值相同,即具体要求:主函数中随机输入x、y的值所有变量定义为整数变量。键盘输入数据前要有提示。要求用函数求最大公约数。程序代码:#includeint main()int maxgongyue(int x,int y); /声明函数int a,b,m;printf(请输入两个整数:n);scanf(%d %d,&a,&b);m=maxgongyue(a,b); /调用函数printf(这两个整数的最大公约数是:%dn,m);return 0;int maxgongyue(int x,int y) /运用递归函数来实现最大公约数的求解if(xy)maxgongyue(x-y,y);else if(yx) maxgongyue(y-x,x);elsereturn(x);运行结果:4. 定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。程序代码:#include#define exchange(a,b,temp) temp=b;b=a;a=temp; /定义一个带参数的宏,来实现两个数的替换int main() float a,b,temp=0; printf(请输入两个数a,b:); scanf(%f %f,&a,&b); exchange(a,b,temp); /使用宏,实现两个数的交换 printf(a=%f b=%fn,a,b); return 0;运行结果:三、实验心得 通过本次实验,对于函数运用有了进一步的提高,对于函数的声明调用,有了更深层次的体会,函数可以帮助我们实现特定的功能,当编写一些较大的程序的时候
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 去年李沧区数学试卷
- 社区爱心赠书活动方案策划(3篇)
- 惠州施工方案汇报(3篇)
- 双桥区盖板施工方案(3篇)
- 降粘剂施工方案(3篇)
- 绿化春节施工方案(3篇)
- 闲置物品收集活动策划方案(3篇)
- 砂糖橘活动策划方案案例(3篇)
- 安徽省芜湖市鸠江区2023-2024学年高二上学期第一次月考化学题库及答案
- 心灵驿站面试题目及答案
- 党群服务面试题目及答案
- 2025-2026秋季学年第一学期【英语】教研组工作计划:一路求索不停歇研思共进踏新程
- 2025年山东省济南中考数学试卷及标准答案
- 2025-2026学年人教版(2024)初中数学七年级上册教学计划及进度表
- 高速天桥拆除方案(3篇)
- 第1课 鸦片战争 课件 历史统编版2024八年级上册
- 物业管理师职业技能竞赛理论知识试题题库(1000题)
- 2025年中国冷链物流行业投资前景分析、未来发展趋势研究报告(智研咨询发布)
- 2025合作合同范本下载
- 手外伤急救诊疗流程标准化
- 农村土地托管培训课件
评论
0/150
提交评论