C語言程序設(shè)計(jì)經(jīng)典100例_第1頁
C語言程序設(shè)計(jì)經(jīng)典100例_第2頁
C語言程序設(shè)計(jì)經(jīng)典100例_第3頁
C語言程序設(shè)計(jì)經(jīng)典100例_第4頁
已閱讀5頁,還剩144頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

103f程序1】[題目:有1、2、3、4個數(shù)字,能組成多少個互不相同且無重復(fù)數(shù)字得三位數(shù)?都就是多少?1、程序分析:可填在百位、十位、個位得數(shù)字都就是1、2,3、4。組成所有得排列后再去掉不滿足條件得排列。2、程序源代碼:main()(inti?j,k;printf(M\nM);for(i=l;i<5;i++) /?以下為三重循環(huán)?/for(j=1;j<5;j++)for(k=l;k<5;k++)(if(i!=k&&i!=j&&j!=k) /?確保i、j、k三位互不相同?/printf("%d,%d,%d\n",i,j,k);}【程序2】題目:企業(yè)發(fā)放得獎金根據(jù)利潤提成。利潤(I)低于或等于10萬元時,獎金可提10%;利潤高于10萬元,低于20萬元時,低于10萬元得部分按10%提成,高于10萬元得部分,可可提成7、5%;20萬到40萬之間時,高于20萬元得部分,可提成5%;40萬到60萬之間時高40萬元得部分,可提成3%;60萬到100萬之間時,高于60萬元得部分,可提成1、5%,高于100萬元時,超過10〇萬元得部分按1%提成,從鍵盤輸入當(dāng)月利潤I,求應(yīng)發(fā)放獎金總數(shù)?1、程序分析:請利用數(shù)軸來分界,定位,注意定義時需把獎金定義成長整型.2、程序源代碼:main()(I〇nginti;intbonus1,bonus2,bonus4,bonus6,bonus10,bonus;scant(n%ld",&i):bonus1=100000*0、!;bonus2=bonusl+100000*0、75:bonus4=bonus2+200000*0、5;bonus6=bonus4+200000*0、3;bonusl0=bonus6+400000*0、15;if(i<=100000)bonus=i*0、!;elseif(i<=200000)bonus=bonus1+(i-100000)*0、075;elseif(i<=400000)bonus=bonus2+(i-200000)*0、05;elseif(i<=600000)bonus=bonus4+(i-400000)?〇、03:elseif(i<=1000000)bonus=bonus6+(i—600000)*0ヽ015:elsebonus=bonus10+(i-1000000)*0、01;printf("bonus=%d",bonus);)【程序3】題目:ー個整數(shù),它加上100后就是ー個完全平方數(shù),再加上168又就是ー個完全平方數(shù),請問該數(shù)就是多少?1、程序分析:在10萬以內(nèi)判斷,先將該數(shù)加上100后再開方,再將該數(shù)加上268后再開方,如果開方后得結(jié)果滿足如下條件,即就是結(jié)果。請瞧具體分析:2、程序源代碼:#includewmath、h"main()onginti,x,y,zor(i=1;i<100000:i++){x=sqrt(i+100); /*x為加上100后開方后得結(jié)果?/y=sqrt(i+268); /*y為再加上168后開方后得結(jié)果?/if(x*x==i+l00&&y*y==i+268)/?如果一個數(shù)得平方根得平方等于該數(shù),這說明此數(shù)就是完全平方數(shù)?/printf(H\n%ld\nM,i);【程序4】題目:輸入某年某月某ロ,判斷這一天就是這一年得第幾天?

1、程序分析:以3月5日為例,應(yīng)該先把前兩個月得加起來,然后再加上5天即本年得第幾天,特殊情況,閏年且輸入月份大于3時需考慮多加一天。2、程序源代碼:main(){intday,month,year,sum,Ieap;printf("\npleaseinputyear,month,day\n");scanf(n%d,%d,%d",&year,&month,&day);switch(month) 先計(jì)算某月以前月份得總天數(shù)?/(casel:sum=0;break;case2:sum=31;break;case3:sum=59;break;case4:sum=90;break;case5:sum=120;break;case6:sum=l51;break;case7:sum=181;break;case8:sum=212;break;case9:sum=243;break;case10:sum=273;break;casell:sum=304;break;case12:sum=334;break;defau1t:printf("dataerror");break;)sum=sum+dasum=sum+day;/?再加上某天得天數(shù)?/if(year%400==0|I(year%4==0&&year%100!=0))/?判斷就是不就是閏年?/1eap=1;eIseIeap=0;if(leap==l&&month)2)/?如果就是閏年且月份大于2,總天數(shù)應(yīng)該加一天?/sum++;printf("Itisthe%dthday>",sum);}【程序5】題目:輸入三個整數(shù)x,y,z,請把這三個數(shù)由小到大輸出。1、程序分析:我們想辦法把最小得數(shù)放到x上,先將x與y進(jìn)行比較,如果x〉y則將x與y得值進(jìn)行交換,然后再用x與z進(jìn)行比較,如果x>z則將x與z得值進(jìn)行交換,這樣能使x最小.2、程序源代碼:main()(intx,y,z,t;scanf("%d%d%d“,&x,&y,&z);if(x)y){t=x;x=y:y=t;}/?交換x,y得值?/if(x>z){t=z;z=x;x=t;}/?交換x,z得值?/if(y)z){t=y;y=z;z=t;}/?交換z,y得值?/printf(wsmalltobig:%d%d%d\n",x,y,z);【程序6】題目:用?號輸出字母C得圖案.1、程序分析:可先?103f?*’號在紙上寫出字母C,再分行輸出。2,程序源代碼:#inc1udenstdio,h"main(){printf("HelloC-world!\n");printf("****\n");printf("?ヽn”);printf("*\n");printf("****\n");)【程序7】題目:輸出特殊圖案,請?jiān)赾環(huán)境中運(yùn)行,瞧ー瞧,VeryBeautiful!1、程序分析:字符共有256個。不同字符,圖形不ー樣.2、程序源代碼:#inc1ude"stdi〇、h"main()chara=176,b=219;printf(*'%c%c%c%c%c\nu,b,a,a,a,b);printf("%c%c%c%c%c\n”,a,b,a,b,a);printf("%c%c%c%c%c\n",a,a,b,a,a);printf("%c%c%c%c%c\n",a,b,a,b,a);printf%c%c%c%c%c\n",b,a,a,a,b);}ーー—一ー———————ーーー———ーーーーー———————一ー————一ー————ーーーーーーーーーーー————一一,[程序8]題目:輸出9*9口訣。1、程序分析:分行與列考慮,共9行9列,i控制行,j控制列.2、程序源代碼:#include"stdio、h"main(){inti,j,result;printf("\n");for(i=1;i<10;i++){for(j=l;j<10;j++)(result=i*j;printf("%d*%d=%-3d",i,j.result);/*—3d表示左對齊,占3位?/}printf ;/*每一行后換行?/))【程序9】題目:要求輸出國際象棋棋盤.1、程序分析:用i控制行)來控制列,根據(jù)i+j得與得變化來控制輸出黑方格,還就是白方格。2、程序源代碼:#include"stdio、h”main()(inti,j;for(i=0;i(8;i++)(for(j=0;j(8;j++)if((i+j)%2==0)printf(0%c%c”,219,219);eIseprintf("つ;printf(“ヽn”);)}【程序10]題目:打印樓梯,同時在樓梯上方打印兩個笑臉。1、程序分析:用i控制行,j來控制列,j根據(jù)i得變化來控制輸出黑方格得個數(shù)。2、程序源代碼:#include"stdi〇、hhmain()inti,j;printf("\l\l\n");/?輸出兩個笑臉?/for(i=l;i<11;i++)(for(j=1;j<=i;j++)printf("%c%c",219,219);printf(M\n");})【程序11]題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月得兔子總數(shù)為多少?1、程序分析: 兔子得規(guī)律為數(shù)列1,1,2,3,5,8,13,21、、、、2、程序源代碼:main()|1ongfl,f2;inti;fl=f2=l;for(i=l;i<=20;i++){printf(M%12ld%12ld"zfl,f2);if(i%2==0)printf("\n");/*控制輸出,每行四個?/fl=f1+f2;/?前兩個月加起來賦值給第三個月?/f2=fl+f2; /?前兩個月加起來賦值給第三個月7)【程序12]題目:判斷101-200之間有多少個素?cái)?shù),并輸出所有素?cái)?shù)。1、程序分析:判斷素?cái)?shù)得方法:用ー個數(shù)分別去除2到sqrt(這個數(shù)),如果能被整除,則表明此數(shù)不就是素?cái)?shù),反之就是素?cái)?shù)。2、程序源代碼:include“math、h"main()(intm,i,k,h=0,1eap=l;printf(“\n");for(m=101;m<=200;m++){k=sqrt(m+1);for(i=2;i<=k;i++)if(m%i==0){leap=0;break;}if(leap){printf("%-4d",m);h++;f(h%10==0)printf("ヽn”);}eap=l;printf(M\nThetotalis%d",h);)【程序13]題目:打印出所有得’‘水仙花數(shù)”,所謂“水仙花數(shù)”就是指ー個三位數(shù),其各位數(shù)字立方與等于該數(shù)本身。例如:153就是ー個“水仙花數(shù)”,因?yàn)?53=1得三次方+5得三次方+3得三次方。1、程序分析:利用for循環(huán)控制100-999個數(shù),每個數(shù)分解出個位,十位,百位。2、程序源代碼:main(){inti,j,k,n;printf("'waterflower'numberis:”);for(n=100;n<1000;n++)(i=n/100;/?分解出百位?/j=n/10%l0;/?分解出十位?/k=n%10;/*分解出個位?/if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)(printf(”%-5d”,n);)}printf(”\n");)【程序14]題目:將一個正整數(shù)分解質(zhì)因數(shù).例如:輸入90,打印出90=2*3*3*5。程序分析:對n進(jìn)行分解質(zhì)因數(shù),應(yīng)先找到ー個最小得質(zhì)數(shù)k,然后按下述步驟完成:(1)如果這個質(zhì)數(shù)恰等于n,則說明分解質(zhì)因數(shù)得過程已經(jīng)結(jié)束,打印出即可。(2)如果n<>k,但n能被k整除,則應(yīng)打印出k得值,并用n除以k得商,作為新得正整數(shù)您n,重復(fù)執(zhí)行第一步。⑶如果n不能被k整除,則用k+1作為k得值,重復(fù)執(zhí)行第一步.2、程序源代碼:/*103fzhengintisdividedyinshu*/main(){intn,i;printf("\npleaseinputanumber:\n");scanf("%d",&n);printfじ%d=”,n);for(i=2;i<=n;i++)(whiIe(n!=i)(if(n%i==0){printf("%d*”,i);n=n/i;elsebreak;})printf("%d",n);)【程序15]題目:利用條件運(yùn)算符得嵌套來完成此題:學(xué)習(xí)成績〉=90分得同學(xué)用A表示,60—89分之間得用B表示,60分以下得用C表示。1、程序分析:(a〉b)?a:b這就是條件運(yùn)算符得基本例子。2,程序源代碼:main()(intscore;chargrade;printf(*'pleaseinputascore\n");scanf(ff%d”,&score);grade=score>=90?'A':(score)=60?1B':'C);printf("%dbelongsto%c”,score,grade);}——————— ————————————一 ————?— ——————【程序16]題目:輸入兩個正整數(shù)m與n,求其最大公約數(shù)與最小公倍數(shù)。1、程序分析:利用輾除法.2、程序源代碼:main()(inta,b,numl,num2,temp;printf("pieaseinputtwonumbersヘn");scanf("%d,%d”,&num1,&num2);if(numl{temp=num1;numl=num2;num2=temp;}a=numl;b=num2;whi1e(b!=O)/?利用輾除法,直到b為〇為止?/(temp=a%b;a=b;b=temp;}printf(ngongyueshu:%d\n",a);printf("gongbeishu:%d\n”,num1*num2/a);)【程序17]題目:輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字與其它字符得個數(shù)。1、程序分析:利用whiIe語句,條件為輸入得字符不為‘\n,、2,程序源代碼:#inc1ude”stdio>h"main(){charc;int1etters=Ozspace=O,digit=O,others=0;printf("pleaseinputsomecharacters\nツ;while((c=getchar())!='\nr)(if(c>='a*&&c〈='z'||c>='A'&&c<;Z)Ietters++;elseif(c=='')space++;elseif(c>=’〇’&&c〈:’9')digit++;eIseothers++;)printf("aIIinall:char=%dspace=%ddigit=%dothers=%d\n",1etters,space,digit,others);)——^^3 _________1_ _____________________ _____一ー-__【程序18]題目:求s=a+aa+aaa+aaaa+aa、、、a得值,其中a就是ー個數(shù)字。例如2+22+222+2222+22222(此時共有5個數(shù)相加),幾個數(shù)相加有鍵盤控制。2,程序源代碼:main()inta,n,count=l;longintsn=0,tn=0;printf("pIeaseinputaandn\n");scanf(”%d,%d",&a,&n);printf("a=%d,n二%d\n”,a,n);while(count(=n)(tn=tn+a;sn=sn+tn;a=a*10;++count;}printf("a+aa+、、、=%ld\n",sn);)【程序19]題目:一個數(shù)如果恰好等于它得因子之與,這個數(shù)就稱為“完數(shù)”。例如6=1+2+3、編程找出1000以內(nèi)得所有完數(shù)。1、程序分析:請參照程序《ー上頁程序14ヽ2,程序源代碼:main()staticintk[10];inti,j,n,s;for(j=2;j<1000;j++)(n=-1;s=j;for(i=1;i{if((j%i)==0){n++;s=s-i;k[n]=i;}}if(s==0)(printf(''%d isawanshu",j);for(i=0;iprintf("%d/\k[i]);printf(H%d\n”,k[n]);【程序20]題目:ー球從100米高度自由落下,每次落地后反跳回原高度得一半;再落下,求它在第10次落地時,共經(jīng)過多少米?第10次反彈多高?1、程序分析:見下面注釋2、程序源代碼:main()(floatsn=100、0,hn=sn/2;intn;for(n=2;n<=10;n++)(sn=sn+2*hn;/*第n次落地時共經(jīng)過得米數(shù)?/hn=hn〃;/*第n次反跳高度?/}printf("thet〇ta1ofroadis%f\n",sn);printf(nthetenthis%fmeter\n",hn);)【程序21]題目:猴子吃桃問題:猴子第一天摘下若干個桃子,當(dāng)即吃了一半,還不癮,又多吃了一個第二天早上又將剩下得桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下得一半零一個。到第10天早上想再吃時,見只剩下ー個桃子了。求第一天共摘了多少。1、程序分析:采取逆向思維得方法,從后往前推斷。2,程序源代碼:main()(intday,x1,x2;day=9;x2=1;whiIe(day)0){xl=(x2+1)*2;/*第一天得桃子數(shù)就是第2天桃子數(shù)加1后得2倍ッx2=xl;day ;)printf(*'thetotaiis%d\n",xl);103f【程序22]題目:兩個乒乓球隊(duì)進(jìn)行比賽,各出三人。甲隊(duì)為a,b,c三人,乙隊(duì)為x,y,z三人。已抽簽決定比賽名單.有人向隊(duì)員打聽比賽得名單。a說她不與x比,c說她不與X,z比,請編程序找出三隊(duì)賽手得名單。1、程序分析:判斷素?cái)?shù)得方法:用ー個數(shù)分別去除2到sqrt(這個數(shù)),如果能被整除,則表明此數(shù)不就是素?cái)?shù),反之就是素?cái)?shù)。2、程序源代碼:main()(chari,j,k;/*i就是a得對手,」就是b得對手,k就是c得對手?/for(i='x';i<='z';i++)for(j='x';j<='z';j++)(if(i!=j)for(k='x';k<='z';k++){if(i!=k&&j!=k){if(i!='x'&&k!='x'&&k!='z')printf(norderisa %c\tb--%c\tc--%c\n",i,j,k);)})【程序23]題目:打印出如下圖案(菱形)*********文*********?*****1>程序分析:先把圖形分成兩部分來瞧待,前四行ー個規(guī)律,后三行ー個規(guī)律,利用雙重for循環(huán),第一層控制行,第二層控制列.2,程序源代碼:main(){inti,j,k;for(i=0;i〈=3;i++)for(j=0;j<=2-i;j++)printf("");for(k=O;k〈=2*i;k++)printf(…);printf(n\n");}for(i=0;i<=2;i++)(for(j=0;j<=i;j++)printf("り;for(k=0;k<=4-2*i;k++)printf("巧;printf(w\nM);)}【程序24]題目:有一分?jǐn)?shù)序列:2/1,3/2,シ3身5,13/8,21/13、、、求出這個數(shù)列得前20項(xiàng)之與。1、程序分析:請抓住分子與分母得變化規(guī)律.2、程序源代碼:main(){intn,t,number=20;floata=2,b=l,s=0;for(n=l;n<=number;n++)s=s+a/b;t=a;a=a+b;b=t;/?這部分就是程序得關(guān)鍵,請讀者猜猜t得作用?/}printf(wsumis%9、6f\n”,s);}【程序25]題目:求1+21+3!+、、、+20!得與1、程序分析:此程序只就是把累加變成了累乘。2,程序源代碼:main(){fl〇atn,s=0tt=l;for(n=1;n<=20;n++)(t*=n;s+=t;)printf("l+2!+3!、、、+20!=%e\n",s);)【程序26]題目:利用遞歸方法求5!。1、程序分析:遞歸公式:fn=fn_1*4!2,程序源代碼:#include”stdio、h”main()(inti;intfact();for(i=0;i<5;i++)printf(“ヽ40:%d!=%d\n”,i,fact(i));}intfact(j)intj;{intsum;if(j==0)sum=l;e1sesum=j*fact(j—1);returnsum;【程序27]題目:利用遞歸函數(shù)調(diào)用方式,將所輸入得5個字符,以相反順序打印出來。1、程序分析:2、程序源代碼:#inc1ude"stdi〇、h"inti=5;voidpalin(intn);palin(i);printf(“ヽn");voidpa1in(n)intn;next;if(n<=l)next=getchar();printf("\n\O:n);putchar(next);e1senext=getchar();palin(n-1);putchar(next);【程序28]題目:有5個人坐在ー起,問第五個人多少歲?她說比第4個人大2歲。問第4個人歲數(shù),她說比第3個人大2歲。問第三個人,又說比第2人大兩歲。問第2個人,說比第一個人大兩歲。最后問第一個人,她說就是10歲.請問第五個人多大?1,程序分析:利用遞歸得方法,遞歸分為回推與遞推兩個階段。要想知道第五個人歲數(shù),需知道第四人得歲數(shù),依次類推,推到第一人(10歲),再往回推.2,程序源代碼:age(n)intn;(intc;if(n==l)c=10;eIsec=age(n—1)+2;return(c)s)main(){printf("%d",age(5));)【程序29]題目:給一個不多于5位得正整數(shù),要求:ー、求它就是幾位數(shù),二、逆序打印出各位數(shù)字。1、程序分析:學(xué)會分解出每一位數(shù),如下解釋:(這里就是ー種簡單得算法ノ帀專數(shù)002班趙鑫提供)2,程序源代碼:main()Ionga,b,c,d,e,x;scanf("%1d",&x);a=x/10000;/?分解出萬位?/b=x%10000/1000;/?分解出千位?/c=x%1000厶00;/?分解出百位?/d=x%100/10;/?分解出十位?/e=x%10;/*分解出個位?/if(a!=0)printf("thereare5,%ld%Id%Id%ld%ld\n",e,d,c,b,a);elseif(b!=0)printf("thereare4, %ld%1d%1d%ld\n",e,d,c,b);e1seif(c!=0)printf("thereare3,%Id%1d%Id\n",e,d,c);elseif(d!=0)printf("thereare2,%ld%1d\n",e,d);elseif(e!=0)printf("thereare1,%1d\n",e);)103f【程序30]題目:ー個5位數(shù),判斷它就是不就是回文數(shù)。即12321就是回文數(shù),個位與萬位相同,十位與千位相同。1、程序分析:同29例2、程序源代碼:main()longge,shi,qian,wan,x;scanf("%1d",&x);wan=x/10000:qian=x%10000/1000;shi=x%100/10;ge=x%10;if(ge==wan&&shi==qian)/?個位等于萬位并且十位等于千位ッprintf(uthisnumberisahuiwen\n");elseprintf("thisnumberisnotahuiwen\n”);)【程序31]題目:請輸入星期幾得第一個字母來判斷一下就是星期兒,如果第一個字母ー樣,則繼續(xù)判斷第二個字母。1、程序分析:用情況語句比較好,如果第一個字母ー樣,則判斷用情況語句或if語句判斷第二個字母。2、程序源代碼:#include(stdi〇、h>voidmain(){charletter;printf("pleaseinputthefirstletterofsomeday\n");whi1e((letter=getch〇)!:’Y')/?當(dāng)所按字母為Y時才結(jié)束?/{switch(letter){case'S':printf("pieaseinputsecondletter\n");if(detter=getch())=='a')printf(°saturday\n");elseif((letter=getch())=='u*)printf("sunday\n");elseprintf(Hdataerror'll");break;caseT':printf("friday\n11);break;case'M':printf("monday\n");break;case'T':printf("pIeaseinputsecondletter\n");if((Ietter=getch())=='u,)printf("tuesday\n");elseif((Ietter=getch())=='h')printf("thursday\n°);e1seprintf("dataerror\n");break;case'W':printf("wednesday\n");break;defau1t:printf("dataerror\n");}})【程序32]題目:PressanykeytochangecoIor,doyouwanttotryit、P1easehurryup!1、程序分析:2、程序源代碼:#include〈conio、h>voidmain(void)intcolor;for(co1or=0;color〈8;color++){textbackground(co1or);/*設(shè)置文本得背景顏色?/cprintf("Thisisc〇!〇r%d\r\n",color);cprintf("Pressanykeytocontinue\r\n");getch();/*輸入字符瞧不見ッ}}【程序33]題目:學(xué)習(xí)gotoXy()與drscr()函數(shù)1、程序分析:2、程序源代碼:#includeVconio、h)voidmain(void)(clrscr();/?清屏函數(shù)?/textbackground(2);g〇toxy(l,5);/*定位函數(shù)?/cprintf("Outputatrow5column1\n");textbackgr〇und(3);gotoxy(20,10);cprintf("Outputatrow10column20\n");【程序34]題目:練習(xí)函數(shù)調(diào)用程序分析:2、程序源代碼:#ineludevstdi〇、h)voidhello_world(void){printf("Hello,world!\n");)voidthree_hellos(void){intcounter;for(counter=1;counter(=3;counter++)hello_world();/?調(diào)用此函數(shù)?/)voidmain(void)three_hel1os();/?調(diào)用此函數(shù)?/【程序35]題目:文本顏色設(shè)置1、程序分析:2、程序源代碼:#inc1ude(conio>h>voidmain(void)(intcolor;for(co1or=1;co1or<16;color++)(textc〇1or(color);/*設(shè)置文本顏色?/cprintf(HThisiscolor%d\r\nH,color);}textcolor(128+ 15);cprintf("Thisisblinking\r\n");}-_一ー____2^3— ————————— 一ー一ーーーーーーーーーーーーーーーーー【程序36]題目:求100之內(nèi)得素?cái)?shù)1、程序分析:2、程序源代碼:#include<stdio>h>inc1ude"math、h"defineN101main()(inti,j,1ine,a[N];for(i=2;i(N;i++)a[i]=i;for(i=2;i<sqrt(N);i++)for(j=i+l;j<N;j++)(if(a[i]!=0&&a[j]!=0)if(a[j]%aLi]==0)a[j]=0;}printf('*\nM);for(i=2,Iine=0;i<N;i++)(if(a[i]!=0){printf("%5d",a[i]);1ine++;)if(1ine==10){printf(”\n”);line=0;}))【程序37]題目:對10個數(shù)進(jìn)行排序1、程序分析:可以利用選擇法,即從后9個比較過程中,選擇ー個最小得與第一個元素交換,下次類推,即用第二個元素與后8個進(jìn)行比較,并進(jìn)行交換。2、程序源代碼:#defineN10main(){inti,j,min,tem,a[N];/*inputdata*/printf(*'pleaseinputtennum:\n");for(i=0;i<N;i++)(printf(°a[%d]=n,i);scanf("%d”,&aEi]);}printf("ヽn”);103ffor(i=0;i<N;i++)printf("%5d“,a[i]);printf("\n");/*sorttennum*/for(i=0;i<N—1;i++){min=i;for(j=i+1;j<N;j++)if(a[min]>a[j])min=j;tem=a[i];a[i]=a[min];a[min]=tem;}/*outputdata*/printf(nAftersorted\n");for(i=0;i<N;i++)printf("%5d",a[i]);)【程序38]題目:求一個3*3矩陣對角線元素之與1、程序分析:利用雙重f。r循環(huán)控制輸入二維數(shù)組,再將a[i][i]累加后輸出。2,程序源代碼:main(){f1〇ata[3][3]>sum=O;inti,j;printf("p1easeinputreetanglee1ement:\n");for(i=0;i<3;i++)for(j=0;j<3;j++)scanf(n%r,&a[i][j]);for(i=0;i<3;i++)sum=sum+a[i][i];printf("duijiaoxianheis%6、2f",sum);)【程序39]題目:有一個已經(jīng)排好序得數(shù)組。現(xiàn)輸入ー個數(shù),要求按原來得規(guī)律將它插入數(shù)組中.1、程序分析:首先判斷此數(shù)就是否大于最后ー個數(shù),然后再考慮插入中間得數(shù)得情況,插入后此元素之后得數(shù),依次后移ー個位置。2,程序源代碼:main()inta[11]={1,4,6913,16,19,28,40,100);inttempi,temp2,number,end,i,j;printf(noriginalarrayis:\n");for(i=0;i<10;i++)printf(M%5d”,a[i]);printf(“\n”);printf(ninsertanewnumber:");seanf("%d",&number);end=a[9];if(number>end)a[10]=number;else{for(i=0;i<10;i++){if(a[i]>number){templ=a[i];a[i]=number;for(j=i+1;j<ll;j++){ternp2=a[j];a[j]=temp1;ternpl=temp2;)break;for(i=0;i〈11;i++)printf("%6d",a[i]);}【程序40]題目:將一個數(shù)組逆序輸出。1、程序分析:用第一個與最后一個交換。2、程序源代碼:#defineN5main(){inta[N]={9,6,5,4,1}J,temp;printf("\norigina1array:\n,r);for(i=0;i(N;i++)printf("%4d",a[i]);for(i=0;i<N/2;i++){temp=a[i];a[i]=a[N-j-1];a[N-i-1]=temp;}printf("\nsortedarray:\n");for(i=0;i<N;i++)printf(“%4d”,a[i]);【程序41]題目:學(xué)習(xí)static定義靜態(tài)變量得用法1、程序分析:2、程序源代碼:#inc1ude"stdio.h”varfunc()(intvar=0;staticintstaticvar=0;printf(n\40:varequa1%d\n",var);print*”\40:staticvarequal%d\n",static_var);printf("\n");var++;static_var++;)voidmain(){inti;for(i=0;i<3;i++)varfunc();)【程序42]題目:學(xué)習(xí)使用auto定義變量得用法1、程序分析:2、程序源代碼:#include"stdi0、h"main(){inti,num;num=2;for(i=0;i<3;i++){printf("\40:Thenumequa1%d\n”,num);num++;(aut0intnum=l;printf("\40:Theinternalblocknumequal%d\n",num);num++;)}}【程序43]題目:學(xué)習(xí)使用static得另ー用法。1、程序分析:2、程序源代碼:#include"stdio>h”main()(intnum;num=2;for(i=0;i<3;i++)printf("\40:Thenumequa1%d\n”,num);num++;{staticintnum=l;printf(w\40:Theinternalblocknumequal%d\n”,num);num++;})}【程序44]題目:學(xué)習(xí)使用external得用法。1、程序分析:2、程序源代碼:#inc1ude"stdi〇、h"inta,b,c;voidadd(){inta;a=3;c=a+b;)voidmain(){a=b=4;add();printf("Theva1ueofcisequalto%d\n",c);【程序45]題目:學(xué)習(xí)使用register定義變量得方法。1、程序分析:2、程序源代碼:voidmain()(registerinti;inttmp=0;for(i=l;i<=100;i++)tmp+=i;printf("Thesumis%dtmp);【程序46]題目:宏#define命令練習(xí)(1)1、程序分析:2、程序源代碼:includeMstdio、h"defineTRUE1defineFALSE0defineSQ(x)(x)*(x)voidmain()intnum;intagain=l;printf("\40:Programwi1Istopifinputva1ue1essthan50、、n");while(again)(printf("\40:Pleaseinputnumber==>");scanf("%d,&num);printf("\40:Thesquareforthisnumberis%d\n",SQ(num));if(num>=50)again=103fTRUE;elseagain=FALSE;})—ーーー——————ーー———————————————一————————一————一—一——————————————————【程序47]題目:宏#define命令練習(xí)(2)1、程序分析:2、程序源代碼:#indude"stdio、h"#defineexchange(a,b){\/?宏定義中允許包含兩道衣裳命令得情形,此時必須在最右邊加上"\"*/intt;\t=a;\a=b;\b=t;\)voidmain(void){intx=10;inty=2O;printf("x二%d; y=%d\n",x,y);exchange(xzy);printf("x=%d;y二%d\n”,x,y);)———————— - :————―ーーーーーーー—ーーーー~~ーー——ーーーーー【程序48]題目:宏祥define命令練習(xí)(3)1、程序分析:2、程序源代碼:#defineLAG>defineSMA<defineEQ==includeMstdio、h"voidmain(){inti=10;intj二20;if(iLAGj)printf(M\40:%dIargerthan%d\n°,i,j);eIseif(iEQj)printf("\40:%dequalto%d\n",i,j);eIseif(iSMAj)printf("\40:%dsmaIlerthan%d\n",i,j);elseprintf("\40:Nosuchvalue、\n");)【程序49]題目:#if#ifdef與#ifndef得綜合應(yīng)用。程序分析:2、程序源代碼:include99stdi〇、h"defineMAXdefineMAXIMUM(x,y)(x>y)?x:y#defineMINIMUM(x,y)(x>y)?y:xvoidmain(){inta=10,b=20;ifdefMAXprintf("\40:Thelargeroneis%d\n",MAXIMUM(a,b));#e1seprintf("\40:Theloweroneis%d\n",MINIMUM(a,b));#endif#ifndefMINprintf("\40:The1oweroneis%d\n",MINIMUM(a,b));#elseprintf("\40:Thelargeroneis%d\nw,MAXIMUM(a,b));#endif#undefMAX#ifdefMAXprintf("\40:The1argeroneis%d\n[MAXIMUM(a,b));#elseprintf(>>\40:Theloweroneis%d\n”,MINIMUM(a,b));#endifdefineMINifndefMINprintf("\40:Theloweroneis%d\n",MINIMUM(a,b));eIseprintf(u\40:The1argeroneis%d\n',,MAXIMUM(a,b));#endif}【程序50]題目:#indude得應(yīng)用練習(xí)1、程序分析:2、程序源代碼:test、h文件如下:defineLAG>#defineSMA<defineEQ==include”test、h”/?ー個新文件50、c?包含test、h*/include”stdio、hnvoidmain(){inti=10;intj=2O;if(iLAGj)printf(\40:%d1argerthan%d\n",iJ);elseif(iEQj)printf("\40:%dequalto%d\n'*,i,j);elseif(iSMAj)printf("\40:%dsmal1erthan%d\n”,i,j);elseprintf("\40:Nosuchvalue、\n");)【程序51]題目:學(xué)習(xí)使用按位與&.1、程序分析:0&0=0;0&1=0;1&0=0;1&1=12、程序源代碼:#include”stdio、h”main(){inta,b;a=077;b=a&3;printf("\40:Thea&b(decimaI)is%d\n",b);b&=7;printf("\40:Thea&b(decimaI)is%d\n",b);}ーーー———ーーー—ーー—ーー ーーーーーーーー ーー—一 一 ーーーーーー ーー ーーーー ーー 一ーーー【程序52]題目:學(xué)習(xí)使用按位或I。1、程序分析:0|0=0;0|1=1;1|0=1;1|1=12,程序源代碼:#inelude"stdi。、h”main()(inta,b;a=077;b=aI3;printf("\40:Thea&b(decima1)is%d\n",b);bI=7;printf("\40:Thea&b(decima1)is%d\n",b);)【程序53]題目:學(xué)習(xí)使用按位異或“。1、程序分析:。ao=o;0”1=1;1"〇=1;i"i=o2、程序源代碼:#inc1ude"stdi〇、hmain()inta,b;a=077;b=aA3;printf("\40:Thea&b(decimal)is%d\n",b);bA=7;printf("\40:Thea&b(decimal)is%d\n",b);}【程序54]題目:取一個整數(shù)a從右端開始得4~7位.程序分析:可以這樣考慮:(1)先使a右移4位.(2)設(shè)置ー個低4位全為1,其余全為。得數(shù)??捎?("'?0<<4)⑶將上面二者進(jìn)行&運(yùn)算。2、程序源代碼:main()(unsigneda,bfad;scant("%〇”,&a);b=a>>4;c=~(?OVV4);d=b&c;printf(*'%o\n%o\n",a,d);【程序55]題目:學(xué)習(xí)使用按位取反?.1、程序分析:?0=1;?1=0;2、程序源代碼:include"stdio,h”main()(inta,b;a=234;b=~a;printf("\40:Thea's1plement(decimal)is%d\n",b);a=~a;printf("\40:Thea's1plement(hexidecimal)is%x\n",a);)【程序56]題目:畫圖,學(xué)用circ1e畫圓形。1,程序分析:2,程?103f/*circ1e*/#inc1ude"graphics、h"main(){intdrivecmode,i;floatj=l,k=1;driver=VGA;mode=VGAHI;initgraph(&driver,&mode,”");setbkcolor(YELLOW);for(i=0;i(=25;i++){setcolor(8);circle(310,250,k);k=k+j;j=j+0、3;))【程序57]題目:畫圖,學(xué)用Iine畫直線。1、程序分析:2、程序源代碼:#include"graphics、h"main(){intdriver,mode,i;floatx0,y0zyl,x1;floatj=12,k;driver=VGA;mode=VGAHl;initgraph(&driverz&mode,"”);setbkcoIor(GREEN);x0=263;y0=263;yl=275;xl=275;for(i=O;i<=18;i++)(setcolor(5);line(xO,yO,xO,yl);xO=xO一5;yO=y0—5;xl=x1+5;yl=y1+5;j=j+10;)x0=263;yl=275;y0=263;for(i=0;i<=20;i++)(setcolor(5);line(x0,yO,xO,y1);x0=x0+5;y0=y0+5;yl=y1-5;)}題目:畫圖,學(xué)用rectangle畫方形。1、程序分析:利用for循環(huán)控制100—999個數(shù),每個數(shù)分解出個位,十位,百位。2、程序源代碼:#inc1ude"graphics>h"main(){intxO,y0,y1,xl,driver,mode,i;driver=VGA;mode=VGAHI;initgraph(&driver,&mode,”");setbkcoIor(YELLOW);x0=263;y0=263;y1=275;xl=275;for(i=0;i<=l8;i++){setco1or(1);rectang1e(x0,yO,x1,yl);x0=x0-5;y0=y0-5;x1=xl+5;yl=y1+5;)settextstyle(DEFAULT_FON7;HORIZ_DIR,2);outtextxy(150,40,"Howbeautifulitis!");line(130,60,480,60);setc〇!or(2);circIe(269,269,137);【程序59]題目:畫圖,綜合例子。1、程序分析:2、程序源代碼:definePAI3、!415926defineB0>809inc1ude“graphics、h"#inc1ude"math、h”main()(inti,j,k,x0,y0,x,y,driver,mode;floata:driver=CGA;mode=CGACO;initgraph(&driverz&mode,;setcolor(3);setbkcolor(GREEN);x0=150;y0=100;circ1e(xO,yO,10);circle(xO,yO,2O);circIe(xO,y0,50);for(i=0;i<16;i++)(a=(2*PAI/16)*i;x=ceil(x0+48*cos(a));y=ceil(y0+48*sin(a)*B);setcolor(2);line(xO,yO,x,y);}setcolor(3);cire1e(x0,y0,60);/*Make0timenormalsizeletters*/settextstyle(DEFAULT_FONT,HORIZ_DIRQ);outtextxy(10,170,°pressakey");getch();setfil1style(HATCH_FILL,YELLOW);fIoodfil1(202,100,WHITE);getch();for(k=0;k<=500;k++)(setc〇!or(3);for(i=0;i<=16;i++)(a=(2*PAI/16)*i+(2?PAI/180)*k;x=cei1(x0+48*cos(a));y=cei1(y0+48+sin(a)*B);setcolor(2);Iine(x0,yO,x,y);)for(j=1;j(=50;j++)(a=(2*PAl/16)?i+(2*PAI/180)*k?l;x=ceil(x0+48*cos(a));y=ceil(y0+48*sin(a)*B);1ine(xO,y〇,x,y);)restored!mode();)【程序60]題目:畫圖,綜合例子。1、程序分析:2、程序源代碼:#include”graphics、h"#defineLEFT0defineTOP0defineRIGHT639defineBOTTOM479defineLINES400defineMAXCOLOR15main(){intdriver,mode,error;intxl,yl;intx2,y2;intdxl,dyl,dx2,dy2,i=1;intcount=0;intc〇1or=0;driver=VGA;mode=VGAHI;initgraph(&driverz&mode>99*');xl=x2=y1=y2=10;dxl=dyl=2;dx2=dy2=3;while(!kbhit()){line(xl,y1,x2,y2);x1+=dxl;y1+=dyl;x2+=dx2;y2+dy2;if(x1<=LEFT|Ixl>=RIGHT)dxl=—dxl;if(yl<=TOPI|yl>=BOTT0M)dyl=—dy1;if(x2<=LEFTI|x2)=RIGHT)dx2=?dx2;if(y2(=TOPI|y2>=BOTTOM)dy2=一dy2;if(++count>LINES){setcolor(c〇1or);color=(color>=MAXCOLOR)?0:++c〇!or;dosegraph();)【程序61]題目:打印出楊輝三角形(要求打印出10行如下圖)1、程序分析:11112 1133114 641151010512,程序源代碼:main(){inti,j;inta[10][10]sprintf("\n");for(i=0;i<10;i++){a[i][0]=1;a[i][i]=l;}for(i=2;i(10;i++)for(j=l;j(i;j++)a[i][j]=a[i-l][j-1]+a[i-l][j];for(i=0ji<l0;i++){for(j=0;j<=i;j++)printf("%5d",a[i][j]);printf("\n");)【程序62]題目:學(xué)習(xí)putpixe!畫點(diǎn)。1、程序分析:2、程序源代碼:103f#inc1ude”stdio、h”#includengraphics、h”main(){inti,j,driver=VGA,mode=VGAHI;initgraph(&driver,&mode,”'setbkcolor(YELLOW);for(i=50;j<=230;i+=20)for(j=50;j<=230;j++)putpixe1(i,j,1);for(j=50;j<=230;j+=20)for(i=50;i<=230;i++)putpixel(ij,1);}【程序63]題目:畫橢圓ellipse1、程序分析:2、程序源代碼:include"stdio^h”#inc1ude“graphics、h"include"conio、h”main(){intx=360,y=160,driver=VGA,mode=VGAHI;intnum=20,i;inttop,bottom;initgraph(&driver,&mode,"");top=y-30;bottom=y-30;for(i=0;i<num;i++)(ellipse(250,250,0,360,top,bottom);top—=5:bottom+=5;}getch();)【程序64]題目:利用ellipseandrectang1e畫圖。1、程序分析:2、程序源代碼:incIudevstdio>h”include"graphich”#include"coni〇、h"main()(intdriver=VGA,mode=VGAHI;inti,num=l5,top=50;intleft=20,right=50;initgraph(&driver,&mode,ffff);for(i=0;i(num;i++){el1ipse(250,250,0,360,right,Ieft);ellipse(250,250,0,360,20,top);rectangle(20—2*i,20—2力,10*(i+2),l0*(i+2));right+=5;Ieft+=5;top+=10;)getch();【程序65]題目:ー個最優(yōu)美得圖案。1、程序分析:2、程序源代碼:#include“graphics、h"#includenmath.h"#include"dos>h"includeHconio、h”incIude"stdlib、h"include"stdio>h"includeMstdarg、h"defineMAXPTS15definePI3>1415926structPTS{intx,y;};doubleAspectRatio=0^85;voidLineToDemofvoid)(structviewporttypevp;structPTSpoints[MAXPTS];inti,j,h,w,xcenter,ycenter;intradius,angIe,step;doublerads;printf("MoveTo/LineToDemonstration" );getviewsettings(&vp);h=vp、bottom?vp、top;w=vp、right?vp、Ieft;xcenter=w/2; /*Determjnethecenterofcircle*/ycenter=h/2;radius=(h-30)/(AspectRatio*2);step=360/MAXPTS;/*Determine#ofincrements*/angle=0;/*Beginatzerodegrees*/for(i=0;i<MAXPT

溫馨提示

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

評論

0/150

提交評論