




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,1,第五章实训,函数三要素:函数声明、函数调用、函数定义有参函数、无参函数有返回值的函数,无返回值的函数参数传递:值传递(普通变量和数组元素)、地址传递(数组名)变量的作用域(全局变量、局部变量)变量的生存期(auto/static/register/exern),.,2,1、寻找四位数的超级素数。超级素数的定义为:若一个素数从低位到高位依次去掉一位后的数仍为素数。例如,数2333是素数,且233,23,2均为素数,所以2333是一个超级素数。,解:此题的思路为:(1)从1001到9999,循环判断每个数是否为超级素数(sup_prime)。(2)关键算法一(sup_prime):先判断n是否为素数(prime),如果是的话,则去掉低位后接着判断,如果是,接着去掉低位后判断,否则结束。直到n=0为止。(3)关键算法二(prime):如何判断一个数是否为素数,.,3,intprime(intn)inti;if(n=1)return0;for(i=2;i0)if(prime(n)n=n/10;elsereturn0;return1;,.,5,#include#includeintprime(int);intsup_prime(int);voidmain()inti;for(i=1001;i10000;i+=2)if(sup_prime(i)printf(%5d,i);printf(n);,.,6,编程作业一:定义一个函数,其功能是计算n个学生的成绩中,高于评价成绩的人数,并作为函数值。用主函数来调用它,统计50个学生成绩中,高于平均成绩有多少人?,解:此题的思路为:(1)用一维数组存放50个学生的成绩,输入成绩(可以定义为函数input),用另一个函数计算平均成绩(average),再用另一个函数来判断高于平均成绩的人数(highpeople)(2)input函数:地址传递(3)average函数:地址传递与值传递相结合,返回高于平均成绩的人数,.,7,#include#defineN5inthighpeople(float,float);floataverage(float);voidinput(float);voidmain()floatscore5,avg;intn;input(score);avg=average(score);n=highpeople(avg,score);printf(高于平均成绩%.2f的人数为%dn,avg,n);,.,8,voidinput(floatscore)inti;for(i=0;iN;i+)printf(a%d=,i);scanf(%f,.,9,floataverage(floatscore)inti;floatsum=0;for(i=0;iN;i+)sum+=scorei;returnsum/N;,.,10,inthighpeople(floatavg,floatscore)intn=0,i;for(i=0;iavg)n+;returnn;,.,11,编程作业二:编写一个对n个数据从大到小排序的C函数,再编写一个计算最后得分的C函数,计算方法是,取出一个最高分,取出一个最低分,其余的平均分为参赛选手的最后得分。并在主函数中调用他们对有n个评委评分,m个选手参赛的最后得分,从大到小排序输出。,解:此题的思路为:(1)用一维数组存放m个评委对某个选手的评分,然后对这个一维数组进行排序(sort函数),接着计算成绩(computer函数)并存入另一个一维数组的元素中。上面的过程重复n次。最后对存放成绩的长度为n的一维数组进行排序(sort函数),然后输出即可。(2)sort函数:需要对存放成绩的一维数组的前m位进行排序(3)computer函数:需要计算一维数组的m-2个元素的和的平均数,其函数原型为:voidsort(float,int),其函数原型为:floatcomputer(float,int),.,12,voidsort(floata,intm)inti,j,min;floatt;for(i=0;im-1;i+)min=i;for(j=i+1;jm;j+)if(ajamin)min=j;if(min!=i)t=ai;ai=amin;amin=t;,.,13,floatcomputer(floata,intm)inti;floatsum=0;for(i=1;im-1;i+)sum+=ai;returnsum/(m-2);,.,14,#include#defineN10voidsort(float,int);floatcomputer(float,int);voidmain()floataN,bN;intm,n,i,j;doprintf(inputn:);/n个选手scanf(%d,.,15,for(i=0;in;i+)printf(请输入第%d个选手的成绩:n,i);for(j=0;j=0;i-)printf(%.2f,bi);printf(n);,.,17,4、以下程序的功能是应用下面的近似公式计算e的n次方。函数f1用来计算每项分子的值,函数f2用来计算每项分母的值。请编写f1和f2函数。,计算前20项,解:此题的思路为:(1)在主函数中确定x的值,然后循环19次计算sum(初值=1),sum的计算公式即sum+=f1/f2(2)f1函数:需要两个参数,一个x,一个幂指数,都是值传递,且要返回值(3)f2函数:需要一个参数n,可以使用递归调用,.,18,floatf1(intx,intn)inti;floatsum=1;for(i=1;i=n;i+)sum=sum*x;returnsum;,returnpow(x,n);,.,19,floatf2(intn)if(n=1)return1;elsereturnf2(n-1)*n;,.,20,#include#includefloatf1(int,int);floatf2(int);voidmain()floatsum=1;intx,n;printf(inputx:);scanf(%d,.,21,5、设计一个函数,输出整数n的所有素数因子。,解:此题的思路为:(1)在主函数中输入n的值,然后调用自定义函数(factor)来确定其素数因子。(2)factor函数:从2到n的所有数中,找到所有满足条件n%x=0的x,且x是素数(prime函数)(3)prime函数:判断一个整数是否为素数,.,22,intprime(intn)inti=2,flag=1;for(;i=sqrt(n);i+)if(n%i=0)flag=0;break;returnflag;,.,23,voidfactor(intn)inti=2;while(i=n)if(n%i=0,.,24,#include#includevoidfactor(int);intprime(int);voidmain()intn;printf(inputn:);scanf(%d,.,25,6、若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B构成一对亲密数。求500以内的所有亲密数。,解:此题的思路为:(1)编制一个函数facsum(int),返回给定正整数m的所有因子之和(2)编制一个主函数,调用facsum函数,寻找并输出500以内的所有亲密数对,且去掉所有重复的亲密数对。,.,26,intfacsum(intm)intsum=1,f=2;while(f=m/2)if(m%f=0)sum+=f;f+;returnsum;,.,27,#includeintfacsum(int);voidmain()intm=3,n,k;while(m=500)n=facsum(m);k=facsum(n);if(m=k,.,28,7、求两个数的最大公约数,intgcd(intm,intn)if(m%n=0)returnn;elsereturngcd(n,m%n);,.,29,8、编写一个程序,完成写了各项操作:(1)输入一个包含n个整数的数列;(2)输出已经输入的整数数列;(3)将整数数列按照非递减的顺序重新排列(4)计算n个整数中的最大值,并输出;(5)计算n个整数中的最小数,并输出;(6)计算n个整数中的平均值,并输出,input,output,sort,an-1,a0,average,.,30,#include#defineN100voidinput(int,int);voidoutput(int,int);voidsort(int,int);floataverage(int,int);voidmain()intn,aN;printf(inputn:);scanf(%d,.,31,voidinput(inta,intn)inti;for(i=0;in;i+)printf(a%d=,i);scanf(%d,.,32,voidoutput(inta,intn)inti;printf(arraya:n);for(i=0;in;i+)printf(%5d,ai);printf(n);,.,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 花卉新能源温室应用创新创业项目商业计划书
- 部编本六年级语文课堂教学单元计划
- 呼吸肌训练智能系统-洞察及研究
- TME与肿瘤干性维持-洞察及研究
- 塑化剂邻苯二甲酸二环己酯及其代谢产物对糖脂代谢干扰效应的研究
- 运动数据隐私保护-洞察及研究
- 同轴反转双转盘式摩擦纳米发电机低速风能收集性能研究
- 旋转功能梯度空心圆柱-圆球的多场耦合问题
- LncRNA-MEG3对G. parasuis激活NLRP3炎性小体通路的调控作用研究
- 湖北地区献血人群ABO亚型分布与ABO亚型抗原减弱的分子机制研究
- 旋挖钻孔灌注桩施工培训
- 自动化立体库培训
- 2025年中国彩色超声多普勒诊断系统市场调查研究报告
- 焦化厂安全管理制度
- 2025年全国统一高考英语试卷(全国一卷)含答案
- 2025年内蒙古高考物理试卷(含答案)
- 抗震支架试题及答案大全
- 零件清洁度的试题及答案
- 兆丰教育保过单招协议书
- 营养与食品卫生学:蛋白质概述
- 2024年四川省理塘县事业单位公开招聘辅警考试题带答案分析
评论
0/150
提交评论