




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌套调用和递归调用1. 计算s=1k+2k+3k+nk (n=5,k=4),要求如下:定义f1函数,完成求nk的功能,函数原型:long f1(int n,int k)定义f2函数,完成求和的功能,函数原型: long f2(int n,int k)2.用递归函数编程:有20级楼梯,一次可以迈一级或二级,则爬完楼梯有几种方法?3用递归函数编程求解猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃了一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。直到10天早上想再吃时,只剩下一个桃子了。求第一天一共摘了多少个桃子?3622999999000001362299999900007036229999990000803622999999000090五十八include #include #include #define MAX 100typedef struct char dm5 ; /* 产品代码 */ char mc11 ; /* 产品名称 */ int dj ; /* 单价 */ int sl ; /* 数量 */ long je ; /* 金额 */ PRO ;PRO sellMAX ;void ReadDat() ;void WriteDat() ;void SortDat() int i,j;PRO t;for(i=0;i99;i+)for(j=i+1;j100;j+) if(strcmp(selli.mc,sellj.mc)sellj.je) t=selli; selli=sellj; sellj=t; void main() memset(sell, 0, sizeof(sell) ; ReadDat() ; SortDat() ; WriteDat() ;void ReadDat() FILE *fp ; char str80, ch11 ; int i ; fp = fopen(K:k0135000215IN.DAT, r) ; for(i = 0 ; i 100 ; i+) fgets(str, 80, fp) ; memcpy(selli.dm, str, 4) ; memcpy(selli.mc, str + 4, 10) ; memcpy(ch, str + 14, 4) ; ch4 = 0 ; selli.dj = atoi(ch) ; memcpy(ch, str + 18, 5) ; ch5 = 0 ; selli.sl = atoi(ch) ; selli.je = (long)selli.dj * selli.sl ; fclose(fp) ;void WriteDat() FILE *fp ; int i ; fp = fopen(K:k0135000215OUT.DAT, w) ; for(i = 0 ; i 100 ; i+) fprintf(fp, %s %s %4d %5d %10ldn, selli.dm, selli.mc, selli.dj, selli.sl, selli.je) ; fclose(fp) ;九、void jsValue()int i,s1=0,s2=0;for(i=0;i300;i+)if(isP(ai)=1)cnt+;s1+=ai;else s2+=ai;pjz1=1.0*s1/cnt;pjz2=1.0*s2/(300-cnt);十、六十七void ConvertCharA(void)int i,j;for(i=0;imaxline;i+)for(j=0;xxij!=0;j+)if(xxij=a) xxij+=1;else if(xxij=z)xxij=a;十一、三十六void StrCharJL(void) /* 第i行内容已作为字符串存入xxi为起始地址的存储单元内 */ /* 存储中间处理结果的变量定义,应为无符号字符变量 */ /* 例如:tmp = (xxij 4) ; 将字符变量xxij左移4位二进制位,低位补0,并将移位结果存放到tmp变量中。 */ /* 该提示仅供解题参考,考生也可用其他方法解题 */ unsigned char tmp ; int i,j; for(i=0;imaxline;i+) for(j=0;xxij!=0;j+) tmp=xxij32&tmp=100) xxij=tmp+xxij; 三十六、六十二void StrCharJR(void)int i,j;for(i=0;i4;十二、十三、十四、三十七、三十八、三十九、八十三、八十四、八十五、八十六void SortDat()int i,j;PRO t;for(i=0;i100;i+)for(j=i+1;jsellj.je)t=selli;selli=sellj;sellj=t;else if(selli.je=sellj.je)if(strcmp(selli.dm,sellj.dm)0)t=selli;selli=sellj;sellj=t;printf(%dn,selli.je);十五、十六、四十、四十一、五十六、六十void encryptChar() /* 第i行内容已作为字符串存入xxi为起始地址的存储单元内 */ /* 请使用中间变量来存放替代关系处理后的值val */ /* 例如: val = (xxij * 17) % 256 ; */ /* 该提示仅供解题参考,考生也可用其他方法解题 */ unsigned int val ; int i,j; for(i=0;i32&val%2=0) xxij=val; 十七、四十二void jsValue()int i,j,n=0;float s=0;for(i=0;iN;i+)if(xxi%2)cnt1+;elsecnt2+;if(i%2)n+;s+=xxi;pj=s/n;十八、四十三void Compute(void)int i;double s1=0,s2=0,s3=0,t;for(i=0;i1000;i+)if(xxi%2)odd+;s1+=xxi;else s2+=xxi;ave1=s1/odd;ave2=s2/(1000-odd);for(i=0;i1000;i+)if(xxi%2!=0)t=(xxi-ave1)*(xxi-ave1)/odd;totfc+=t;十九、四十四、六十五void CountRs(void) /* 每一条记录的选票情况已作为字符串存入xxi为起始地址的存储单元内 */ /* 例如:第10条记录的第一个候选人的选中情况的条件是 if(xx90=1) */ /* 该提示仅供解题参考,考生也可用其他方法解题 */ int i,j,s=0; for(i=0;i100;i+) s=0; for(j=0;j5) for(j=0;j10;j+) if(xxij=1) yyj+; 解二:void CountRs(void)int i,j,cnt=0;for(i=0;i100;i+) cnt=0; 放在for里面 for(j=0;j10;j+) if(xxij=1)cnt+;if(cnt=5) for(j=0;j10;j+) if(xxij=1)yyj+; 二十void num(int m, int k, int xx)int cnt=0;while(k!=cnt)if(isP(+m)xxcnt+=m;二十一void jsVal()int i,j,t;for(i=0;i100;i+)if(ai%2&bi%2)ccnt+=ai/10*1000+ai%10+bi/10*100+bi%10*10;for(i=0;icnt;i+)for(j=i+1;jcj)t=ci;ci=cj;cj=t;二十二int findStr(char *str,char *substr)int cnt=0;int i;for(i=0;stri!=0;i+)if(stri=substr0&stri+1=substr1)cnt+;return cnt;二十三int jsSort()int i,j,cnt=0;Data t;for(i=0;i(aai.x1+aai.x3)bbcnt+=aai;for(i=0;icnt;i+)for(j=i+1;jcnt;j+)if(bbi.x2+bbi.x3bbj.x2+bbj.x3)t=bbi;bbi=bbj;bbj=t;二十四、四十九、七十一、九十四void jsSort() /* 第i行文章的内容已作为字符串存入xxi为起始地址的存储单元内 */ /* 提示:先对字符串左边部分的字符数组进行降序排序,左边部分字符数组对应的下标从0到strlen(xxi)/2-1。 */ /* 该提示仅供解题参考,考生也可用其他方法解题 */int i,j,k;int x1,x2;char t;for(i=0;i20;i+)x1=strlen(xxi); 每一行的应放在里面x2=x1/2;for(j=0;jx2;j+)for(k=j+1;kx2;k+)if(xxij=0;j-,k-)t=xxij;xxij=xxik;xxik=t;解法二void jsSort()int i,j,k,c=0;char t;for(i=0;i20;i+) for(j=0;xxij!=0;j+) c+; for(j=0;j(c/2);j+) for(k=j+1;kc/2;k+) if(xxijxxik) t=xxij; xxij=xxik; xxik=t; for(j=0,k=c-c/2;jc/2;j+,k+) t=xxij; xxij=xxik; xxik=t; c=0;二十五、二十六、二十七、二十八、二十九、五十七、七十void jsVal() /* 判断一个四位数连续小于该四位数以后的五个数且该数是偶数 */ /* if(ai % 2=0) & ai ai+1 & ai ai+2 & ai ai+3 & ai ai+4 & ai ai+5) bcnt+ = ai ;*/ /* 该提示仅供解题参考,考生也可用其他方法解题 */int i,j,t;for(i=0;i194;i+)if(ai % 2=0) & ai ai+1 & ai ai+2 & ai ai+3 & ai ai+4 & ai ai+5)bcnt+=ai;for(i=0;icnt;i+)for(j=i+1;jbj)t=bi;bi=bj;bj=t;三十、三十二、三十三、三十四void CalValue(void)double sum=0;int i,gw,sw,bw,qw;for(i=0;xxi!=0;i+) 整形数组结束;gw=xxi%10;sw=xxi/10%10;bw=xxi/100%10;qw=xxi/1000;if(gw+sw+bw+qw)%2=0)sum+=xxi;totCnt+;totPjz=sum/totCnt;totNum=i;三十一double countValue(int n) int i; double sum=0; for(i=7;in;i+) if(i%3=0&i%7=0) sum+=i; return sqrt(sum);三十五void ConvertCharD(void)int i,j;for(i=0;ia&xxij=z)xxij-=1;else if(xxij=a)xxij=z;四十五void countValue()int i;for(i=2;i90;i+)if(isPrime(i)&isPrime(i+4)&isPrime(i+10)cnt+;sum+=i;四十六void CalValue(void)int i;double sum=0;for(i=0;xxi!=0;i+)sum+=xxi;sumint+=(int)(xxi);sumdec+=xxi-(int)(xxi);aver=sum/i;N=i;四十七int jsValue(int t)int f0,f1,f3;f0=0;f1=1;dof3=f1+f0;f0=f1;f1=f3;while(f3t);return f3;四十八void jsSort()int i,j,k,t,t1,t2;for(i=0;i200;i+)for(j=1+i;jt2)t=aai;aai=aaj;aaj=t;else if(t1=t2) if(aaiaaj) t=aai;aai=aaj;aaj=t; for(i=0;i10;i+)bbi=aai;五十、五十一、五十二、五十三、五十四、五十九、六十一、六十三、六十四、六十六、六十八void jsVal()int i,j,t,t1,t2;int qw,bw,sw,gw;for(i=0;i200;i+)qw=ai/1000;bw=ai/100%10;sw=ai/10%10;gw=ai%10;t1=qw*10+gw;t2=bw*10+gw;if(t1%2&t2%2&(t1%5=0|t2%5=0)&qw!=0&bw!=0)bcnt+=ai;for(i=0;icnt;i+) for(j=i+1;jcnt;j+) if(bibj) t=bi;bi=bj;bj=t; 五十五int jsValue(int t)int f0,f1,f2;f0=0;f1=1;while(f2t)f2=f1+f0;f0=f1;f1=f2;return f2;六十九int isPrime(int number) int i, tag = 1 ; if(number = 1) return 0 ; for(i = 2 ; tag & i0;i+); totNum=i; for(i=0;xxi0;i+) gw=xxi%10; sw=xxi/10%10; bw=xxi/100%10; qw=xxi/1000; if(gw+sw+bw+qw)%2=0) totCnt+;sum+=xxi; totPjz=sum/totCnt; 九十三void jsVal()int i,j,k,t;int qw,bw,sw,gw;for(i=0;iMAX;i+) gw=ai%10;sw=ai/10%10;bw=ai/100%10;qw=ai/1000;if(qw+sw)=(bw+gw)&(ai%2=0)bcnt+=ai;for(k=0;kcnt;k+)for(j=1+k;jbj)t=bk; bk=bj;bj=t;九十五int jsSort() int i,j,cnt=0; Data cc;void CountRs(void)int i,j,cnt=0;for(i=0;i100;i+) cnt=0; for(j=0;j10;j+) if(xxij=1)cnt+;if(cnt=5) for(j=0;j10;j+) if(xxij=1)yyj+; for(i=0;i(aai.x1+aai.x2) bbcnt+=aai; for(i=0;icnt;i+)for(j=i+1;j(bbj.x2+bbj.x3)cc=bbi;bbi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年太阳能热利用行业市场潜力与技术创新报告
- 2025年新能源汽车智能座舱用户体验与车载智能空调系统关联性研究报告
- 2025年垃圾焚烧发电新能源项目技术创新趋势研究报告
- 2025年新能源行业企业绿色供应链管理优化报告
- 2025年低空经济知识产权保护与技术创新驱动产业报告
- 第6课 横折钩说课稿-2023-2024学年小学书法练习指导四年级上册湘美版
- 九年级物理上册 第二章 改变世界的热机 第2节内燃机说课稿(新版)教科版
- 歌曲 生命之杯说课稿-2025-2026学年初中音乐粤教版八年级下册-粤教版
- 2.1 多边形说课稿-2025-2026学年初中数学湘教版2012八年级下册-湘教版2012
- 8.1 西北地区的自然特征与农业 说课稿 - 2023-2024学年人教版地理八年级下册
- 牛羊布氏杆菌课件
- 机动车排放定期检验标准考核试题及答案
- 导游业务教学课件
- 共享实验室合作协议书
- DBJ04-T 290-2012 袖阀管注浆加固地基技术规程
- 2025-2026学年华东师大版(2024)小学体育与健康三年级全一册《健康行为与生活方式》教学设计
- 客服人员安全操作培训课件
- 沪科版七年级上册数学第一次月考全真模拟试卷(含答案)
- 防爆电气装配工作业指导书
- 新修订去极端化条例课件
- 公务员考试备考行测《其他常识》练习题含答案解析
评论
0/150
提交评论