C語言經(jīng)典編程實(shí)例100題,答案_第1頁
C語言經(jīng)典編程實(shí)例100題,答案_第2頁
C語言經(jīng)典編程實(shí)例100題,答案_第3頁
C語言經(jīng)典編程實(shí)例100題,答案_第4頁
C語言經(jīng)典編程實(shí)例100題,答案_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余33頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

本文格式為Word版,下載可任意編輯第第頁C語言經(jīng)典編程實(shí)例100題,答案C語言程序?qū)嵗?00個(gè)(一)

【程序1】多是就都?數(shù)位三得字?jǐn)?shù)復(fù)重?zé)o且同相不互個(gè)少多成組能,字?jǐn)?shù)個(gè)4、3、2、1有:目題?少?1、程序分析:可填在百位、十位、個(gè)位得數(shù)字都就是1、2、3、4。組成全部得排列后再去掉不滿意條件得排列。

2、程序源代碼:

)(niam?{f

/*環(huán)循重三為下以*/

)++i;5lt;i;1=i(rof?;)"n\quot;(ftnirp?;k,j,itni?or(j=1;jlt;5;j++)

for(k=1;k<5;k++){

?

if(i!=kamp;amp;i!=jamp;amp;j!=k)

/*確保i、j、k三位互不相同*/

printf(quot;%d,%d,%d\n",i,j,k);

}=====================================================?}?=========【】2序程?題目:企業(yè)發(fā)放得獎(jiǎng)金依據(jù)利潤提成。利潤(I)低于或等于10萬元時(shí),獎(jiǎng)金可提10%;利潤高于10萬元,低于20萬元時(shí),低于10萬元得部分按10%提成,高于10萬元得部分,可可提成7、5%;20萬到40萬之間時(shí),高于20萬元得部分,可提成5%;40萬到60萬之間時(shí)高于40萬元得部分,可提成3%;60萬到100萬之間時(shí),高于60萬元得部分,可提成1、5%,高于100萬元時(shí),超過100萬元得部分按1%提成,從鍵盤輸入當(dāng)月利潤I,求應(yīng)發(fā)放獎(jiǎng)金總數(shù)?1、程序分析:請(qǐng)利用數(shù)軸來分界,定位。留意定義時(shí)需把獎(jiǎng)金定義成長整型。

、2:碼代源序程?)(niam?{;sunob,01sunob,6sunob,4sunob,2sunob,1sunobtni?;itnignol?scanf("%ld",amp;i);bonus1=100000*0、1;bonus2=bonus1+100000*0、75;unob?;5、0*000002+2sunob=4sunob?s6=bonus4+202100*0、3;)000001=lt;i(fi?;51、0*000004+6sunob=01sunob?

bonus=i*0、1;

)000002=<i(fiesle?

bonus=bonus1+(i-100000)*0、075;

)000004=lt;i(fiesle?

bonus=bonus2+(i-200000)*0、05;

)000006=<i(fiesle?

bonus=bonus4+(i-400000)*0、03;

elseif(ilt;=1000000)

bonus=bonus6+(i-600000)*0、015;

?esle?bonus=bonus10+(i-1000000)*0、01;;)sunob,"d%=sunob"(ftnirp?}

?==============================================================?【程序3】,數(shù)方平全完個(gè)一是就又861上加再,數(shù)方平全完個(gè)一是就后001上加它,數(shù)整個(gè)一:目題?請(qǐng)問該數(shù)就是多少?1、程序分析:在10萬以內(nèi)推斷,先將該數(shù)加上100后再開方,再將該數(shù)加上268后再開方,假如開方后得結(jié)果滿意如下條件,即就是結(jié)果。請(qǐng)瞧詳細(xì)分析:、2:碼代源序程?#includequot;mat(yī)h、hquot;?)(niam?{

)++i;000001lt;i;1=i(rof?;z,y,x,itnignol?{trqs=x?(i+100);

/*x為加上100后開方后得結(jié)果*/

y=sqrt(i+268);

/*y為再加上168后開方后得結(jié)果*/

if(x*x==i+100amp;&y*y==i+268)/*假如一個(gè)數(shù)得平方根得平方等于該數(shù),這說明此數(shù)就是完全平方數(shù)*/

printf(quot;\n%ld\nquot;,i);}?}?==============================================================【程序4】

?天幾第得年一這是就天一這斷判,日某月某年某入輸:目題?1、程序分析:以3月5日為例,應(yīng)當(dāng)先把前兩個(gè)月得加起來,然后再加上5天即本年得第幾天,特別狀況,閏年且輸入月份大于3時(shí)需考慮多加一天。、2?)(niam?:碼代源序程?{,htnom,yadtni?year,sum,leap;;)quot;n\yad,htnom,raeytupniesaelpn\quot;(ftnirp?

scanf(quot;%d,%d,%dquot;,amp;year,amp;month,amp;day);switch(month)/*先計(jì)算某月以前月份得總天數(shù)*/{

;kaerb;0=mus:1esac?case2:sum=31;break;

;kaerb;09=mus:4esac?;kaerb;95=mus:3esac?case5:sum=120;break;

case6:sum=151;break;2=mus:9esac?;kaerb;212=mus:8esac?;kaerb;181=mus:7esac?43;break;

case10:sum=273;break;

;kaerb;433=mus:21esac?;kaerb;403=mus:11esac?default:printf("dataerror");break;}?sum=sum+day;

/*再加上某天得天數(shù)*/

if(year%400==0||(year%4==0amp;amp;year%100!=0))/*推斷就是不就是閏年*/

leap=1;

esle?tnomamp;amp;1==pael(fi?;0=pael?hgt;2)/*假如就是閏年且月份大于2,總天數(shù)應(yīng)當(dāng)加一天*/sum++;printf("Itisthe%dthday、",sum);}=====================================?=========================【程序5】、。出輸大到小由數(shù)個(gè)三這把請(qǐng),z,y,x數(shù)整個(gè)三入輸:目題?1小最把法辦想們我:析分序程?得數(shù)放到x上,先將x與y進(jìn)行比較,假如xgt;y則將x與y得值進(jìn)行交換,

然后再用x與z進(jìn)行比較,假如x>z則將x與z得值進(jìn)行交換,這樣能使x最小。、2?)(niam?:碼代源序程?{,y,xtni?z,t;scanf(quot;%d%d%dquot;,amp;x,&y,amp;z);;z=t?{)z>x(fi/*值得y,x換交*/};t=y;y=x;x=t?{)ygt;x(fi?z=x;x=t;}/*交換x,z得值*/if(ygt;z){%:gibotllamsquot;(ftnirp/*值得y,z換交*/};t=z;z=y(tǒng);y=t?d%d%d\nquot;,x,y,z);}==============================================================?【程序6】

題目:用*號(hào)輸出字母C得圖案。、1、。出輸行分再,C母字出寫上紙?jiān)谔?hào)"*"用先可:析分序程?2序程?源代碼:#)(niam?quot;h、oidtsquot;edulcni?{printf(quot;HelloC-world!\nquot;);printf(quot;****\n");printf("*\n");printf(quot;*\nquot;);;)quot;n\****quot;(ftnirp?}

