C语言经典编程实例100题,答案.docx

上传人:h**** 文档编号:11732313 上传时间:2022-04-21 格式:DOCX 页数:65 大小:54.12KB
返回 下载 相关 举报
C语言经典编程实例100题,答案.docx_第1页
第1页 / 共65页
C语言经典编程实例100题,答案.docx_第2页
第2页 / 共65页
点击查看更多>>
资源描述

《C语言经典编程实例100题,答案.docx》由会员分享,可在线阅读,更多相关《C语言经典编程实例100题,答案.docx(65页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C语言经典编程实例100题,答案C 语言程序实例 100 个(一)【程序 1】多是就都?数位三得字数复重无且同相不互个少多成组能,字数个 4、2、1 有:目题少? 1、程序分析:可填在百位、十位、个位得数字都就是 1、2、3、。组成全部得排列后再去掉不满意条件得排列。2、程序源代码:)(nim环循重三为下以*)+;<i;i(rf;)n"(fnip;k,j, nir(j=;j<5;j+)fo (k=1;5;k+) i (i!=k&&!=&&!k)*确保 i、j、k 三位互不相同*/ pr

2、ntf("%d,%d,%dn,i,j,k);=【 】序程题目:企业发放得奖金依据利润提成。利润(I)低于或等于 10 万元时,奖金可提0%;利润高于0 万元,低于 20 万元时,低于 1万元得部分按 1%提成,高于 10 万元得部分,可可提成 7、5%;2万到 4万之间时,高于0 万元得部分,可提成 5%;40 万到0 万之间时高于 40 万元得部分,可提成 3%;60万到 100 万之间时,高于 60 万元得部分,可提成 1、5%,高于 100 万元时,超过 100 万元得部分按 1%提成,从键盘输入当月利润,求应发放奖金总数? 1、程序分析:请利用数轴来分界,定位。留意定

3、义时需把奖金定义成长整型。、2:码代源序程 )(niam ;unob,01snob,sunob,sunob,2uno,1nb tni; i gnlscanf(%l,&i); bons1=100000、1;bonus2=bonus+10000*0、75;unob;5、00022suob=4suob6bonus4200000*0、3; )00001=<i(fi ;1、*0000+6suno0sobonus=0、1;)00002=i(i le nus=bus1+(i-1000)0、75; )00004=<(fi esbonus=bos2+(i20000)*

4、0、;)0006=i(i esle bons=bous+(i-40000)*0、3; ele if(<1000000) bos=bonus6+(-600)0、015; lbonus=bonus1+(i1000000)*0、0; ;)suno,%=suob(fnirp=【程序】,数方平全完个一是就又6上加再,数方平全完个一是就后 00上加它,数整个一:目题请问该数就是多少? 1、程序分析:在 10 万以内推断,先将该数加上0后再开方,再将该数加上 268 后再开方,假如开方后得结果满意如下条件,即就是结果。请瞧详细分析:、2 :码代源序程#i nclu e "m

5、th 、 h")(niam )+i;0000 1<i;1=i( rof;z,y,x, n gnol rqs x(i+100); /*x 为加上00 后开方后得结果*/ =sqr(i268); /*为再加上 168 后开方后得结果*/if(x*x=+100&yy=i28)/*假如一个数得平方根得平方等于该数,这说明此数就是完全平方数/ prinf("nld",i); = 【程序 4】?天几第得年一这是就天一这断判,日某月某年某入输:目题1、程序分析:以 3 月日为例,应当先把前两个月得加起来,然后再加上 5 天即

6、本年得第几天,特别状况,闰年且输入月份大于 3 时需考虑多加一天。、)(n:码代源序程,hnm,yad nyear,sum,leap; ;)"nyad,htno,rae tuni esaln"(nircanf("%d,%d,%d",&year,&moth,&day); swtc(h)*先计算某月以前月份得总天数*/ ;kerb;0=mus:1 ea cas 2:sum=3;be;kr;mus:4 esac ;kaer;5=mus:3 c cas 5:sm=120;break;

7、cas 6:sum151;brek; 2=mus:9 esac ;krb;212=mus:8 eac ;kerb;81=s: eac;bre;case :um273;rek;eb;43=mus:1 sac ;kaerb;40=m:11 ea eflt:rintf(daa rrr);break; s=sum+day;/*再加上某天得天数*/f(ya%00=0|(year%4=0&&year10!=0)/*推断就是不就是闰年* ep=1;esl nom&&1=pal(i;0=l>2)/*假如就是闰年且月份大于,总天数应当

8、加一天*/ sum+; rntf(It is he dt day、,sum);= 【程序】、。出输大到小由数个三这把请,z,y,数整个三入输:目题1小最把法办想们我:析分序程得数放到上,先将 x 与 y 进行比较,假如 x>则将 x 与得值进行交换,然后再用 x 与 z 进行比较,假如 xz 则将与 z 得值进行交换,这样能使最小。、2)(nim:码代源序程,y,x tni,t; cf("%d",&x,,&z);;z=t)zx(fi /值得,x 换交/ ;t=y;x;x=t)>x( fiz=x;x=

9、t;/交换 x,得值*/ i(y>z) :gib ot llams"(ftnirp /值得 y,换交/;tz;zy;yt % %d",x,y,z); =【程序 6】题目:用*号输出字母 C 得图案。、1、。出输行分再,C 母字出写上纸在号用先可:析分序程2序程源代码:# )(niam"h、idts" edlcn i rintf("el C-old!"); prinf(" *); pritf( ); rintf(" * n&quot

10、;); ;)"n* "(ftrp=【程序 7】!ufiaeB re,瞧一瞧,行运中境环 c 在请,案图殊特出输:目题、程序分析:字符共有 25个。不同字符,图形不一样。、 :码代源序程i nclde "stdio、h" )(namcr =176,b=2; ;)b,a,a,"nc%cc%c%"(tnirprintf("%c%c%c%n",a,,a,b,a);irp;)a,a,b,a,a,"c%c%cc%"(nirp(%

11、c%c%c%c,a,b,a,b,a); printf("%c%cc%c%cn",a,a,a,b); =【 】8 序程题目:输出*9 口诀。、1 。列制控 j,行制控 i,列行 9 共,虑考列与行分:析分序程2、程序源代码:i ncd "stdio、h" )(niamint i,j,resu;)+;01i;=i( rof ;)n"(tnp )+j;1<j;1=j(rf sult=ij; /*位 3 占,齐对左示表 d3*/;)tluser,j,"d3-=d*d%&qu

