c语言实验七
更新时间:2023-10-09 04:20:01 阅读量: 综合文库 文档下载
常熟理工学院
《C语言程序设计》实验指导与报告书
______学年 第____ 学期
专 业: ___________________________________________ 学 号: ___________________________________________ 姓 名: ___________________________________________ 实验地点:___________________________________________ 指导教师:___________________________________________
计算机科学与工程学院
2014
1
实验9 函数程序设计(1)
9.1 实验目的
1.理解函数的概念,掌握函数的定义与调用方法。
2.理解参数传递的概念,理解形参与实参之间的对应关系。 3.理解局部变量与全局变量的概念。
4.掌握数组作为函数的参数的程序设计方法。
9.2 示例程序
【实验9.1】本程序的功能是:求任意两个正整数的最小公倍数。 程序代码:
#include
int r,p; p=m*n;
while((r=m%n)!=0) { }
p=p/n; return(p); } int main() {
int a,b,c;
printf(\scanf(\
c=gbs(a,b); printf(\return 0; }
/* 调用函数 */
/* 最小公倍数 */
m=n; n=r;
/* 余数不为0时循环 */
/* 上一次的除数作为新的被除数 */ /* 上一次的余数作为新的除数 */
说明:
1.函数中首先求出两个整数的最大公约数,采用的算法是辗转相除法。
2.以其中一个数做被除数,另一个数做除数,相除求余数。若余数不为0,则以上一次的除数作为新的被除数,上一次的余数作为新的除数,继续求余数。
3.直至余数为0时,对应的除数就是最大公约数。两个整数的乘积除以最大公约数即为最小公倍数。
),输出m~n之间所有的完数,完【实验9.2】输入两个正整数m和n(m?1,n?1000数就是其因子和与它本身相等的数。要求定义和调用函数factsum(n),它的功能是返回n的
因子和。例如,factsum(12)的返回值是16(1+2+3+4+6)。
程序代码:
#include
2
int factsum(int n); int main() {
int i,m,n, result;
printf(\scanf(\if(m>n) { {
i=m;m=n;n=i;}
/* 使m /* 调用函数求因子和 */ /* 判断是否完数 */ for(i=m;i<=n;i++) result=factsum(i); if(i==result) printf(\ } return 0; } int factsum(int n) { int i,sum; sum=1; for(i=2;i<=n/2;i++) if(n%i==0) sum=sum+i; return sum; } /* 累加因子 */ /* 返回因子和 */ /* 找所有因子 */ /* 求因子和函数 */ /* 对函数进行声明 */ 说明: 1.函数factsum(n)的功能是返回整数n的因子和。 2.调用返回后,将因子和与i进行比较,若相等则是完数。 9.3 阅读程序 【实验9.3】以下程序的功能是:由键盘输入一个正整数n,调用判断素数的函数,输出小于n的所有素数,将素数以每行3个的形式输出。 程序代码: #include int i; for(i=2;i if(m%i==0) return(0); return(1); } int main() { int i,n,k=0; printf(\scanf(\for(i=2;i<=n;i++) 3 /* */ /* */ if(prime(i)) { printf(\k++; if(k%3==0) printf(\ } return 0; } /* */ /* */ 说明: 1.输入一个整数后,则判断由2到n之间的每个数是否为素数。 2.函数prime用于判断一个整数n是否为素数。若是素数返回值1,否则返回值0。 【实验9.4】下面程序的功能是:一维数组中存放了10名同学某门课程的成绩,使用全局变量与函数,求出10名同学的平均分、最高分和最低分。 程序代码: #include float max=0,min=0; float average(float array[],int n) { int i; float aver,sum=array[0]; max=min=array[0]; for(i=1;i if(array[i]>max) max=array[i]; else if(array[i] min=array[i]; sum=sum+array[i]; } aver=sum/n; return(aver); } int main() { float ave,score[10]; int i; for(i=0;i<10;i++) scanf(\ ave=average(score,10); return 0; } /* */ printf(\ /* */ /* */ /* */ /* */ 说明: 1.程序中将最高分与最低分变量定义为全局变量,这样可以实现从函数中返回多个值。 2.但在程序设计中应尽量少使用全局变量,否则会使函数的通用型降低。 9.4 完善程序 4 【实验9.5】下面程序的功能是:寻找具有下列特性的四位正整数,其百位数为0,去掉百位数0可得到一个三位正整数,而该三位正整数乘以9等于原四位正整数。例如,6075=675×9,所以6075是具有上述特性的正整数。请完善程序。 程序代码: #include int a,b,c,d; a=n/1000; /* 求出千位数字 */ /* 求出百位数字 */ b=________; d=n; if((b==0)&&(_________) return 1; else return 0; } int main() { int i; for(i=1000; i<10000; i++) if(________) printf(\ printf(\return 0; } /* 判断i是否所要找的数 */ /* 判断是否满足条件 */ c=(n-a*1000-b*100)/10; 说明: 1.程序采用循环遍历1000到9999之间的每个数。 2.函数fun中分别求出每一位数字,由得到的数字判断是否满足题目的条件,若满足条件返回1,否则返回0。 9.5 改错程序 【实验9.6】本程序的功能是:以每行5个的格式输出2~2000之间满足下列条件的数: (1)该数是素数; (2)从个位开始依次去掉一位数字后的数仍然是素数。例如,233是素数,23和2仍然是素数,则233满足条件。请改正程序中的错误,并调试。 注意:改错时不允许增加及删除语句,只允许修改或移动语句的位置。 【含有错误的程序代码】 #include int i; for(i=2;i if(n%i=0) return 0; return 1; } 5 /* 判断n是否为素数的函数 */ int main() { int m,n,k,flag; for(n=2;n<2000;n++) if(prime(n)) continue; else { m=n; flag=1; { /* 标志变量置为1 */ /* 依次去掉一位数字 */ /* 若不是素数标志变量置为0 */ while(m<0) m=m/10; if(!prime(m)) { } } if(flag) { k++; if(k%5==0) printf(\ } } return 0; } /* 若是素数则输出 */ printf(\ flag=0; break; /* 若不是素数则判断下一个 */ 9.6 自己练习 1.编写程序,输出1~100之间各位数的乘积大于各位数的和的数。要求判断各位数的乘积大于各位数的和用函数实现。 2.编写程序验证哥德巴赫猜想:任何充分大的偶数都可由两个素数之和来表示。例如:4=2+2,6=3+3,8=3+5,…。验证4~20之间的数。要求判断素数用函数实现。 3.编写程序,输出100以内的正整数中包含数字3,5,7中的一个的数。要求判断一个数中包含数字3,5,7中的一个的数用函数实现。 6
正在阅读:
c语言实验七10-09
《筑梦中国》党支部活动观后感05-07
全国2009年10月高等教育自学考试10-18
《UCI数据集和源代码》12-04
技术规格、参数及其他要求03-28
财经法规考前串讲及练习题 - 图文03-10
事业单位考察材料模板04-25
软弱涣散党组织台账(村)01-11
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 语言
- 实验
- 圆柱与圆锥单元知识结构图及练习Microsoft Word 文档
- 翻转课堂、慕课、微课的基本理论与实践2003 - 图文
- 财务报账制度及流程
- 国际明胶产业分布及现状
- 选修1-1:高二数学文科综合测试题(一)
- Java基础练习题
- 寻找文眼
- 农村信用社统计信息报表数据填报制度
- 生理学选择题大全(有答案)
- 水产养殖生态学(精)
- 优秀教案评选《分数的意义》教案设计
- 华中电监安全
- 2019部编人教版五年级上册语文课文中心思想汇编(课文主旨概括)
- 4ASK载波调制信号的调制解调与性能分析
- 初三科学竞赛题 - 图文
- 无机及分析化学考试题及答案
- 基于单片机的多功能电子万年历设计
- 红外线探测报警电路 - 图文
- 金融服务合作协议书
- 实验一:十六位数据总线实验