==============================================================?【程序7】

!lufituaeByreV,瞧一瞧,行運(yùn)中境環(huán)c在請(qǐng),案圖殊特出輸:目題?1、程序分析:字符共有256個(gè)。不同字符,圖形不一樣。

、2:碼代源序程?#includequot;stdio、hquot;)(niam?{?chara=176,b=219;;)b,a,a,a,b,quot;n\c%c%c%c%c%quot;(ftnirp?printf(quot;%c%c%c%c%c\nquot;,a,b,a,b,a);ftnirp?;)a,a,b,a,a,quot;n\c%c%c%c%c%quot;(ftnirp?("%c%c%c%c%c\n",a,b,a,b,a);printf(quot;%c%c%c%c%c\nquot;,b,a,a,a,b);}==============================================================【】8序程?題目:輸出9*9口訣。、1。列制控j,行制控i,列9行9共,慮考列與行分:析分序程?2、程序源代碼:

#includequot;stdio、hquot;)(niam?{

inti,j,result;

)++i;01<i;1=i(rof?;)"n\quot;(ftnirp?{

)++j;01lt;j;1=j(rof??{

?result=i*j;

}

/*位3占,齊對(duì)左示表d3-*/;)tluser,j,i,quot;d3-%=d%*d%quot;(ftnirp?

printf(quot;\n");/*每一行后換行*/

}}?==============================================================?【程序9】

。盤棋棋象際國出輸求要:目題?1、程序分析:用i掌握行,j來掌握列,依據(jù)i+j得與得變化來掌握輸出黑方格,還就是白方格。、2程?序源代碼:#)(niam?"h、oidtsquot;edulcni?{?inti,j;

for(i=0;ilt;8;i++)

?{

)++j;8lt;j;0=j(rof?

if((i+j)%2==0)

;)912,912,quot;c%c%quot;(ftnirp?

else

;)quot;quot;(ftnirp?

;)quot;n\quot;(ftnirp?}?}==============================================================

【程序10】、。臉笑個(gè)兩印打方上梯樓在時(shí)同,梯樓印打:目題?1j,列制控來j,行制控i用:析分序程?依據(jù)i得變化來掌握輸出黑方格得個(gè)數(shù)。

2、程序源代碼:#)(niam?"h、oidts"edulcni?{inti,j;printf(quot;\1\1\nquot;);/*輸出兩個(gè)笑臉*/for(i=1;ilt;11;i++){?for(j=1;j<=i;j++)

printf(quot;%c%cquot;,219,219);【;)"n\quot;(ftnirp??}?}

】11序程?題目:古典問題:有一對(duì)兔子,從誕生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長到第三個(gè)月后每個(gè)月又生一對(duì)兔子,假如兔子都不死,問每個(gè)月得兔子總數(shù)為多少?、1,1,1列數(shù)為律規(guī)得子兔:析分序程?2,3,5,8,13,21、、、、、2:碼代源序程?main()

{?longf1,f2;inti;)++i;02=lt;i;1=i(rof?;1=2f=1f?{printf(quot;%12ld%12ldquot;,f1,f2);

if(i%2==0)printf(quot;\nquot;);/*掌握輸出,每行四個(gè)*/

f1=f1+f2;/*前兩個(gè)月加起來賦值給第三個(gè)月*/

f2=f1+f2;/*前兩個(gè)月加起來賦值給第三個(gè)月*/

}}==============================================================【程?序12】

題目:推斷101-200之間有多少個(gè)素?cái)?shù),并輸出全部素?cái)?shù)。、1分?jǐn)?shù)個(gè)一用:法方得數(shù)素?cái)嗯校何龇中虺?別去除2到sqrt(這個(gè)數(shù)),假如能被整除,

則表明此數(shù)不就是素?cái)?shù),反之就是素?cái)?shù)。

2、程序源代碼:#)(niam?quot;h、htamquot;edulcni?{?intm,i,k,h=0,leap=1;

printf("\nquot;);

)++m;002=lt;m;101=m(rof?

{k=sqrt(m+1);

for(i=2;ilt;=k;i++)

)0==i%m(fi?

{leap=0;break;}

;++h;)m,"d4-%quot;(ftnirp{)pael(fi?

if(h%10==0)

;)quot;n\"(ftnirp?

}

;1=pael?

}

printf(quot;\nThetotalis%d",h);}?==============================================================

【程序13】于等與方立字?jǐn)?shù)位各其,數(shù)位三個(gè)一指是就'數(shù)花仙水"謂所,'數(shù)花仙水"得有所出印打:目題?該數(shù)本身。例如:153就是一個(gè)"水仙花數(shù)',由于153=1得三次方+5得三次方+3得三次方。