12、ot;(frp rintf("n);/*每一行后换行* =【程序 9】。盘棋棋象际国出输求要:目题、程序分析:用限制行,j 来限制列,依据+j 得与得改变来限制输出黑方格,还就是白方格。、2程序源代码:# )(iamh、its" eduln iint i,j;for(;i<8;i+)+j;8<j;(ro if(j)%2=0) ;)12,12,"c%"(ftni ese ;)" "(ftnirp ;)"n"(ftnp =【程序

13、 10】、 。脸笑个两印打方上梯楼在时同,梯楼印打:目题j,列制控来 j,行制控 i 用:析分序程依据 i 得改变来限制输出黑方格得个数。、程序源代码:# )(nam、odts edulcn i int i,j; printf("11n");*输出两个笑脸*/ for(=1;i<11;i+) or(j=1;i;j+)pritf("c%c",21,219); 【;)n"(fnirp】1 序程题目:古典问题:有一对兔子,从诞生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对

14、兔子,假如兔子都不死,问每个月得兔子总数为多少?、1,1,1 列数为律规得子兔 :析分序程,3,5,13,1、2 :码代源序程ain()log f,2; int i; )+i;02<i;1=(ro;1=2f=1f printf("12ld %1ld",f,f);if(i2=) printf("");/*限制输出,每行四个*/f=f1f; *前两个月加起来赋值给第三个月*/f2=f1+f2; *前两个月加起来赋值给第三个月*/ =【程序 1】题目:推断 101-200 之间有多少个素数,并输出全部素数。、1分数

15、个一用:法方得数素断判:析分序程别去除 2 到qt(这个数),假如能被整除,则表明此数不就是素数,反之就是素数。 2、程序源代码:# )(a"h、htam" eduln i int ,i,h0,leap=;print(n");)+m;002=<m;101=m(rf k=qrt(m+1);or(i=;i<=;+))=i%m(filp=0;bra;;+h;)m,d-%"(fnip )pal(fiif(h10=) ;)"n(ftnip;=paelrinf("nThe

16、 total is d,h); =【程序 13】于等与方立字数位各其,数位三个一指是就数花仙水谓所,数花仙水得有所出印打:目题该数本身。例如:1就是一个水仙花数,因为 153=1 得三次方+5 得三次方3 得三次方。1、程序分析:利用 fr 循环限制 10999 个数,每个数分解出个位,十位,百位。2、程序源代码:)(iam ;n,k,j, niritf("wter floweuer is:");)+;01n;001=n(r fi /*位个出解分*/;01%n=k /*位十出解分*;01%0/=j /*位百出解分*/;001/n=i(i*100j*10+k=

17、i*i*i+j*j+*kk) ;),"5"(fnirp pintf("n"); =【 。5*3*3*2=09 出印打,9 入输:如例。数因质解分数整正个一将:目题】4序程程序分析:对 n 进行分解质因数,应先找到一个最小得质数 k,然后按下述步骤完成: )(质个这果如数恰等于 n,则说明分解质因数得过程已经结束,打印出即可。()假如 n<>k,但 n 能被 k 整除,则应打印出 k 得值,并用除以 k 得商,作为新得正整数您 n,重复执行第一步。(3)假如 n 不能被整除,则用+1 作为 k 得

18、值,重复执行第一步。2、程序源代码: * zhen i divded yinshu*/ ain() ;i,n nprinf("nplease in a numbr:n); ;)n,"=d%"(ftnirp;)n,d%(fnacfor(i=2;=n;i+) ile(!=) )0=i%n(f pintf("%d",i); ;i/=n ele;karprintf("%",n);=【 】51 序程题目:利用条件运算符得嵌套来完成此题:学习成果>=分得同学用 A 表

19、示,60-8分之间得用 B 表示,60 分以下得用 C 表示。、1、。子例本基得符算运件条是就这 b:?)b>a(:析分序程代源序程码: )(niain scoe;;)ocs&,""(ncs ;)neocs a tuni eaelp"(ftnirp ;edag rah grae=sre>90?A:(sce>=60?B:C); =;)darg,erocs,"c% t sgnol d%"(ftnirp= 【程序 16】。数倍公小最与数约公大最其求,n

20、与数整正个两入输:目题1、程序分析:利用辗除法。、2 )(iam:码代源序程;pet,mn,mn,b,a t rin(ease inpt two numbs:n"); ;)2mu,u,d%,d"(fcsif(num1 tmp=num; um=num2;etmun /*止为 0 为 b 到直,法除辗用利*/)0=!b(eih;2m=b;1mu=;b%=meta=; b=tmp; rtf("gongueu:",a); ;)a/mu*1n,"d:uhsibnog"(ftr = 【程序 1】题目

21、:输入一行字符,分别统计出其中英文字母、空格、数字与其它字符得个数。、程序分析:利用hile 语句,条件为输入得字符不为n、2、oidts educn i#:码代源序程" ;0ehto,0=igi,0=caps,0srettl tni ;c rac)(nam printf("plese int om haractsn");wi(c=getar()!n)f(c>a&&c<z>=A&&c<=Z) ;+sretl else i(

22、= ) pc+;lse f(c>=09)igit;el ;+rhopri("all n al:c=%d sace=%d diit=%d oter%n,ters, sce,dgit,other);= 【程序8】题目:求sa+a+aa+aa+aa、a得值,其中a就是一个数字。例如2+22+222222222(此时共有 5 个数相加),几个数相加有键盘限制。、程序分析:关键就是计算出每一项得值。、2 )(niam:码代源序程;tnoc,n, n lon in n=,n=;;)"n dna a tupn esa(ftn sanf("%

23、d,%",&a,&n);;)n,a,"d=n,d%=a(tnirp whie(cout<=n) tnt; ;nt+ns=ns +;01*=a+ ;tnu pint("a+aa+、=%ldn",n); =【程序 1】题目:一个数假如恰好等于它得因子之与,这个数就称为完数。例如 6=+3、编程 找出 1000以内得全部完数。、 程序分析:请参照程序<-上页程序 14、 、2 )(nia:码代源序程 ;s,n,j,i tni;01k tni cittsfor(=2;&a

24、mp;lt;1000;j+);j=s ;1=n ;1=(ro )0=)i%j( fi;+n;i-s nk=i; )0=s(fi ;)i,","(fnri;=i(rof ;)j,sa a i d"(ftnirp print(%dn,kn); 【 =程序 20】01 第在它求,下落再;半一得度高原回跳反后地落次每,下落由自度高米 01 从球一:目题次落地时, 【与方立字数位各其,数位三个一指是就数花仙水谓所,数花仙水得有所出印打:目题】31 序程等于该数本身。例如:153 就是一个水仙花数,因为 153得三次方+5 得三次方+得三次方。1、程序

25、分析:利用r 循环限制 10999 个数,每个数分解出个位,十位,百位。2、程序源代码: )(niamint i,j,k,n; printf("ate lenuber s:");for(=100;<10;n+) i=n/100;/*分解出百位*/ =n/10%10;*分解出十位*/ =%1;/*分解出个位*/ f(*100+*10=i*i*i+jjj+k*) ;)n,d5-%"(fnp tnirp("n"); =【 】41 序程题目:将一个正整数分解质因数。例如:输入 90,打印出 9=33

26、*5。程序分析:对 n 进行分解质因数,应先找到一个最小得质数 k,然后按下述步骤完成:(1)假如这个质数恰等于 n,则说明分解质因数得过程已经结束,打印出即可。)2(被能 n 但,><n 果如整除,则应打印出 k 得值,并用 n 除以 k 得商,作为新得正整数您,重复执行第一步。(3)假如 n 不能被 k 整除,则用 k+1 作为得值,重复执行第一步。2、程序源代码: )(nim *hsny ediid si ti gnh ;),"%"(ftnip;)n&,"d%"(fnacs

27、;)"n:rebmun a pni seln(tnirp;i, tifr(i=2;i<n;i+) wi(!=i))0=%n(fi;)i,"d%"(fnipn=n/i; sebea; ;)n,d"(trp=【,示表用学同得分 09=>绩成习学:题此成完来套嵌得符算运件条用利:目题】1 序程0-9 分之间得用 B 表示,6分以下得用 C 表示。、1基得符算运件条是就这 b:a?)ba(:析分序程本例子。、2 )(niam:码代源序程 a u esael"(ftnirp ;edarg

28、 ah ;eros tcre"); nrp ;)C:?6>erocs(:?09=erosedarg ;)eocs&,"%(nacsf(%d bens to ",scr,gae); =【程序 16】、。数倍公小最与数约公大最其求,n 与 m 数整正个两入输:目题1 。法除辗用利:析分序程2、程序源代码: main() it a,b,nm,num2,tem;;)":srebmun owt tuni esaelp(ftnp scan("%d,%d,nu1,&m2);

29、;mnpet 1mu(fi ;un=u m2=tmp;;2nb;munawhile(b!=)/*利用辗除法,直到 b 为为止*/ ;b%a=eta=b; b=temp; ;)a,"n:uhseuygnog"(tirprintf(gongbshu:%dn,nm1*num2/a);= 【程序 17】。数个得符字它其与字数、格空、母字文英中其出计统别分,符字行一入输:目题、程序分析:利用ile 语句,条件为输入得字符不为、2dt ucn i:码代源序程o、h" man() ; rh it letters=0,space=,digit=0,othe

30、s=0;printf("lese input some charactern");)n=!))(rahcte=c((ihw f(c>=&&c<z|c>=A&c<Z) letters+;) =c(fi esl;+ea ese if(c&&c<=);+igi ele ohr+; prnf(all in ll:char=%d sced di=% othe=%d,lettes, spce,dit,othrs); = 【

31、程序 18】+222+2 如例。字数个一是就中其,值得、aa+aaa+a+aa+=s 求:目题2222222(此时共有 5 个数相加),几个数相加有键盘限制。、1每出算计是就键关:析分序程一项得值。2、程序源代码: )(nimit a,n,count=1;lng nt =,tn=0;pif("pleas inut a and nn);scnf(%,%d,&a,&n);;),,"d%=n,d%=a"(ftnip while(cont<=) tntn+a; snsn+tn;a=a*1;+ ;tnuo

32、c pintf("a+a+、=%n",sn); =【 序程9】题目:一个数假如恰好等于它得因子之与,这个数就称为完数。例如 6=1+23、编程 找出00以内得全部完数。、1、41 序程页上-序程照参请:析分序程2、程序源代码:)(niam ;,n,j,i tni; tni ciasfor(;10;j+)n=-1;s=j; i;1=i(rof )0=)ij(i n+; s=-i; ;i if(s=0);)j,"uhsna a si d(fnir fr(i=0;iprintf(%d,",i);)nk,"nd%

33、"(tnirp = 【 程序0】次 01 第在它求,下落再;半一得度高原回跳反后地落次每,下落由自度高米01 从球一:目题落地时, 【】31 序程题目:打印出全部得水仙花数,所谓水仙花数就是指一个三位数,其各位数字立方与等于该数本身。例如:153 就是一个水仙花数,因为 153=得三次方5 得三次方3 得三次方。、1利:析分序程用 fr 循环限制 100-99个数,每个数分解出个位,十位,百位。2、程序源代码:)(niam ;)":i rebmunref rtw"(ftnirp;,k,i ti fr(n=1;n<10;n+)

34、十出解分;01%/= /*位百出解分/;0/=i位*/ k%10;/*分解出个位*/ if(i*100j*0+k=ii*i+j*j*jk*k*) ftnir(%-5",); ;)n"(ftni=【程序 14】n 对:析分序程。3*32=09 出印打,09 入输:如例。数因质解分数整正个一将:目题进行分解质因数,应先找到一个最小得质数,然后按下述步骤完成:)1(说则,n 于等恰数质个这果如明分解质因数得过程已经结束,打印出即可。(2)假如 n<k,但 n 能被 k 整除,则应打印出 k 得值,并用 n 除以 k 得商,作为新得正整数您 n,重复执

35、行第一步。()假如 n 不能被 k 整除,则用 k+1 作为 k 得值,重复执行第一步。2、程序源代码:*)(niam /uhsniy dedivd si tni nehi esaeln(tnirp;,n tni a nmbr:"); caf("%d",n); ;)n,"=d%"(ftnirpfo(=;i<=n;i+) )i!n(elihwif(n%i=0) ;)i,"d%"(tnirpn=i; esreak; ;)n,"d%"(fnirp=【程序 15】之分 98-06,示表 A 用学同得分9=>绩成习学:题此成完来套嵌得符

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