




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、付子文付子文C语言习题集 #scanf(%d%d,&m,&n);fun(m,n,zz);for(m=0;mn;m+)printf(%6d,zzm);printf(n);return0;【设计型】9.5删除指定字符请编写函数fun,其功能是:从字符串中删除指定的字符。同一字母的大、小写按照不同的字符处理。#includevoidfun(charstr,charch)inti,j;for(i=0;stri!=0;i+)if(stri=ch)for(j=i;strj!=0;j+)strj=strj+1;intmain()charstr80;charch;gets(str);scanf(%c,&ch)
2、;fun(str,ch);printf(%sn,str);return0;【设计型】9.6杀鸡用牛刀学习递归喽背景:哈哈!我们终于学了递归了,现在大家一定感到非常有意思吧,那个典型的“汉诺塔”问题,一个非常短的程序居然可以完成如此复杂的工作,真是神奇啊!来吧,让我们也动手编写一个递归程序,当然,我们要编写的不可能太复杂。功能:求整数n到m区间的累加和,其中n二m。输入:区间的起始点n区间的终止点m输出:累加和要求:使用递归算法完成。#includeintfun(intn,intm)intsum=0;if(n=m)sum=sum+m;elsesum=n+fun(n+1,m);returnsum;
3、intmain()intm,n,s;scanf(%d%d,&n,&m);s=fun(n,m);printf(%dn,s);return0;递归【设计型】9.7求最大公约数递归请使用递归算法计算正整数n和m的最大公约数GCD(n,m)。mm=K_an%m=0GCD(ji7rri)=*GCDrri,n)nmGCD(m,n%m)其它输入:n和m输出:n和m的最大公约数#includevoidfun(intn,intm)intr,t;if(m=n&n%m=0)t二m;elser=n%m;while(r!=0)n=m;m=r;r=n%m;t二m;if(nm)fun(m,n);printf(%dn,t);
4、intmain()intn,m;scanf(%d%d,&n,&m);fun(n,m);return0;【设计型】9.8求数列的第N项已知整数数列第一项和第二项是1,该数列从第三项开始,如果该项是奇数项则它是前两项之和,如果该项是偶数项,则它是前两项之差,即:f(n)=1当n=1或2时,f(n)=f(n-1)-f(n-2)当n是偶数时,f(n)=f(n-1)+f(n-2)当n是奇数时,编写一个递归函数,求数列的第N项。#includeintfun(intn)intN;if(n=1|n=2)N=1;elseif(n%2=0)N=fun(n-1)-fun(n-2);elseif(n%2!=0)N=f
5、un(n-1)+fun(n-2);returnN;intmain()intn;scanf(%d,&n);fun(n);printf(%dn,fun(n);return0;【设计型】9.9偶数分解编写程序,输入若干个大于2的正整数,如果是偶数,则将其分解为两个素数并输出;如果输入的奇数,则输出“xxxisoddnumber!”;输入为0时程序结束。只有1和它本身这两个因数的自然数叫做素数,0和1既不是素数也不是和数。实现分解的过程用函数实现。输入:整数序列,0输出:偶数1=素数A+素数B(当输入是偶数时)奇数1isoddnumber!(当输入是奇数时)#include#defineN100voi
6、dfun(intxc)inta,b,j,k,m;inttag1=0,tag2=0;for(j=0;j+)if(xcj=0)break;if(xcj%2=0)a=2;b=xcj-2;for(m=1;m+)for(k=2;ka;k+)if(a%k=0)tag1=1;break;elsetag1=0;for(k=2;kb;k+)if(b%k=0)tag2=1;break;elsetag2=0;if(tag1+tag2=0)printf(%d=%d+%dn,xcj,a,b);break;elsea+;b-;elseprintf(%disoddnumber!n,xcj);intmain()intaN,i
7、;for(i=0;i+)scanf(%d,&ai);if(ai=0)break;fun(a);return0;【设计型】9.10浮点数四舍五入请编一卒函数氏口函数的功能是使实型数保留2鱼小数,并对第三位进行四舍五A(规定实型数为正数$例如:实型数为123.4.567,则劉数返回1234.570000;实型数为1疵25咼则数返回1234.560000.,#include#includedoublefun(doublea)doubletemp;intm1,m2;temp=a;m1=(int)(a+0.005)*100);m2=(int)(temp*100);if(m2m1)a=(int)(a*10
8、0)+1.0)/100;elsea=(int)(a*100)*1.0)/100;returna;intmain()doublea;scanf(%lf,&a);printf(%lfn,fun(a);return0;【设计型】9.11长整型截短编写一个函数fun,其功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新的数,并作为函数值返回。#includeintfun(inta)intyu,i,j=1,sum=0;for(i=0;a!=0;i+)yu=a%10;if(yu%2=0)sum=yu*j+sum;j=j*10;a=a/10;returnsum;intmain()
9、intn;scanf(%ld,&n);printf(Theresultis:%ldn,fun(n);return0;【设计型】9.12公式求解请编写函数扛叫其功能是;计算并输出下列多顶式的值I#includedoublefun(intn)inti,j,jc;doublesum=1;for(i=1;i=n;i+)jc=1;for(j=1;j=i;j+)jc=jc*j;sum二sum+l.O/jc;returnsum;intmain()intn;doubles;scanf(%d,&n);s=fun(n);printf(s=%fn,s);return0;【设计型】7.1数的合并请编写函数fun,其功
10、能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a的十位和个位依次存放在c数的十位和千位上,b的十位和个位依次存放在c数的个位和百位上。例如:当a=45,b=12,调用该函数后,c=5241。部分源程序如下,只需要完成fun函数的编写即可。#include#includevoidfun(inta,intb,int*pc)*pc=a/10*10+a%10*1000+b/10+b%10*100;intmain()inta,b,c;scanf(%d%d,&a,&b);fun(a,b,&c);printf(%dn,c);return0;【设计型】7.2数组中奇偶数请编一个函数
11、fun,函数的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参n给了数组中数据的个数:利用指针odd返回奇数之和,利用指针even返回偶数之和。例如:数组中的值依次为:1,8,2,3,11,6;则利用指针odd返回奇数之和15;利用指针even返回偶数之和16。#include#defineN20voidfun(inta,intn,int*podd,int*peven)inti;*podd=0;*peven=0;for(i=0;in;i+)if(ai%2=0)*peven=*peven+ai;else*podd=*podd+ai;intmain()intaN,i,n,odd,even;s
12、canf(%d,&n);for(i=0;in;i+)scanf(%d,&ai);fun(a,n,&odd,&even);printf(Thesumofoddnumbers:%dn,odd);printf(Thesumofevennumbers:%dn,even);return0;【设计型】7.3浮点数四舍五入请编一个函数voidfun(doublea,double*h),函数的功能是对变量h中的值保留2位小数,并对第三位进行四舍五入(规定h中的值为正数)。例如:h值为8.32433,则函数返回8.32;h值为8.32533,则函数返回8.33。#includevoidfun(doublea,d
13、ouble*ph)doubletemp;intt;temp=a*1000;t=(int)(temp)%10;if(t=5)*ph=(int)(a*100+1)*1.0/100;else*ph=(int)(a*100)*1.0/100;intmain()doublea,h;scanf(%lf,&a);fun(a,&h);printf(Theresult:%lfn,h);return0;【设计型】7.4字符移动请编一个函数voidfun(char*s),函数的功能是把字符串中所有的字符前移一个位置,串中的第一个字符移到最后。例如:原有的字符串为:Mn.123xyZ,则调用该函数后,串中的内容为:n
14、.123xyZM。部分程序源码如下:#include#defineN81voidfun(char*pa)inti;chartemp;temp=*pa;for(i=0;*(pa+1)!=0;i+)*pa=*(pa+1);pa+;*pa=temp;intmain()charaN;gets(a);fun(a);printf(%sn,a);return0;【设计型】7.5生成新数给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。例如,输入一个数:27638496,新的数:为739。#include#i
15、ncludevoidfun(int*pn)inta,sum=0,i=0;doa=*pn%10;*pn=*pn/10;if(a%2!=0)sum=sum+a*pow(10,i);i+;while(*pn!=0);*pn=sum;intmain()intn=-1;while(n99999999|n0)scanf(%d,&n);fun(&n);printf(%dn,n);return0;【设计型】7.6字符串转换成整数请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数。例如,若输入字符串T234,则函数把它转换为整数值-1234。函数fun中给出的语句仅供参考。#include#inc
16、ludeintfun(char*ps)intsum=0,x=0,len,i;len=strlen(ps);if(*ps=-)x=1;for(i=x;ilen;i+)sum=sum*10+(*(ps+i)-0);if(x=1)sum=-sum;returnsum;intmain()/*主函数*/chars10;intn;gets(s);n=fun(s);printf(%dn,n);return0;【设计型】7.7二维数组按列优先存放请编写函数fun,函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。例如,二维数组中的数据为:WWWWSSSSHHHH则字符串中的内容应
17、是:WSHWSHWSHWSH。部分源程序如下:#include#defineM3#defineN4voidfun(charsN,char*qa)inti,j,num=0;for(i=0;iN;i+)for(j=0;jM;j+)*(qa+num)=sji;num+;intmain()chara100,wMN=W,W,W,W,S,S,S,S,H,H,H,H;fun(w,a);puts(a);return0;【设计型】7.8删除字符串中指定的星号假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了尾部的*号之外,将字符串中其它*号全部删除。在编写函数时,不得使用C语言提供的字符串函
18、数。例如,字符串中的内容为:*A*BC*DEF*G*,删除后,字符串中的内容应当是:ABCDEFG*。#includevoidfun(chars,char*p)inti,j;for(i=p-s;i=0;i-)if(si=*)for(j=i;sj;j+)sj=sj+1;intmain()chars81,*t;gets(s);t=s;while(*t)t+;t-;while(*t=*)t-;fun(s,t);puts(s);return0;【设计型】7.9统计数字字符请编写函数fun,它的功能是:统计形参s所指字符串中数字字符出现的次数,并存放在形参t#includevoidfun(char*ps,int*t)inti,num=0;for(i=0;*(ps+i)!=0;i+)if(*(ps+i)=0&*(ps+i)=9)num+;*t=num;intmain()chars80;intt;gets(s);fun(s,&t);printf(%dn,t);return0;【设计型】7.10将两个串按要求形成一个新串给定程序的函数fun的功能是:逐个比较p、q所指两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c所指
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 财务管理中逻辑分析的挑战与机遇试题及答案
- 财务成本管理中标准化流程的必要性试题及答案
- Delphi编程风格与规范试题及答案
- 2025年MySQL审核与监控配置试题及答案
- Msoffice知识体系建设及试题及答案
- 风险管理在供应链中的重要性试题及答案
- 选择WPS的理由的计算机一级试题及答案
- MySQL数据库的性能调优试题及答案
- 计算机二级Delphi应用实例分析试题及答案
- 经济法复习中的特别注意事项试题及答案
- 中国硬笔书法等级考试试卷(三级)
- 2024年内蒙古呼和浩特中考化学真题卷及答案解析
- 2024年09月全国2024厦门国际银行青年银行家(分行市场类)校园招考笔试历年参考题库附带答案详解
- 2025年江苏省启东市文化广电和旅游局招聘编外1人历年高频重点提升(共500题)附带答案详解
- DB32∕T 3219-2017高速公路扩建工程技术标准
- 保护环境的课件英文版
- 《普通生物学》课程期末考试复习题库及答案
- dlt-5161-2018电气装置安装工程质量检验及评定规程
- 幼儿园讲解海军知识
- 用户生命周期管理策略-洞察分析
- 第三届中国长三角地区融资担保职业技能竞赛选拔赛试题库500题(含答案)
评论
0/150
提交评论