1、程序分析:利用for循環(huán)掌握100-999個(gè)數(shù),每個(gè)數(shù)分解出個(gè)位,十位,百位。

2、程序源代碼:?)(niam?{;n,k,j,itni?printf(quot;"wat(yī)erflower"numberis:quot;);

)++n;0001<n;001=n(rof?{

fi

/*位個(gè)出解分*/;01%n=k

/*位十出解分*/;01%01/n=j

/*位百出解分*/;001/n=i?(i*100+j*10+k==i*i*i+j*j*j+k*k*k)

?{

?;)n,quot;d5-%quot;(ftnirp?}?}

rp?intf(quot;\nquot;);}?==============================================================【?。5*3*3*2=09出印打,09入輸:如例。數(shù)因質(zhì)解分?jǐn)?shù)整正個(gè)一將:目題?】41序程?程序分析:對(duì)n進(jìn)行分解質(zhì)因數(shù),應(yīng)先找到一個(gè)最小得質(zhì)數(shù)k,然后按下述步驟完成:)1(質(zhì)個(gè)這果如?

數(shù)恰等于n,則說明分解質(zhì)因數(shù)得過程已經(jīng)結(jié)束,打印出即可。

(2)假如nlt;gt;k,但n能被k整除,則應(yīng)打印出k得值,并用n除以k得商,作為新得正整數(shù)您n,重復(fù)執(zhí)行第一步。

(3)假如n不能被k整除,則用k+1作為k得值,重復(fù)執(zhí)行第一步。

2、程序源代碼:/*zhengintisdividedyinshu*/main(){;i,ntni?printf(quot;\npleaseinputanumber:\n");;)n,quot;=d%quot;(ftnirp?;)n&,"d%"(fnacs?for(i=2;i<=n;i++)

{

while(n!=i)

{

)0==i%n(fi?

{printf(quot;%d*quot;,i);

;i/n=n?

esle?

;kaerb?}?}

?printf(quot;%dquot;,n);}==================================================?============【】51序程?題目:利用條件運(yùn)算符得嵌套來完成此題:學(xué)習(xí)成果gt;=90分得同學(xué)用A表示,60-89分之間得用B表示,60分以下得用C表示。、1、。子例本基得符算運(yùn)件條是就這b:a?)bgt;a(:析分序程?2代源序程?碼:)(niam?{

intscore;

;)erocsamp;,quot;d%quot;(fnacs?;)"n\erocsatupniesaelpquot;(ftnirp?;edargrahc?grade=scoregt;=90?"A":(scoregt;=60?"B":"C");=;)edarg,erocs,quot;c%otsgnolebd%quot;(ftnirp?=?}?============================================================【程序16】

。數(shù)倍公小最與數(shù)約公大最其求,n與m數(shù)整正個(gè)兩入輸:目題?1、程序分析:利用輾除法。、2)(niam?:碼代源序程?{

;pmet,2mun,1mun,b,atni?printf("pleaseinputtwonumbers:\nquot;);?;)2mun&,1mun&,"d%,d%quot;(fnacs?if(num1

{temp=num1;

num1=num2;

;pmet=2mun?}{

/*止為0為b到直,法除輾用利*/)0=!b(elihw?;2mun=b;1mun=a?

;b%a=pmet?

a=b;

b=temp;}?printf(quot;gongyueshu:%d\nquot;,a);;)a/2mun*1mun,quot;n\d%:uhsiebgnogquot;(ftnirp?}==============================================================【程序17】

題目:輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字與其它字符得個(gè)數(shù)。

1、程序分析:利用while語句,條件為輸入得字符不為'\n'、、2、oidts"edulcni?#:碼代源序程?hquot;;0=srehto,0=tigid,0=ecaps,0=sretteltni?;crahc?{)(niam?printf(quot;pleaseinputsomecharacters\nquot;);

while((c=getchar())!="\n")

{

if(cgt;="a"amp;amp;clt;="z"||cgt;="A'amp;amp;clt;="Z")

;++srettel?elseif(c=="")

space++;

elseif(cgt;="0"&&c<="9')

digit++;

esle?

;++srehto?}?printf(quot;allinall:char=%dspace=%ddigit=%dothers=%d\n",letters,space,digit,others);

}===========================================================?===【程序18】

題目:求s=a+aa+aaa+aaaa+aa、、、a得值,其中a就是一個(gè)數(shù)字。例如2+22+222+2222+22222(此時(shí)共有5個(gè)數(shù)相加),幾個(gè)數(shù)相加有鍵盤掌握。

1、程序分析:關(guān)鍵就是計(jì)算出每一項(xiàng)得值。、2)(niam?:碼代源序程?{

;1=tnuoc,n,atni?longintsn=0,tn=0;

;)quot;n\ndnaatupniesaelp"(ftnirp?scanf(quot;%d,%dquot;,amp;a,amp;n);

;)n,a,quot;n\d%=n,d%=a"(ftnirp?while(countlt;=n){?

tn=tn+a;

;nt+ns=ns?+;01*a=a?+

;tnuoc?}?printf(quot;a+aa+、、、=%ld\nquot;,sn);}?==============================================================?【程序19】

題目:一個(gè)數(shù)假如恰好等于它得因子之與,這個(gè)數(shù)就稱為"完數(shù)'。例如6=1+2+3、編程

找出1000以內(nèi)得全部完數(shù)。

1、程序分析:請(qǐng)參照程序lt;--上頁程序14、、2)(niam?:碼代源序程?{;s,n,j,itni?;]01[ktnicitat(yī)s?for(j=2;jlt;1000;j++)

{

;j=s?;1-=n?

i;1=i(rof?

)0==)i%j((fi?{

;++n?

;i-s=s?

]n[k?=i;?}

?}

)0==s(fi?{

;)]i[k,quot;,d%quot;(ftnirp

i;0=i(rof?;)j,"uhsnawasid%quot;(ftnirp?printf("%d\n",k[n]);}?}}【?==============================================================程?序20】01第在它求,下落再;半一得度高原回跳反后地落次每,下落由自度高米001從球一:目題?次落地時(shí),

【與方立字?jǐn)?shù)位各其,數(shù)位三個(gè)一指是就'數(shù)花仙水"謂所,'數(shù)花仙水"得有所出印打:目題?】31序程?等于該數(shù)本身。例如:153就是一個(gè)"水仙花數(shù)',由于153=1得三次方+5得三次方+3得三次方。

1、程序分析:利用for循環(huán)掌握100-999個(gè)數(shù),每個(gè)數(shù)分解出個(gè)位,十位,百位。

2、程序源代碼:)(niam?{?inti,j,k,n;printf(quot;"waterflower'numberis:quot;);

for(n=100;nlt;1000;n++)

{?

i=n/100;/*分解出百位*/

j=n/10%10;/*分解出十位*/

k=n%10;/*分解出個(gè)位*/

if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)

?{

?;)n,"d5-%quot;(ftnirp?}?}

ftnirp?(quot;\nquot;);}=============================================================?=【】41序程?題目:將一個(gè)正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。

程序分析:對(duì)n進(jìn)行分解質(zhì)因數(shù),應(yīng)先找到一個(gè)最小得質(zhì)數(shù)k,然后按下述步驟完成:

(1)假如這個(gè)質(zhì)數(shù)恰等于n,則說明分解質(zhì)因數(shù)得過程已經(jīng)結(jié)束,打印出即可。)2(被能n但,kgt;lt;n果如?k整除,則應(yīng)打印出k得值,并用n除以k得商,作為新得正整數(shù)您n,重復(fù)執(zhí)行第一步。

(3)假如n不能被k整除,則用k+1作為k得值,重復(fù)執(zhí)行第一步。

?2、程序源代碼:*/)(niam/*uhsniydedividsitnignehz?{;)n,quot;=d%quot;(ftnirp?;)namp;,quot;d%quot;(fnacs?;)quot;n\:rebmunatupniesaelpn\"(ftnirp?;i,ntni?for(i=2;ilt;=n;i++){?

while(n!=i)

{

)0==i%n(fi?{

;)i,quot;*d%quot;(ftnirp?

n=n/i;

?}

esle?

break;}

?}};)n,"d%quot;(ftnirp?==============================================================【6,示表A用學(xué)同得分09=gt;績成習(xí)學(xué):題此成完來套嵌得符算運(yùn)件條用利:目題?】51序程?0-89分之間得用B表示,60分以下得用C表示。、1基得符算運(yùn)件條是就這b:a?)b>a(:析分序程?本例子。、2)(niam?:碼代源序程??{satupniesaelpquot;(ftnirp?;edargrahc?;erocstni?core\nquot;);tnirp?;)'C":"B"?06=gt;erocs(:"A"?09=>erocs=edarg?;)erocsamp;,quot;d%"(fnacs?f("%dbelongsto%cquot;,score,grade);}?==============================================================?【程序16】、。數(shù)倍公小最與數(shù)約公大最其求,n與m數(shù)整正個(gè)兩入輸:目題?1。法除輾用利:析分序程?2、程序源代碼:main(){

inta,b,num1,num2,temp;

;)quot;n\:srebmunowttupniesaelp"(ftnirp?scanf(quot;%d,%d",&num1,amp;num2);

;1mun=pmet{

1mun(fi?

;2mun=1mun?n?um2=temp;?}

;2mun=b;1mun=a?while(b!=0)/*利用輾除法,直到b為0為止*/

;b%a=pmet?

a=b;

b=temp;

};)a,quot;n\d%:uhseuygnogquot;(ftnirp?printf("gongbeishu:%d\n",num1*num2/a);==============================?}?================================【程序17】

。數(shù)個(gè)得符字它其與字?jǐn)?shù)、格空、母字文英中其出計(jì)統(tǒng)別分,符字行一入輸:目題?1、程序分析:利用while語句,條件為輸入得字符不為"\n'、、2dts"edulcni?#:碼代源序程?io、hquot;main(){;crahc?intletters=0,space=0,digit=0,others=0;

printf(quot;pleaseinputsomecharacters\nquot;);

)"n\"=!))(rahcteg=c((elihw?{?if(cgt;="a"amp;amp;clt;="z'||cgt;='A"&clt;="Z")

letters++;

)'"==c(fiesle?

;++ecaps?

elseif(c>="0"amp;amp;clt;="9')

;++tigid?

esle?

others++;}?printf("allinall:char=%dspace=%ddigit=%dothers=%d\n",letters,space,digit,others);}==============================================================【程序18】+222+22+2如例。字?jǐn)?shù)個(gè)一是就a中其,值得a、、、aa+aaaa+aaa+aa+a=s求:目題?2222+22222(此時(shí)共有5個(gè)數(shù)相加),幾個(gè)數(shù)相加有鍵盤掌握。、1每出算計(jì)是就鍵關(guān):析分序程?一項(xiàng)得值。

