




下載本文檔
版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 西方政治制度對(duì)移民公民化的影響試題及答案
- 叉車全部考試題庫及答案
- 2025年環(huán)境政策與地方實(shí)施考試題及答案
- 軟件設(shè)計(jì)師考試團(tuán)隊(duì)項(xiàng)目展示與試題及答案
- 兔玩網(wǎng)java面試題及答案
- java程序員進(jìn)bat面試題及答案
- 動(dòng)畫駕駛考試題及答案
- 人大哲學(xué)面試題及答案
- 華泰證券java面試題及答案
- 自我反思的抒情作文5篇
- 世界環(huán)境日主題課件
- 職業(yè)道德與法治 第13課《學(xué)會(huì)依法維權(quán)》第一框課件《依法理性維權(quán)》
- 鄰近鐵路營業(yè)線施工安全監(jiān)測(cè)技術(shù)規(guī)程 (TB 10314-2021)
- 婦科常見病科普知識(shí)講座
- 城市土壤主要類型及特點(diǎn)
- 賓館財(cái)務(wù)安全管理制度
- 《康復(fù)護(hù)理學(xué)基礎(chǔ)》期末考試復(fù)習(xí)題庫(含答案)
- 寶鋼武鋼并購重組案例研究
- 胰島素的種類及應(yīng)用(共26張PPT)
- 眩暈診療方案總結(jié)優(yōu)化
- 轉(zhuǎn)讓魚塘股份合同范本
評(píng)論
0/150
提交評(píng)論