2、程序源代碼:)(niam?{

inta,n,count=1;

longintsn=0,tn=0;

printf(quot;pleaseinputaandn\n");

scanf("%d,%d",amp;a,amp;n);

;)n,a,quot;n\d%=n,d%=aquot;(ftnirp?while(countlt;=n){?

tn=tn+a;

sn=sn+tn;

a=a*10;++

;tnuoc?}?printf(quot;a+aa+、、、=%ld\nquot;,sn);}?==============================================================【1序程?9】

題目:一個(gè)數(shù)假如恰好等于它得因子之與,這個(gè)數(shù)就稱為"完數(shù)'。例如6=1+2+3、編程

找出1000以內(nèi)得全部完數(shù)。

、1

、41序程頁上--<序程照參請(qǐng):析分序程?2、程序源代碼:?)(niam?{;s,n,j,itni?;]01[ktnicitats?for(j=2;j<1000;j++)

{

n=-1;

s=j;

{

i;1=i(rof?

)0==)i%j((fi?

{n++;

s=s-i;

;i=]n[k?}

?}

?if(s==0)

{

;)j,quot;uhsnawasid%"(ftnirp?for(i=0;i

printf("%d,quot;,k[i]);

;)]n[k,quot;n\d%quot;(ftnirp?}}}==============================================================【程?序20】次01第在它求,下落再;半一得度高原回跳反后地落次每,下落由自度高米001從球一:目題?落地時(shí),【?】31序程?題目:打印出全部得"水仙花數(shù)',所謂"水仙花數(shù)'就是指一個(gè)三位數(shù),其各位數(shù)字立方與等于該數(shù)本身。例如:153就是一個(gè)"水仙花數(shù)',由于153=1得三次方+5得三次方+3得三次方。、1利:析分序程?用for循環(huán)掌握100-999個(gè)數(shù),每個(gè)數(shù)分解出個(gè)位,十位,百位。

2、程序源代碼:?)(niam?{;)quot;:sirebmun'rewolfretaw'quot;(ftnirp?;n,k,j,itni?for(n=100;nlt;1000;n++)

?{十出解分*/;01%01/n=j

/*位百出解分*/;001/n=i?位*/

k=n%10;/*分解出個(gè)位*/

if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)

?{

ftnirp?("%-5dquot;,n);

}

};)"n\quot;(ftnirp?}?==============================================================?【程序14】n對(duì):析分序程??。5*3*3*2=09出印打,09入輸:如例。數(shù)因質(zhì)解分?jǐn)?shù)整正個(gè)一將:目題?進(jìn)行分解質(zhì)因數(shù),應(yīng)先找到一個(gè)最小得質(zhì)數(shù)k,然后按下述步驟完成:

)1(說則,n于等恰數(shù)質(zhì)個(gè)這果如?明分解質(zhì)因數(shù)得過程已經(jīng)結(jié)束,打印出即可。

(2)假如nlt;>k,但n能被k整除,則應(yīng)打印出k得值,并用n除以k得商,作為新得正整數(shù)您n,重復(fù)執(zhí)行第一步。

(3)假如n不能被k整除,則用k+1作為k得值,重復(fù)執(zhí)行第一步。

2、程序源代碼:

*/?)(niam/*uhsniydedividsitnignehz?{iesaelpn\"(ftnirp?;i,ntni?nputanumber:\nquot;);scanf(quot;%dquot;,&n);;)n,quot;=d%quot;(ftnirp?for(i=2;ilt;=n;i++)

{

)i=!n(elihw?

{

if(n%i==0){

;)i,quot;*d%quot;(ftnirp?

n=n/i;

?}

esle?

break;

}?}};)n,quot;d%quot;(ftnirp?==============================================================?

【程序15】之分98-06,示表A用學(xué)同得分09=gt;績成習(xí)學(xué):題此成完來套嵌得符算運(yùn)件條用利:目題?間得用B表示,60分以下得用C表示。

1、程序分析:(a>b)?a:b這就是條件運(yùn)算符得基本例子。、2:碼代源序程?main()?{;erocstni?chargrade;

printf("pleaseinputascore\nquot;);

;)erocs&,quot;d%quot;(fnacs?grade=score>=90?'A':(scoregt;=60?"B":"C");rocs,quot;c%otsgnolebd%quot;(ftnirp?e,grade);}?==============================================================【程?序16】、。數(shù)倍公小最與數(shù)約公大最其求,n與m數(shù)整正個(gè)兩入輸:目題?1。法除輾用利:析分序程?2、程序源代碼:

main(){?inta,b,num1,num2,temp;

printf(quot;pleaseinputtwonumbers:\nquot;);

scanf(quot;%d,%d",amp;num1,amp;num2);

if(num1

{temp=num1;

;2mun=1mun?

num2=temp;?}

;2mun=b;1mun=a?while(b!=0)/*利用輾除法,直到b為0為止*/

{

;b%a=pmet?

a=b;

b=temp;?}

;)a/2mun*1mun,quot;n\d%:uhsiebgnogquot;(ftnirp?;)a,quot;n\d%:uhseuygnogquot;(ftnirp?}==============================================================【程序17】、。數(shù)個(gè)得符字它其與字?jǐn)?shù)、格空、母字文英中其出計(jì)統(tǒng)別分,符字行一入輸:目題?1程?序分析:利用while語句,條件為輸入得字符不為"\n"、2、程序源代碼:#quot;h、oidtsquot;edulcni?main(){charc;

intletters=0,space=0,digit=0,others=0;retcarahcemostupniesaelpquot;(ftnirp?s\nquot;);

)'n\'=!))(rahcteg=c((elihw??{

)"Z"=lt;camp;amp;'A"=gt;c||"z"=lt;camp;amp;"a"=>c(fi?

letters++;

)""==c(fiesle?

;++ecaps?

)'9"=lt;camp;&"0'=>c(fiesle?

digit++;

esle?

?;++srehto?}%=rahc:llanillaquot;(ftnirp?dspace=%ddigit=%dothers=%d\nquot;,letters,space,digit,others);}?==============================================================【程序18】2222+222+22+2如例。字?jǐn)?shù)個(gè)一是就a中其,值得a、、、aa+aaaa+aaa+aa+a=s求:目題?+22222(此時(shí)共有5個(gè)數(shù)相加),幾個(gè)數(shù)相加有鍵盤掌握。、1。值得項(xiàng)一每出算計(jì)是就鍵關(guān):析分序程?2、程序源代碼:

main(){

inta,n,count=1;

longintsn=0,tn=0;

printf(quot;pleaseinputaandn\nquot;);

scanf("%d,%d",amp;a,amp;n);

printf(quot;a=%d,n=%d\nquot;,a,n);

)n=lt;tnuoc(elihw?{

tn=tn+a;

sn=sn+tn;

;01*a=a?

++count;?}

;)ns,"n\dl%=、、、+aa+aquot;(ftnirp?}?==============================================================【程序19】

題目:一個(gè)數(shù)假如恰好等于它得因子之與,這個(gè)數(shù)就稱為"完數(shù)'。例如6=1+2+3、編程

找出1000以內(nèi)得全部完數(shù)。

1、程序分析:請(qǐng)參照程序lt;--上頁程序14、、2)(niam?:碼代源序程?{;]01[ktnicitats?inti,j,n,s;)++j;0001lt;j;2=j(rof?{

n=-1;

;j=s?

i;1=i(rof?

)0==)i%j((fi?{

;++n?

;i-s=s?

k[n]=i;

}}

?if(s==0)?{

;)]n[k,quot;n\d%quot;(ftnirp?;)]i[k,quot;,d%quot;(ftnirp

i;0=i(rof?;)j,quot;uhsnawasid%quot;(ftnirp?}}

==============================================================?}?【程序20】

題目:一球從100米高度自由落下,每次落地后反跳回原高度得一半;再落下,求它在第10次落地時(shí),

?共經(jīng)過多少米?第10次反彈多高?1、程序分析:見下面解釋2、程序源代碼:)(niam?{float(yī)sn=100、0,hn=sn/2;intn;for(n=2;n<=10;n++)

{

sn=sn+2*hn;/*第n次落地時(shí)共經(jīng)過得米數(shù)*/

hn=hn/2;/*第n次反跳高度*/

}printf(quot;thetotalofroadis%f\nquot;,sn);【;)nh,quot;n\retemf%sihtnetehtquot;(ftnirp??}序程?21】

題目:猴子吃桃問題:猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不癮,又多吃了一個(gè),其次天早上又將剩下得桃子吃掉一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下得一半零一個(gè)。到第10天早上想再吃時(shí),見只剩下一個(gè)桃子了。求第一天共摘了多少。

1、程序分析:實(shí)行逆向思維得方法,從后往前推斷。、2:碼代源序程?main(){;9=yad?;2x,1x,yadtni?x2=1;)0gt;yad(elihw?{x1=(x2+1)*2;/*第一天得桃子數(shù)就是第2天桃子數(shù)加1后得2倍*/

x2=x1;

;--yad?}printf(quot;thetotalis%d\nquot;,x1);=====================================?}?=========================【程序22】

題目:兩個(gè)乒乓球隊(duì)進(jìn)行競(jìng)賽,各出三人。甲隊(duì)為a,b,c三人,乙隊(duì)為x,y,z三人。已抽簽打算競(jìng)賽.。有人向隊(duì)員打聽競(jìng)賽得.。a說她不與x比,c說她不與x,z比,請(qǐng)編程序找出三隊(duì)賽手得.。

1、程序分析:推斷素?cái)?shù)得方法:用一個(gè)數(shù)分別去除2到sqrt(這個(gè)數(shù)),假如能被整除,

則表明此數(shù)不就是素?cái)?shù),反之就是素?cái)?shù)。

2、程序源代碼:

main(){)++i;'z'=lt;i;"x'=i(rof/*手對(duì)得c是就k,手對(duì)得b是就j,手對(duì)得a是就i*/;k,j,irahc?for(j='x';jlt;='z";j++)

?{

)j=!i(fi?

for(k="x';k<="z';k++){

)k=!j&&k=!i(fi?

{if(i!='x"amp;amp;k!="x'amp;amp;k!="z")

,"n\c%--ct\c%--bt\c%--asiredroquot;(ftnirp?i,j,k);}

?

}

}}==============================================================?【程序23】

題目:打印出如下圖案(菱形)、1?*?***?******?********?******?***?*形圖把先:析分序程??分成兩部分來瞧待,前四行一個(gè)規(guī)律,后三行一個(gè)規(guī)律,利用雙重for循環(huán),第一層掌握行,其次層掌握列。

、2)(niam?:碼代源序程?{inti,j,k;for(i=0;ilt;=3;i++)

{

)++j;i-2=<j;0=j(rof?

printf(quot;quot;);

for(k=0;klt;=2*i;k++)

printf(quot;*quot;);

printf(quot;\nquot;);

})++i;2=lt;i;0=i(rof?{?for(j=0;jlt;=i;j++)

)++k;i*2-4=lt;k;0=k(rof?;)quot;quot;(ftnirp?

;)quot;*quot;(ftnirp?printf("\nquot;);}?}?==============================================================【序程?24】

題目:有一分?jǐn)?shù)序列:2/1,3/2,5/3,8/5,13/8,21/13、、、求出這個(gè)數(shù)列得前20項(xiàng)之與。

1、程序分析:請(qǐng)抓住分子與分母得變化規(guī)律。

、2)(niam?:碼代源序程?{;0=s,1=b,2=ataolf?;02=rebmun,t,ntni?for(n=1;nlt;=number;n++)

{

;b/a+s=s?t=a;a=a+b;b=t;/*這部分就是程序得關(guān)鍵,請(qǐng)讀者猜猜t得作用*/

}、9%simusquot;(ftnirp?6f\nquot;,s);========================================================?}?======【、與得!02+、、、+!3+!2+1求:目題?】52序程?1了成變加累把是就只序程此:析分序程?累乘。

2、程序源代碼:main(){;1=t,0=s,ntaolf?for(n=1;n<=20;n++)?{?;t=+s?;n=*t?}?};)s,quot;n\e%=!02+、、、!3+!2+1"(ftnirp?==============================================================?【程序26】

題目:利用遞歸方法求5!。

1、程序分析:遞歸公式:fn=fn_1*4!、2:碼代源序程?#includequot;stdio、hquot;main(){?inti;;)(tcaftni?for(i=0;ilt;5;i++)

printf("\40:%d!=%d\n",i,fact(i));?};jtni?)j(tcaftni?{?intsum;)0==j(luò)(fi?sum=1;esle?sum=j*fact(j-1);returnsum;}C語言程序?qū)嵗?00個(gè)(二)

【程序27】

題目:利用遞歸函數(shù)調(diào)用方式,將所輸入得5個(gè)字符,以相反挨次打印出來。

1、程序分析:2、程序源代碼:#includequot;stdio、hquot;main(){inti=5;voidpalin(intn);printf(quot;\40:quot;);palin(i);printf(quot;\nquot;);}voidpalin(n)intn;{charnext;if(nlt;=1)

{

next=getchar();

printf(quot;\n\0:quot;);

putchar(next);

}else

{

next=getchar();

palin(n-1);

putchar(next);

}}==============================================================【程序28】

題目:有5個(gè)人坐在一起,問第五個(gè)人多少歲?她說比第4個(gè)人大2歲。問第4個(gè)人歲數(shù),她說比第3個(gè)人大2歲。問第三個(gè)人,又說比第2人大兩歲。問第2個(gè)人,說比第一個(gè)人大兩歲。最終問第一個(gè)人,她說就是10歲。請(qǐng)問第五個(gè)人多大?1、程序分析:利用遞歸得方法,遞歸分為回推與遞推兩個(gè)階段。要想知道第五個(gè)人歲數(shù),需知道第四人得歲數(shù),依次類推,推到第一人(10歲),再往回推。

2、程序源代碼:age(n)intn;{intc;if(n==1)c=10;elsec=age(n-1)+2;return(c);}main(){printf(quot;%dquot;,age(5));}

==============================================================【程序29】

題目:給一個(gè)不多于5位得正整數(shù),要求:一、求它就是幾位數(shù),二、逆序打印出各位數(shù)字。

1、程序分析:學(xué)會(huì)分解出每一位數(shù),如下解釋:2、程序源代碼:main(){longa,b,c,d,e,x;scanf(quot;%ldquot;,amp;x);a=x/10000;/*分解出萬位*/b=x%10000/1000;/*分解出千位*/c=x%1000/100;/*分解出百位*/d=x%100/10;/*分解出十位*/e=x%10;/*分解出個(gè)位*/if(a!=0)printf(quot;thereare5,%ld%ld%ld%ld%ld\nquot;,e,d,c,b,a);elseif(b!=0)printf(quot;thereare4,%ld%ld%ld%ld\nquot;,e,d,c,b);

elseif(c!=0)printf(quot;thereare3,%ld%ld%ld\nquot;,e,d,c);

elseif(d!=0)printf(quot;thereare2,%ld%ld\nquot;,e,d);

elseif(e!=0)printf(quot;thereare1,%ld\nquot;,e);}==============================================================【程序30】

題目:一個(gè)5位數(shù),推斷它就是不就是回文數(shù)。即12321就是回文數(shù),個(gè)位與萬位相同,十位與千位相同。

1、程序分析:同29例2、程序源代碼:main(){longge,shi,qian,wan,x;scanf(quot;%ldquot;,amp;x);wan=x/10000;qian=x%10000/1000;shi=x%100/10;ge=x%10;if(ge==wanamp;amp;shi==qian)/*個(gè)位等于萬位并且十位等于千位*/

printf(quot;thisnumberisahuiwen\nquot;);else

printf(quot;thisnumberisnotahuiwen\nquot;);}【程序31】

題目:請(qǐng)輸入星期幾得第一個(gè)字母來推斷一下就是星期幾,假如第一個(gè)字母一樣,則連續(xù)

推斷其次個(gè)字母。

1、程序分析:用狀況語句比較好,假如第一個(gè)字母一樣,則推斷用狀況語句或if語句推斷其次個(gè)字母。

2、程序源代碼:#includelt;stdio、hgt;voidmain(){charletter;printf(quot;pleaseinputthefirstletterofsomeday\nquot;);while((letter=getch())!="Y")/*當(dāng)所按字母為Y時(shí)才結(jié)束*/{switch(letter){case"S":printf(quot;pleaseinputsecondletter\nquot;);

if((letter=getch())=="a")

printf(quot;saturday\nquot;);

elseif((letter=getch())=="u")

printf(quot;sunday\nquot;);

elseprintf(quot;dataerror\nquot;);

break;case"F":printf(quot;friday\nquot;);break;case"M":printf(quot;monday\nquot;);break;case"T":printf(quot;pleaseinputsecondletter\nquot;);

if((letter=getch())=="u")

printf(quot;tuesday\nquot;);

elseif((letter=getch())=="h")

printf(quot;thursday\nquot;);

elseprintf(quot;dataerror\nquot;);

break;case"W":printf(quot;wednesday\nquot;);break;default:printf(quot;dataerror\nquot;);

}

}}==============================================================【程序32】

題目:Pressanykeytochangecolor,doyouwanttotryit、Pleasehurryup!1、程序分析:

2、程序源代碼:#includelt;conio、hgt;voidmain(void){intcolor;for(color=0;colorlt;8;color++)

{

textbackground(color);/*設(shè)置文本得背景顏色*/

cprintf(quot;Thisiscolor%d\r\nquot;,color);

cprintf(quot;Pressanykeytocontinue\r\nquot;);

getch();/*輸入字符瞧不見*/

}}==============================================================【程序33】

題目:學(xué)習(xí)gotoxy()與clrscr()函數(shù)

1、程序分析:2、程序源代碼:#includelt;conio、hgt;voidmain(void){clrscr();/*清屏函數(shù)*/textbackground(2);gotoxy(1,5);/*定位函數(shù)*/cprintf(quot;Outputatrow5column1\nquot;);textbackground(3);gotoxy(20,10);cprintf(quot;Outputatrow10column20\nquot;);}

==============================================================【程序34】

題目:練習(xí)函數(shù)調(diào)用1、程序分析:

2、程序源代碼:#includelt;stdio、hgt;voidhello_world(void){printf(quot;Hello,world!\nquot;);}voidthree_hellos(void){intcounter;for(counter=1;counterlt;=3;counter++)hello_world();/*調(diào)用此函數(shù)*/}voidmain(void){three_hellos();/*調(diào)用此函數(shù)*/}==============================================================【程序35】

題目:文本顏色設(shè)置1、程序分析:2、程序源代碼:#includelt;conio、hgt;voidmain(void){intcolor;for(color=1;colorlt;16;color++)

{

textcolor(color);/*設(shè)置文本顏色*/

cprintf(quot;Thisiscolor%d\r\nquot;,color);

}textcolor(128+15);cprintf(quot;Thisisblinking\r\nquot;);}==============================================================【程序36】

題目:求100之內(nèi)得素?cái)?shù)

1、程序分析:2、程序源代碼:#includelt;stdio、hgt;#includequot;math、hquot;#defineN101main(){inti,j,line,a[N];for(i=2;ilt;N;i++)a[i]=i;for(i=2;ilt;sqrt(N);i++)

for(j=i+1;jlt;N;j++)

{

if(a[i]!=0amp;amp;a[j]!=0)

if(a[j]%a[i]==0)

a[j]=0;}printf(quot;\nquot;);for(i=2,line=0;ilt;N;i++){

if(a[i]!=0)

{printf(quot;%5dquot;,a[i]);

line++;}

if(line==10)

{printf(quot;\nquot;);line=0;}}}==============================================================【程序37】

題目:對(duì)10個(gè)數(shù)進(jìn)行排序1、程序分析:可以利用選擇法,即從后9個(gè)比較過程中,選擇一個(gè)最小得與第一個(gè)元素交換,下次類推,即用其次個(gè)元素與后8個(gè)進(jìn)行比較,并進(jìn)行交換。

2、程序源代碼:#defineN10main(){inti,j,min,tem,a[N];/*inputdata*/printf(quot;pleaseinputtennum:\nquot;);for(i=0;ilt;N;i++){printf(quot;a[%d]=quot;,i);scanf(quot;%dquot;,amp;a[i]);}printf(quot;\nquot;);for(i=0;ilt;N;i++)printf(quot;%5dquot;,a[i]);printf(quot;\nquot;);/*sorttennum*/for(i=0;ilt;N-1;i++){min=i;for(j=i+1;jlt;N;j++)if(a[min]gt;a[j])min=j;tem=a[i];a[i]=a[min];a[min]=tem;}/*outputdata*/printf(quot;Aftersorted\nquot;);for(i=0;ilt;N;i++)printf(quot;%5dquot;,a[i]);}==============================================================【程序38】

題目:求一個(gè)3*3矩陣對(duì)角線元素之與

1、程序分析:利用雙重for循環(huán)掌握輸入二維數(shù)組,再將a[i][i]累加后輸出。

2、程序源代碼:

main(){floata[3][3],sum=0;inti,j;printf(quot;pleaseinputrectangleelement:\nquot;);for(i=0;ilt;3;i++)

for(j=0;jlt;3;j++)

scanf(quot;%fquot;,amp;a[i][j]);for(i=0;ilt;3;i++)

sum=sum+a[i][i];printf(quot;duijiaoxianheis%6、2fquot;,sum);}==============================================================【程序39】

題目:有一個(gè)已經(jīng)排好序得數(shù)組。現(xiàn)輸入一個(gè)數(shù),要求按原來得規(guī)律將它插入數(shù)組中。

1、程序分析:首先推斷此數(shù)就是否大于最終一個(gè)數(shù),然后再考慮插入中間得數(shù)得狀況,插入后此元素之后得數(shù),依次后移一個(gè)位置。

2、程序源代碼:main(){inta[11]={1,4,6,9,13,16,19,28,40,100};inttemp1,temp2,number,end,i,j;printf(quot;originalarrayis:\nquot;);for(i=0;ilt;10;i++)

printf(quot;%5dquot;,a[i]);printf(quot;\nquot;);printf(quot;insertanewnumber:quot;);scanf(quot;%dquot;,amp;number);end=a[9];if(numbergt;end)

a[10]=number;else

{for(i=0;ilt;10;i++)

{if(a[i]gt;number)

{temp1=a[i];

a[i]=number;

for(j=i+1;jlt;11;j++)

{temp2=a[j];

a[j]=temp1;

temp1=temp2;

}

break;

}

}}for(i=0;ilt;11;i++)

printf(quot;%6dquot;,a[i]);}==============================================================

【程序40】

題目:將一個(gè)數(shù)組逆序輸出。

1、程序分析:用第一個(gè)與最終一個(gè)交換。

2、程序源代碼:#defineN5main(){inta[N]={9,6,5,4,1},i,temp;

printf(quot;\noriginalarray:\nquot;);

for(i=0;ilt;N;i++)

printf(quot;%4dquot;,a[i]);

for(i=0;ilt;N/2;i++)

{temp=a[i];

a[i]=a[N-i-1];

a[N-i-1]=temp;

}printf(quot;\nsortedarray:\nquot;);for(i=0;ilt;N;i++)

printf(quot;%4dquot;,a[i]);}【程序41】

題目:學(xué)習(xí)static定義靜態(tài)變量得用法

1、程序分析:2、程序源代碼:#includequot;stdio、hquot;varfunc(){intvar=0;staticintstatic_var=0;printf(quot;\40:varequal%d\nquot;,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論