經(jīng)典C語(yǔ)言源程序

經(jīng)典C語(yǔ)言源程序

ID:83040863

大?。?9.15 KB

頁(yè)數(shù):53頁(yè)

時(shí)間:2023-07-04

上傳者:無(wú)敵小子
經(jīng)典C語(yǔ)言源程序_第1頁(yè)
經(jīng)典C語(yǔ)言源程序_第2頁(yè)
經(jīng)典C語(yǔ)言源程序_第3頁(yè)
經(jīng)典C語(yǔ)言源程序_第4頁(yè)
經(jīng)典C語(yǔ)言源程序_第5頁(yè)
經(jīng)典C語(yǔ)言源程序_第6頁(yè)
經(jīng)典C語(yǔ)言源程序_第7頁(yè)
經(jīng)典C語(yǔ)言源程序_第8頁(yè)
經(jīng)典C語(yǔ)言源程序_第9頁(yè)
經(jīng)典C語(yǔ)言源程序_第10頁(yè)
資源描述:

《經(jīng)典C語(yǔ)言源程序》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1經(jīng)典C源程序100例【程序1】題目:有1、2、3、4個(gè)數(shù)字,能組成多少個(gè)互不相同且無(wú)重或數(shù)字的三位數(shù)?都是多少?1.程序分析:可填在百位、十位、個(gè)位的數(shù)字都是1、2、3、4o組成所有的排列后再去掉不滿足條件的排列。2.程序源代碼:main()(inti,j,k;printf("

1");for(i=l;i<5;i++)/*以下為三重循環(huán)*/for(j=l;j<5;j++)for(k=l;k<5;k++){if(i!=k&&i!=j&&j!=k)/*確保i、j、k三位互不相同*/printf("%d,%d,%d

2"/i,j,k);)【程序2】題目:企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利潤(rùn)提成。利潤(rùn)(I)低于或等于10萬(wàn)元時(shí),獎(jiǎng)金可提10%;利潤(rùn)高于10萬(wàn)元,低于20萬(wàn)元時(shí),低于10萬(wàn)元的部分按10%提成,高于10萬(wàn)元的部分,可可提成7.5%;20萬(wàn)到40萬(wàn)之間時(shí),高于20萬(wàn)元的部分,可提成5%;40萬(wàn)到60萬(wàn)之間時(shí)高于40萬(wàn)元的部分,可提成3%;60萬(wàn)到100萬(wàn)之間時(shí),高于60萬(wàn)元的部分,可提成1.5%,高于100萬(wàn)元時(shí),超過(guò)100萬(wàn)元的部分按1%提成,從鍵盤(pán)輸入當(dāng)月利潤(rùn)I,求應(yīng)發(fā)放獎(jiǎng)金總數(shù)?1.程序分析:請(qǐng)利用數(shù)軸來(lái)分界,定位。注意定義時(shí)需把獎(jiǎng)金定義成長(zhǎng)整型。2.程序源代碼:main()(longinti;intbonusl,bonus2,bonus4,bonus6,bonusl0,bonus;scanf("%ld",&i);bonusl=100000*0.1;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.1;elseif(i<=200000)bonus=bonusl+(i-100000)*0.075;elseif(i<=400000)bonus=bonus2+(i-200000)*0.05;elseif(i<=600000)bonus=bonus4+(i-400000)*0.03;

3elseif(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonusl0+(i-1000000)*0.01;printf(,,bonus=%d"/bonus);}【程序3】題目:一個(gè)整數(shù),它加上100后是一個(gè)完全平方數(shù),再加上168又是一個(gè)完全平方數(shù),請(qǐng)問(wèn)該數(shù)是多少?1.程序分析:在10萬(wàn)以內(nèi)判斷,先將該數(shù)加上100后再開(kāi)方,再將該數(shù)加上268后再開(kāi)方,如果開(kāi)方后的結(jié)果滿足如下條件,即是結(jié)果。請(qǐng)看具體分析:2.程序源代碼:include"math.h"main(){longinti,x,y,z;for(i=l;i<100000;i++){x=sqrt(i+100);/*x為加上100后開(kāi)方后的結(jié)果*/y=sqrt(i+268);/*y為再加上168后開(kāi)方后的結(jié)果*/if(x*x==i+100&&y*y==i+268)/*如果-個(gè)數(shù)的平方根的平方等于該數(shù),這說(shuō)明此數(shù)是完全平方數(shù)*/printf("

4%ld

5",i);}|【程序4】題目:輸入某年某月某日,判斷這一天是這一年的第幾天?1.程序分析:以3月5日為例,應(yīng)該先把前兩個(gè)月的加起來(lái),然后再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大于3時(shí)需考慮多加一天。2.程序源代碼:main(){intday,month,yeai;sum,leap;printf("

6pleaseinputyear,month,day\rT);scanf("%d,%d,%cT,&year,&month,&day);switch(month)/*先計(jì)算某月以前月份的總天數(shù)*/{casel:sum=0;break;case2:sum=31;break;

7case3:sum=59;break;case4:sum=90;break;case5:sum=120;break;case6:sum=151;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;default:printf("dataerror");break;}sum=sum+day;/*再加上某天的天數(shù)*/if(year%400==0||(year%4==0&&year%100!=0))/*判斷是不是閏年*/leap=l;elseleap=O;if(leap==l&&month>2)/*如果是閏年且月份大于2,總天數(shù)應(yīng)該加?天*/sum++;printf("ltisthe%dthday.”,sum);}【程序5】題目:輸入三個(gè)整數(shù)x,y,z,請(qǐng)把這三個(gè)數(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("smalltobig:%d%d%d

8",x,y,z);|【程序6】題目:用*號(hào)輸出字母C的圖案。1.程序分析:可先用'*'號(hào)在紙上寫(xiě)出字母C,再分行輸出。2.程序源代碼:include"stdio.h"main()

9{printf("HelloC-world!

10");printf("?***

11H);printf("*

12");printf("?

13");printf("?***

14");}【程序7】題目:輸出特殊圖案,請(qǐng)?jiān)赾環(huán)境中運(yùn)行,看一看,VeryBeautiful!1.程序分析:字符共有256個(gè)。不同字符,圖形不一樣。2.程序源代碼:#include"stdio.h"main()(char3=176^=219;printf("%c%c%c%c%c

15"/b/a/a/a/b);printf("%c%c%c%c%c

16",a/b,a/b/a);printf(,'%c%c%c%c%c

17"/a/a/b/a/a);printf("%c%c%c%c%c

18"/a/b/a/b/a);printf("%c%c%c%c%c

19"/b/a/a/a/b);}【程序8】題目:輸出9*9口訣。1.程序分析:分行與列考慮,共9行9歹lj,i控制行,j控制列。2.程序源代碼:#include"stdio.h"main()(intij,result;printf("

20");for(i=l;i<10;i++){for(j=l;j<10;j++)(result=i*j;printf(',%d*%d=%-3d"/i/j/result);/*-3d表示左對(duì)齊,占3位*/}printf("

21");/*每一行后換行*/}}【程序9】題目:要求輸出國(guó)際象棋棋盤(pán)。

221.程序分析:用i控制行,j來(lái)控制列,根據(jù)i+j的和的變化來(lái)控制輸出黑方格,還是白方格。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("%c%c",219,219);elseprintf("printf("

23");}|【程序101題目:打印樓梯,同時(shí)在樓梯上方打印兩個(gè)笑臉。1.程序分析:用i控制行,j來(lái)控制列,j根據(jù)i的變化來(lái)控制輸出黑方格的個(gè)數(shù)。2.程序源代碼:tfindude"stdio.h"main()(inti,j;printf("\l\l

24");/*輸出兩個(gè)笑臉*/for(i=l;i

25");|}【程序111題目:古典問(wèn)題:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長(zhǎng)到第三個(gè)月后每個(gè)月又生一對(duì)兔子,假如兔子都不死,問(wèn)每個(gè)月的兔子總數(shù)為多少?1.程序分析:兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,21....2.程序源代碼:main()inti;fl=f2=l;for(i=l;i<=20;i++){printf("%12ld%12ld"/fl/f2);

26if(i%2==0)printf("

27");/*控制輸出,每行四個(gè)*/fl=fl+f2;/*前兩個(gè)月加起來(lái)賦值給第三個(gè)月*/f2=fl+f2;/*前兩個(gè)月加起來(lái)賦值給第三個(gè)月*/}}【程序12]題目:判斷101-200之間有多少個(gè)素?cái)?shù),并輸出所有素?cái)?shù)。1.程序分析:判斷素?cái)?shù)的方法:用一個(gè)數(shù)分別去除2到sqrt(這個(gè)數(shù)),如果能被整除,則表明此數(shù)不是素?cái)?shù),反之是素?cái)?shù)。2.程序源代碼:include"math.h"main()(intm/i/k/h=0Jeap=l;printf("

28");for(m=101;m<=200;m++){k=sqrt(m+l);for(i=2;i<=k;i++)if(m%i==0){leap=0;break;}if(leap){printf("%-4d"/m);h++;if(h%10==0)printf("

29");)leap=l;}printf("

30Thetotalis%d",h);}【程序13]題目:打印出所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個(gè)“水仙花數(shù)”,因?yàn)?53=1的三次方+5的三次方+3的三次方。1.程序分析:利用for循環(huán)控制100-999個(gè)數(shù),每個(gè)數(shù)分解出個(gè)位,十位,百位。2.程序源代碼:main()printf(,Hwaterflower'numberis:");for(n=100;n<1000;n++)(i=n/100;/*分解出百位*/j=n/10%10;/*分解出十位*/

31k=n%10;/*分解出個(gè)位*/if(i*100+j*10+k==i*i*i+j*j*j+k*k*k){printf("%-5d",n);}|printf("

32");}【程序14]題目:將一個(gè)正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。程序分析:對(duì)n進(jìn)行分解質(zhì)因數(shù),應(yīng)先找到一個(gè)最小的質(zhì)數(shù)k,然后按下述步驟完成:⑴如果這個(gè)質(zhì)數(shù)恰等于n,則說(shuō)明分解質(zhì)因數(shù)的過(guò)程已經(jīng)結(jié)束,打印出即可。(2)如果n<>k,但n能被k整除,則應(yīng)打印出k的值,并用n除以k的商,作為新的正整數(shù)你n,重復(fù)執(zhí)行第一步。⑶如果n不能被k整除,則用k+1作為k的值,重復(fù)執(zhí)行第一步。1.程序源代碼:/*zhengintisdividedyinshu*/main()(intn,i;printf("

33pleaseinputanumberin'');scanf("%d",&n);printf("%d=",n);for(i=2;i<=n;i++)(while(n!=i){if(n%i==O){printf("%d*",i);n=n/i;)elsebreak;【程序15]題目:利用條件運(yùn)算符的嵌套來(lái)完成此題:學(xué)習(xí)成績(jī)>=90分的同學(xué)用A表示,60-89分之間的用B表示,60分以下的用C表示。1.程序分析:(a>b)?a:b這是條件運(yùn)算符的基本例子。2.程序源代碼:

34main(){intscore;chargrade;printf("pleaseinputascore

35");scanf("%d,&score);grade=score>=90?,A':(score>=60?'B,:'C,);printf("%dbelongsto%c”,score,grade);【程序16]題目:輸入兩個(gè)正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。1.程序分析:利用輾除法。2.程序源代碼:main()(inta,b,numl,num2,temp;printf("pleaseinputtwonumbers:

36n);scanf("%d,%cT,&numl,&num2);if(numl{temp=numl;numl=num2;num2=temp;}a=numl;b=num2;while(b!=0)/*利用輾除法,直到b為0為止*/{temp=a%b;a=b;b=temp;}printf("gongyueshu:%d

37",a);printf("gongbeishu:%d

38"/numl*num2/a);}【程序17]題目:輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字和其它字符的個(gè)數(shù)。1.程序分析:利用while語(yǔ)句,條件為輸入的字符不為V.2.程序源代碼:include“stdio.h”main(){charc;intletters=0/space=0/digit=0/others=0;printf("pleaseinputsomecharacters

39");while((c=getchar())!='

40')

41{if(c>='a'&&c<='z'||c>='A'&&c<='Z')letters++;elseif(c==*')space++;elseif(c>='0'&&c<='9')digit++;elseothers++;}printf("allinall:char=%dspace=%ddigit=%dothers=%d

42"Jetters/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ù)相加有鍵盤(pán)控制。1.程序分析:關(guān)鍵是計(jì)算出每一項(xiàng)的值。2.程序源代碼:main()(inta,n,count=l;longintsn=0ztn=0;printf("pleaseinputaandn

43'*);scanf("%d,%d",&a,&n);printf("a=%d/n=%d

44"/a/n);while(count<=n)|tn=tn+a;sn=sn+tn;a=a*10;++count;printf("a+aa+...=%ld

45",sn);}【程序19]題目:一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為“完數(shù)”。例如6=1+2+3.編程找出1000以內(nèi)的所有完數(shù)。1.程序分析:請(qǐng)參照程序(-上頁(yè)程序14.2.程序源代碼:main()(staticintk[10];inti,j,n,s;

46for(j=2;j<1000;j++){n=-l;s=j;for(i=l;i{if((j%i)==0){n++;s=s-i;k[n]=i;if(s==0){printf("%disawanshu",j);for(i=0;iprintf("%d,",k[i]);printf("%d

47",k[n]);}|}【程序20]題目:一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地時(shí),共經(jīng)過(guò)多少米?第10次反彈多高?1.程序分析:見(jiàn)下面注釋2.程序源代碼:main()(floatsn=100.0,hn=sn/2;intn;for(n=2;n<=10;n++)sn=sn+2*hn;/*第n次落地時(shí)共經(jīng)過(guò)的米數(shù)*/hn=hn/2;/*第n次反跳高度*/}printf("thetotalofroadis%f

48",sn);printf("thetenthis%fmeter

49",hn);}【程序21]題目:猴子吃桃問(wèn)題:猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不癮:,又多吃了一個(gè)第二天早上又將剩卜的桃子吃掉一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下的一半零一個(gè)。到第10天早上想再吃時(shí),見(jiàn)只剩下一個(gè)桃子了。求第一天共摘了多少。1.程序分析:采取逆向思維的方法,從后往前推斷。2.程序源代碼:main()

50(intday,xl,x2;day=9;x2=l;while(day>0){xl=(x2+l)*2;/*第一天的桃子數(shù)是第2天桃子數(shù)加1后的2倍*/x2=xl;day-;}printf("thetotalis%d

51",xl);【程序22]題目:兩個(gè)乒乓球隊(duì)進(jìn)行比賽,各出三人。甲隊(duì)為a,b,c三人,乙隊(duì)為x,y,z三人。已抽簽決定比賽名單。有人向隊(duì)員打聽(tīng)比賽的名單。a說(shuō)他不和x比,c說(shuō)他不和x,z比,請(qǐng)編程序找出三隊(duì)賽手的名單。1.程序分析:判斷素?cái)?shù)的方法:用一個(gè)數(shù)分別去除2到sqrt(這個(gè)數(shù)),如果能被整除,則表明此數(shù)不是素?cái)?shù),反之是素?cái)?shù)。2.程序源代碼:main()(chari,j,k;/*i是a的對(duì)手,j是b的對(duì)手,k是c的對(duì)手*/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(*'orderisa-%c\tb-%c\tc-%c

52"/ij/k);)}}}【程序23]題目:打印出如下圖案(菱形)************

53****1.程序分析:先把圖形分成兩部分來(lái)看待,前四行一個(gè)規(guī)律,后三行一個(gè)規(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=0;k<=2*i;k++)printf。*");printf("

54");)for(i=0;i<=2;i++)|for(j=0;j<=i;j++)printf("");for(k=0;k<=4-2*i;k++)print"'*");printf("

55");)|【程序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.程序源代碼: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)鍵,請(qǐng)讀者猜猜t的作用*/}printf("sumis%9.6f

56",s);}【程序25]題目:求1+2!+3!+...+20!的和

571.程序分析:此程序只是把累加變成了累乘。2.程序源代碼:main(){floatn,s=0,t=l;for(n=l;n<=20;n++){t*=n;s+=t;|printf("l+2!+3!...+20!=%e

58",s);【程序26]題目:利用遞歸方法求5!。1.程序分析:遞歸公式:fn=fn_l*4!2.程序源代碼:include"stdio.h"main()(inti;intfact();for(i=0;i<5;i++)printf("\40:%d!=%d

59,,/i/fact(i));}intfact(j)intj;intsum;if(j==O)sum=l;elsesum=j*fact(j-l);returnsum;}【程序27]題目:利用遞歸函數(shù)調(diào)用方式,將所輸入的5個(gè)字符,以相反順序打印出來(lái)。1.程序分析:2.程序源代碼:include"stdio.h"main()(inti=5;

60voidpalin(intn);printf("\40:");palin{i);printf("

61");|voidpalin(n)intn;(charnext;if(n<=l)(next=getchar();printf("

62\O:");putchar(next);|else(next=getchar();palin(n-l);putchar(next);||【程序28]題目:有5個(gè)人坐在一起,問(wèn)第五個(gè)人多少歲?他說(shuō)比第4個(gè)人大2歲。問(wèn)第4個(gè)人歲數(shù),他說(shuō)比第3個(gè)人大2歲。問(wèn)第三個(gè)人,又說(shuō)比第2人大兩歲。問(wèn)第2個(gè)人,說(shuō)比第一個(gè)人大兩歲。最后問(wèn)第一個(gè)人,他說(shuō)是10歲。請(qǐng)問(wèn)第五個(gè)人多大?1.程序分析:利用遞歸的方法,遞歸分為回推和遞推兩個(gè)階段。要想知道第五個(gè)人歲數(shù),需知道第四人的歲數(shù),依次類推,推到第一人(10歲),再往回推。2.程序源代碼:age(n)intn;{intc;if(n==l)c=10;elsec=age(n-l)+2;return?;}main(){printf("%d",age(5));

63【程序29]題目:給一個(gè)不多于5位的正整數(shù),要求:一、求它是幾位數(shù),二、逆序打印出各位數(shù)字。1.程序分析:學(xué)會(huì)分解出每一位數(shù),如下解釋:(這里是一種簡(jiǎn)單的算法,師專數(shù)002班趙鑫提供)2.程序源代碼:main()(longa,b,c,d,e,x;scanf("%ld",&x);a=x/10000;/*分解出萬(wàn)位*/b=x%10000/1000;/*分解出千位*/c=x%1000/100;/*分解出百位*/d=x%100/10;/*分解出十位*/e=x%10;/*分解出個(gè)位*/if(a!=0)printf("thereare5,%ld%ld%ld%ld%ld

64",e,d,c,b,a);elseif(b!=0)printf("thereare4,%ld%ld%ld%ld

65",e,d,c,b);elseif(c!=0)printf("thereare3,%ld%ld%ld

66",e,d,c);elseif(d!=0)printf("thereare2,%ld%ld

67",e,d);elseif(e!=0)printf("therearel,%ld

68",e);|【程序30]題目:一個(gè)5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個(gè)位與萬(wàn)位相同,十位與千位相同。1.程序分析:同29例2.程序源代碼:main()longge,shi,qian,wan,x;scanf("%ld,&x);wan=x/10000;qian=x%10000/1000;shi=x%100/10;ge=x%10;if(ge==wan&&shi==qian)/*個(gè)位等于萬(wàn)位并且十位等于千位*/printf("thisnumberisahuiwen

69");elseprintf("thisnumberisnotahuiwen

70");}程序31】題目:請(qǐng)輸入星期幾的第一個(gè)字母來(lái)判斷一下是星期幾,如果第一個(gè)字母一樣,則繼續(xù)判斷第二個(gè)字母。

711.程序分析:用情況語(yǔ)句比較好,如果第一個(gè)字母一樣,則判斷用情況語(yǔ)句或if語(yǔ)句判斷第二個(gè)字母。2?程序源代碼:#includevoidmain()|charletter;printf(Hpleaseinputthefirstletterofsomeday

72H);while((letter二getch())!=Y)/*當(dāng)所按字母為Y時(shí)才結(jié)束*/{switch(letter){case'S,:printf(,'pleaseinputsecondletter

73");if((letter=getch())=="a')printf("saturday

74");elseif((letter=getch())=='u*)printf("sunday

75");elseprintf("dataerror

76");break;case'F'lprintfC'fridayXn'^break;case'M':printf("monday

77H);break;caseT:printf("pleaseinputsecondletter

78");if((letter=getch())=='u')printf("tuesday

79");elseif((letter=getch())=="h')printf(Hthursday

80");elseprintf("dataerror

81");break;case'W':printf("wednesday

82");break;default:printf(Hdataerror

83");|【程序321題目:Pressanykeytochangecolor;doyouwanttotryit.Pleasehurryup!1.程序分析:2.程序源代碼:#includevoidmain(void){intcolor;for(color=0;color<8;color++)(textbackground(color);/*設(shè)置文本的背景顏色*/cprintf("Thisiscolor%d\r

84”,color);cprintf("Pressanykeytocontinue\r

85");getch();/*輸入字符看不見(jiàn)*/

86|【程序33]題目:學(xué)習(xí)gotoxy()與clrscr()函數(shù)1.程序分析:2.程序源代碼:includevoidmain(void)(drscr。;/*清屏函數(shù)*/textbackground(2);gotoxy(lz5);/*定位函數(shù)*/cprintf("Outputatrow5columnl

87");textbackground(3);gotoxy(20z10);cprintf("Outputatrow10column20

88");}【程序34]題目:練習(xí)函數(shù)調(diào)用1.程序分析:2.程序源代碼:#includevoidhello_world(void)printfC'Hello,world!

89");voidthree_hellos(void)(intcounter;for(counter=1;counter<=3;counter++)hello_world();/*調(diào)用此函數(shù)*/}voidmain(void){three_hellos();/*調(diào)用此函數(shù)*/}【程序35]題目:文本顏色設(shè)置1.程序分析:2.程序源代碼:includevoidmain(void)(intcolor;for(color=1;color<16;color++)

90(textcolor(color);/*設(shè)置文本顏色*/cprintf("Thisiscolor%d\r

91"/color);}textcolor(128+15);cprintf("Thisisblinking\r

92");|【程序36]題目:求100之內(nèi)的素?cái)?shù)1.程序分析:2.程序源代碼:#includeinclude,'math.h"#defineN101main()(intij,line,a[N];for(i=2;i

93");for(i=2Jine=0;i

94");line=O;})}【程序37]題目:對(duì)10個(gè)數(shù)進(jìn)行排序1.程序分析:可以利用選擇法,即從后9個(gè)比較過(guò)程中,選擇一個(gè)最小的與第一個(gè)元素交換,下次類推,即用第二個(gè)元素與后8個(gè)進(jìn)行比較,并進(jìn)行交換。2.程序源代碼:#defineN10main(){inti,j,min,tem,a[N];/*inputdata*/printf("pleaseinputtennum:

95");for(i=0;i

96n);for(i=0;i

97");/*sorttennum*/for(i=0;i

98if(a[min]>a[j])min=j;tem=a[i];a[i]=a[min];a[min]=tem;}/*outputdata*/printf("Aftersorted

99");for(i=0;i

100");for(i=0;i<3;i++)for(j=0;j<3;j++)scanf(“%f”,&a[i][j]);for(i=0;i<3;i++)sum=sum+a[i][i];printf("duijiaoxianheis%6.2f",sum);【程序39]題目:有一個(gè)已經(jīng)排好序的數(shù)組?,F(xiàn)輸入一個(gè)數(shù),要求按原來(lái)的規(guī)律將它插入數(shù)組中。1.程序分析:首先判斷此數(shù)是否大于最后一個(gè)數(shù),然后再考慮插入中間的數(shù)的情況,插入后此元素之后的數(shù),依次后移一個(gè)位置。2.程序源代碼:main()(inta[ll]={l,4,6,9,13,16,19,28,40,100};inttempl/temp2/number/end,ij;printfC'originalarrayis:

101");for(i=0;i<10;i++)printf("%5d",a[i]);printf("

102");printf("insertanewnumber:");scanf("%d”,&number);end=a[9];if(number>end)a[10]=number;else{for(i=0;i<10;i++)

103{if(a[i]>number){templ=a[i];a[i]=number;for(j=i+l;j

104originalarray:

105");for(i=0;i

106sortedarray:

107");for(i=0;i

108b=a&3;printf("\40:Thea&b(decimal)is%d

109"zb);b&=7;printf("\40:Thea&b(decimal)is%d

110”,b);}【程序52]題目:學(xué)習(xí)使用按位或|。L程序分析:0|0=0;0|1=1;1|0=1;1|1=11.程序源代碼:include"stdio.h"main(){inta,b;a=077;b=a|3;printf(H\40:Thea&b(decimal)is%d

111",b);b|=7;printf("\40:Thea&b(decimal)is%d

112",b);【程序53]題目:學(xué)習(xí)使用按位異或人。1.程序分析:0A0=0;OAl=l;lA0=l;lAl=02.程序源代碼:include"stdio.h"main()(inta,b;a=077;b=aA3;printf("\40:Thea&b(decimal)is%d

113",b);bA=7;printf("\40:Thea&b(decimal)is%d

114”,b);【程序54]題目:取一個(gè)整數(shù)a從右端開(kāi)始的4?7位。程序分析:可以這樣考慮:⑴先使a右移4位。⑵設(shè)置一個(gè)低4位全為1,其余全為0的數(shù)??捎?(?0<<4)(3)將上面二者進(jìn)行&運(yùn)算。3.程序源代碼:main()

115{unsigneda,b,c,d;scanf("%o"z&a);b=a?4;c=~(?0<<4);d=b&c;printf("%o

116%o

117”,a,d);【程序55]題目:學(xué)習(xí)使用按位取反一1.程序分析:?0=1;?1=0;2.程序源代碼:include"stdio.h"main()(inta,b;a=234;b=~a;printf("\40:Thea's1complement(decimal)is%d

118",b);a=~a;printf("\40:Thea's1complement(hexidecimal)is%x

119"za);}【程序56]題目:畫(huà)圖,學(xué)用circle畫(huà)圓形。1.程序分析:2.程序源代碼:/?circle*/include"graphics.h"main(){intdriveGmodeJ;floatj=l,k=l;driver=VGA;mode=VGAHI;initgraphf&driveG&mode/'");setbkcolor(YELLOW);for(i=0;i<=25;i++)(setcolor(8);cirde(310,250,k);k=k+j;j=j+0.3;}}

120【程序57]題目:畫(huà)圖,學(xué)用line畫(huà)直線。1.程序分析:2?程序源代碼:include"graphics.h"main(){intdrivecmodej;floatxO,yO,yl,xl;floatj=12,k;driver=VGA;mode=VGAHI;initgraphf&driveG&mode/*");setbkcolor(GREEN);x0=263;y0=263;yl=275;xl=275;for(i=0;i<=18;i++){setcolor(5);line(xO,yO,xO,yl);x0=x0-5;y0=y0-5;xl=xl+5;yl=yl+5;j=j+10;}x0=263;yl=275;y0=263;for(i=0;i<=20;i++)(setcolor(5);line(xO/yO/xO,yl);x0=x0+5;y0=y0+5;yi=yi-5;}【程序58]題目:畫(huà)圖,學(xué)用rectangle畫(huà)方形。1.程序分析:利用for循環(huán)控制100-999個(gè)數(shù),每個(gè)數(shù)分解出個(gè)位,十位,百位。2.程序源代碼:include"graphics.h"main(){intx0,y0,yl,xl,driver,mode,i;driver=VGA;mode=VGAHI;initgraphf&driveG&mode/*");setbkcolor(YELLOW);x0=263;y0=263;yl=275;xl=275;

121for(i=0;i<=18;i++)setcolor(l);rectangle(xOzyOzxlzyl);xO=xO-5;y0=y0-5;xl=xl+5;yl=yl+5;}settextstyle(DEFAULT_FONT/HORIZ_DIR/2);outtextxyflSO^O/Howbeautifulitis!");line(130z60z480/60);setcolor(2);cirde(269,269,137);【程序59]題目:畫(huà)圖,綜合例子。1.程序分析:2.程序源代碼:#definePAI3.1415926#defineB0.809#include"graphics.h"#include"math.h"main(){intiJ,k,xO,yO,x,y,driver;mode;floata;driver=CGA;mode=CGACO;initgraphf&driveG&mode/'");setcolor(3);setbkcolor(GREEN);x0=150;y0=100;circle(x0zy0z10);circle(xO,yO,2O);cirde(xO,yO,5O);for(i=0;i<16;i++)(a=(2*PAI/16)*i;x=ceil(x0+48*cos(a));y=ceil(yO+48*sin(a)*B);setcolor(2);line(x0,y0,x,y);}setcolor⑶;circle(xO,yO,60);/*Make0timenormalsizeletters*/settextstyle(DEFAULT_FONT,HORIZ_DIRzO);

122outtextxy(10,170,"pressakey");getch();setfillstyle(HATCH_FILL/YELLOW);floodfill(202,100,WHITE);getch();for(k=0;k<=500;k++){setcolor(3);for(i=0;i<=16;i++)(a=(2*PAI/16)*i+(2*PAI/180)*k;x=ceil(x0+48*cos(a));y=ceil(yO+48+sin(a)*B);setcolor(2);line(xO/yO/x,y);}for(j=l;j<=50;j++){a=(2*PAI/16)*i+(2*PAI/180)*k-l;x=ceil(x0+48*cos(a));y=ceil(yO+48*sin(a)*B);line(xO,yO,x,y);}}restorecrtmode();)【程序60]題目:畫(huà)圖,綜合例子。1.程序分析:2.程序源代碼:#include"graphics.h"#defineLEFT0#defineTOP0#defineRIGHT639#defineBOTTOM479#defineLINES400#defineMAXCOLOR15main()(intdriver,mode,error;intxlzyl;intx2,y2;intdxl,dyl/dx2/dy2,i=l;intcount=0;intcolor=0;driver=VGA;

123mode=VGAHI;initgraphf&driveG&mode/'");xl=x2=yl=y2=10;dxl=dyl=2;dx2=dy2=3;while(!kbhit())(Iine(xl,yl,x2,y2);xl+=dxl;yl+=dyl;x2+=dx2;y2+dy2;if(xl<=LEFT||xl>=RIGHT)dxl=-dxl;if(yl<=TOP||yl>=BOTTOM)dyl=-dyl;if(x2<=LEFT||x2>=RIGHT)dx2=-dx2;if(y2<=TOP||y2>=BOTTOM)dy2=-dy2;if(++count>LINES){setcolor(color);color=(color>=MAXCOLOR)?0:++color;}}closegraph();}【程序61]題目:打印出楊輝三角形(要求打印出10行如下圖)L程序分析:111121133114641151010512.程序源代碼:main(){inti,j;inta[10][10];printf(n

124");for(i=0;i<10;i++){a[i][O]=l;a[i][i]=l;}for(i=2;i<10;i++)for(j=l;j

125for(i=0;i<10;i++){for(j=0;j<=i;j++)printf("%5d",a[i][j]);printf("

126");}}【程序62]題目:學(xué)習(xí)putpixel畫(huà)點(diǎn)。1.程序分析:2.程序源代碼:include"stdio.h"#include"graphics.h"main()(intijdriver=VGA,mode=VGAHI;initgraphf&driveG&mode/'");setbkcolor(YELLOW);for(i=50;i<=230;i+=20)for(j=50;j<=230;j++)putpixel(ijl);for(j=50;j<=230;j+=20)for(i=50;i<=230;i++)putpixel(ijl);}【程序63]題目:畫(huà)橢圓ellipse1.程序分析:2.程序源代碼:#include"stdio.h"include"graphics.h"#include"conio.h"main()(intx=360/y=160/driver=VGA,mode=VGAHI;intnum=20J;inttop,bottom;initgraph(&driveG&mode/n,);top=y-30;bottom=y-30;for(i=0;i

127【程序64]題目:利用ellipseandrectangle畫(huà)圖。1.程序分析:2.程序源代碼:#include"stdio.h"include"graphics.h"include"conio.h"main()(intdriver=VGA,mode=VGAHI;inti/num=15/top=50;intleft=20zright=50;initgraph(&driveG&mode/'");for(i=0;i

128w=vp.right-vp.left;xcenter=w/2;/*Determinethecenterofcircle*/ycenter=h/2;radius=(h-30)/(AspectRatio*2);step=360/MAXPTS;/*Determine#ofincrements*/angle=0;/*Beginatzerodegrees*/for(i=0;in2)swap(pointerlzpointer2);if(nl>n3)swap(pointerl,pointer3);if(n2>n3)swap(pointer2zpointer3);printf("thesortednumbersare:%d/%d/%d

129"/nl/n2/n3);}swap(plzp2)int*pl/p2;{intp;p=*pl;*pl=*p2;*p2=p;

130【程序67]題目:輸入數(shù)組,最大的與第一個(gè)元素交換,最小的與最后一個(gè)元素交換,輸出數(shù)組。L程序分析:譚浩強(qiáng)的書(shū)中答案有問(wèn)題。1?程序源代碼:main()(intnumber[10];input(number);max_min(number);output(number);)input(number)intnumberflO];{inti;for(i=0;i<9;i++)scanf(”%d,”,&number[i]);scanf(M%d"z&number[9]);max_min(array)intarray[10];{int*max/*min/kj;int*pz*arr_end;arr_end=array+10;max=min=array;for(p=array+l;p*max)max=p;elseif(*p<*min)min=p;k=*max;l=*min;*p=array[O];array[O]=l;l=*p;*p=array[9];array[9]=k;k=*p;return;}output(array)intarray[10];{int*p;for(p=array;p

131",array[9]);|【程序68]題目:有n個(gè)整數(shù),使其前面各數(shù)順序向后移m個(gè)位置,最后m個(gè)數(shù)變成最前面的m個(gè)數(shù)1.程序分析:2.程序源代碼:main()(

132intnumber[20],n/m/i;printf("thetotalnumbersis:");scanf(”%d”,&n);printf("backm:");scanf("%d,&m);for(i=0;iarray;p—)*P=*(P-1);*array=array_end;m-;if(m>0)move(array/n/m);}【程序69]題目:有n個(gè)人圍成一圈,順序排號(hào)。從第一個(gè)人開(kāi)始報(bào)數(shù)(從1到3報(bào)數(shù)),凡報(bào)到3的人退出圈子,問(wèn)最后留下的是原來(lái)第幾號(hào)的那位。1.程序分析:2.程序源代碼:#definenmax50main()(inti,k,m,n,num[nmaxL*p;printf(Hpleaseinputthetotalofnumbers:");scanf(”%d",&n);p=num;for(i=0;i

133if(*(p+i)!=O)k++;if(k==3){*(p+i)=0;k=0;m++;}i++;if(i==n)i=0;}while(*p==0)p++;printf("%disleft

134"/*p);)【程序70]題目:寫(xiě)一個(gè)函數(shù),求一個(gè)字符串的長(zhǎng)度,在main函數(shù)中輸入字符串,并輸出其長(zhǎng)度。1.程序分析:2.程序源代碼:main()|intlen;char*str[20];printf(Hpleaseinputastring:

135");scanf(H%s"zstr);len=length(str);printff'thestringhas%dcharacters."Jen);}length(p)char+p;(intn;n=0;while(*p!='\O')(n++;P++;}returnn;|【程序71]題目:編寫(xiě)input。和。utput()函數(shù)輸入,輸出5個(gè)學(xué)生的數(shù)據(jù)記錄。1.程序分析:2.程序源代碼:#defineN5structstudent{charnum[6];

136charname[8];intscore[4];}stu[N];input(stu)structstudentstu[];{inti,j;for(i=0;i

137pleaseinput%dof%d

138,,J+l/N);printf("num:");scanf(”%s”,stu[i].num);printf("name:");scanf("%s”,stu[i].name);for(j=0;j<3;j++){printf("score%d.",j+l);scanf("%d",&stu[i].score[j]);)printf("

139");})print(stu)structstudentstu[];{inti,j;printf("

140No.NameScolSco2Sco3

141");for(i=0;i

142");}}main()(input();print();}【程序72]題目:創(chuàng)建一個(gè)鏈表。1.程序分析:2.程序源代碼:/*creatalist*/include"stdlib.hM#include"stdio.h"structlist

143{intdata;structlist*next;};typedefstructlistnode;typedefnode*link;voidmain(){linkptchead;intnum,i;ptr=(link)malloc(sizeof(node));ptr=head;printf("pleaseinput5numbers==>

144");for(i=0;i<=4;i++)scanf("%d”,&num);ptr->data=num;ptr->next=(link)malloc(sizeof(node));if(i==4)ptr->next=NULL;elseptr=ptr->next;)ptr=head;while(ptr!=NULL){printf("Thevalueis==>%d

145"/ptr->data);ptr=ptr->next;}}【程序73]題目:反向輸出一個(gè)鏈表。1.程序分析:2.程序源代碼:/*reverseoutputalist*/include"stdlib.h"#include"stdio.h"structlist{intdata;structlist*next;};typedefstructlistnode;typedefnode*link;voidmain(){linkpt^head^ail;intnum,i;tail=(link)malloc(sizeof(node));tail->next=NULL;ptr=tail;printf("

146pleaseinputsdata==>

147");for(i=0;i<=4;i++)

148(scanf("%d”,&num);ptr->data=num;head=(link)malloc(sizeof(node));head->next=ptr;ptr=head;}ptr=ptr->next;while(ptr!=NULL){printf("Thevalueis==>%d

149"/ptr->data);ptr=ptr->next;}}【程序74]題目:連接兩個(gè)鏈表。1.程序分析:2.程序源代碼:include"stdlib.h',include"stdio.h"structlist{intdata;structlist*next;};typedefstructlistnode;typedefnode*link;linkdelete_node(linkpointerjinktmp){if(tmp==NULL)/*deletefirstnode*/returnpointer->next;else{if(tmp->next->next==NULL)/*deletelastnode*/tmp->next=NULL;else/*deletetheothernode*/tmp->next=tmp->next->next;returnpointer;})voidselection_sort(linkpointeointnum){linktmp,btmp;intizmin;for(i=0;idata;btmp=NULL;while(tmp->next){if(min>tmp->next->data){min=tmp->next->data;btmp=tmp;}

150tmp=tmp->next;|printf("\40:%d

151",min);pointer=delete_node(pointer,btmp);linkcreate_list(intarray[]Jntnum){linktmpl,tmp2,pointer;inti;pointer=(link)malloc(sizeof(node));pointer->data=array[0];tmpl=pointer;for(i=l;inext=NULL;tmp2->data=array[i];tmpl->next=tmp2;tmpl=tmpl->next;}returnpointer;}linkconcatenate(linkpointerijinkpointer?){linktmp;tmp=pointerl;while(tmp->next)tmp=tmp->next;tmp->next=pointer2;returnpointeri;}voidmain(void){intarrl[]=B12,8,9,ll};linkptr;ptr=create_list(arrl/5);selection_sort(ptr,5);}【程序75]題目:放松一下,算一道簡(jiǎn)單的題目。1.程序分析:2.程序源代碼:main(){inti,n;for(i=l;i<5;i++){n=0;if(i!=l)n=n+l;

152if(i==3)n=n+l;if(i==4)n=n+l;if(i!=4)n=n+l;if(n==3)printf(Hzhuhaoshideshi:%c',/64+i);}}【程序76]題目:編寫(xiě)一個(gè)函數(shù),輸入n為偶數(shù)時(shí),調(diào)用函數(shù)求l/2+1/4+...+l/n,當(dāng)輸入n為奇數(shù)時(shí),調(diào)用函數(shù)l/l+l/3+...+l/n(利用指針函數(shù))1.程序分析:2.程序源代碼:main()include"stdio.h"main()(floatpeven(),podd(),dcall();floatsum;intn;while(1)(scanf(”%d”,&n);if(n>l)break;}if(n%2==0)(printf("Even=");sum=dcall(pevenzn);}else(printf("Odd=");sum=dcall(podd/n);}printfC%rsum);}floatpeven(intn)floats;

153inti;s=l;for(i=2;i<=n;i+=2)s+=l/(float)i;return(s);)floatpodd(n)intn;{floats;inti;s=0;for(i=l;i<=n;i+=2)s+=l/(float)i;return(s);}floatdcall(fpzn)float(*fp)();intn;(floats;s=(*fp)(n);return(s);|【程序771題目:填空練習(xí)(指向指針的指針)1.程序分析:2.程序源代碼:main(){char*s[]={,,man\Mwoman,7,girl'7,boy,7,sister'');char**q;intk;for(k=0;k<5;k++){;/*這里填寫(xiě)什么語(yǔ)句*/printf("%s

154",*q);||【程序78]題目:找到年齡最大的人,并輸出。請(qǐng)找出程序中有什么問(wèn)題。1.程序分析:2.程序源代碼:#defineN4include"stdio.h"

155staticstructman{charname[20];intage;}person[N]={”li”,18Jwang”,19Jzhang”,20Jsun”,22};main(){structman*q,*p;inti,m=0;p=person;for(i=0;iage)q=P++;m=q->age;}printf("%s/%d",(*q).name/(*q).age);【程序79]題目:字符串排序。1.程序分析:2.程序源代碼:main()(char*strl[20]/*str2[20]z*str3[20];charswap();printf(Hpleaseinputthreestrings

156");scanf("%s",strl);scanf("%s"zstr2);scanf(”%s”,str3);if(strcmp(strl,str2)>0)swap(strl,str2);if(strcmp(strl/str3)>0)swap(strlzstr3);if(strcmp(str2,str3)>0)swap(str2,str3);printf("afterbeingsorted

157");printf("%s

158%s

159%s

160,\strl/str2/str3);}charswap(pl,p2)char*pl/p2;(char*p[20];strcpy(p,pl);strcpy(pl,p2);strcpy(p2,p);|【程序80]題目:海灘上有一堆桃子,五只猴子來(lái)分。第一只猴子把這堆桃子憑據(jù)分為五份,多了一個(gè),這只猴子把多的一個(gè)扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一個(gè),它同樣把多的一個(gè)扔入海中,拿走了一份,第三、第四、第五只猴子都是這樣做的,

161問(wèn)海灘上原來(lái)最少有多少個(gè)桃子?1.程序分析:2.程序源代碼:main(){inti,m,j,k,count;for(i=4;i<10000;i+=4){count=0;m=i;for(k=0;k<5;k++){j=j/4*5+l;i=j;if(j%4==0)count++;elsebreak;}i=m;if(count==4){printf("%d

162H,count);break;}|}【程序81]題目:809*??=800*??+9*??+l其中??代表的兩位數(shù),8*??的結(jié)果為兩位數(shù),9*??的結(jié)果為3位數(shù)。求??代表的兩位數(shù),及809*??后的結(jié)果。1.程序分析:2.程序源代碼:output(longb,longi){printf("

163%ld/%ld=8O9*%ld+%ld",b,i,i,b%i);}main(){longinta,b,i;a=809;for(i=10;i<100;i++){b=i*a+l;if(b>=1000&&b<=10000&&8*i<100&&9*i>=100)output(bj);}}【程序82]題目:八進(jìn)制轉(zhuǎn)換為十進(jìn)制1.程序分析:

1641.程序源代碼:mainf){char*p,s[6];intn;P=s;gets(p);n=0;while(*(p)!='\O'){n=n*8+*p-'O';P++;}printf("%d",n);}【程序83]題目:求0—7所能組成的奇數(shù)個(gè)數(shù)。1.程序分析:2.程序源代碼:main()|longsum=4zs=4;intj;for(j=2;j<=8;j++)/*jisplaceofnumber*/{printf("

165%ld",sum);if(j<=2)s*=7;elses*=8;sum+=s;}printf("

166sum=%ld,,/sum);【程序84]題目:一個(gè)偶數(shù)總能表示為兩個(gè)素?cái)?shù)之和。L程序分析:3.程序源代碼:#include"stdio.h"include"math.h"main(){inta,b,c,d;scanf(”%d”,&a);for(b=3;b<=a/2;b+=2){for(c=2;c<=sqrt(b);c++)if(b%c==O)break;if(c>sqrt(b))d=a-b;elsebreak;for(c=2;c<=sqrt(d);c++)if(d%c==O)break;if(c>sqrt(d))

167printf("%d=%d+%d

168,,/a/b/d);})【程序85]題目:判斷一個(gè)素?cái)?shù)能被幾個(gè)9整除1.程序分析:2.程序源代碼:main(){longintm9=9,sum=9;intzi/nl=l/c9=l;scanf("%d”,&zi);while(nl!=0){if(l(sum%zi))nl=0;else{m9=m9*10;sum=sum+m9;c9++;|}printf("%ld,canbedividedby%d\"9\"",sum,c9);}【程序86]題目:兩個(gè)字符串連接程序1.程序分析:2.程序源代碼:include"stdio.h"main(){chara[]="acegikm";charb[]="bdfhjlnpq";charc[80],*p;inti=OJ=Ozk=O;while(a[i]l=,\0'&&b[j]!=,\0,){if(a[i]{c[k]=a[i];i++;}elsec[k]=b[j++];k++;)c[k]='\O';if(a(i]=='\O')P=b+j;elsep=a+i;strcat(c,p);puts?;}【程序87]題目:回答結(jié)果(結(jié)構(gòu)體變量傳遞)1.程序分析:

1691.程序源代碼:#include"stdio.h"structstudent{intx;charc;}a;main(){a.x=3;a.c='a*;f(a);printf("%d,%c,a.x,a.c);}f(structstudentb)(b.x=20;b.c='y';)【程序88]題目:讀取7個(gè)數(shù)(1—50)的整數(shù)值,每讀取一個(gè)值,程序打印出該值個(gè)數(shù)的*。1.程序分析:2.程序源代碼:main(){inti,a,n=l;while(n<=7){do{scanf("%d”,&a);}while(a50);for(i=l;i<=a;i++)printff'*");printf("

170");n++;}getch();}【程序89]題目:某個(gè)公司采用公用電話傳遞數(shù)據(jù),數(shù)據(jù)是四位的整數(shù),在傳遞過(guò)程中是加密的,加密規(guī)則如下:每位數(shù)字都加上5,然后用和除以10的余數(shù)代替該數(shù)字,再將第一位和第四位交換,第二位和第三位交換。1.程序分析:2.程序源代碼:main(){inta,i,aa[4],t;scanf("%d",&a);

171aa[0]=a%10;aa[l]=a%100/10;aa[2]=a%1000/100;aa[3]=a/1000;for(i=0;i<=3;i++){aa[i]+=5;aa[i]%=10;|for(i=0;i<=3/2;i++){t=aa[i];aa[i]=aa[3-i];aa[3-i]=t;|for(i=3;i>=0;i--)printf("%d",aa[i]);}【程序90]題目:專升本一題,讀結(jié)果。1.程序分析:2.程序源代碼:include,,stdio.h,'#defineM5main(){inta[M]={l,2,3,4,5};intij,t;i=O;j=M-l;while(i{t=*(a+i);*(a+i)=*(a+j);*(a+j)=t;i++;j-;}for(i=0;iprintf("%d,,/*(a+i));}【程序91]題目:時(shí)間函數(shù)舉例11.程序分析:2.程序源代碼:#include"stdio.h"include"time.h"voidmain(){time_tIt;/*definealonginttimevarible*/lt=time(NULL);/*systemtimeanddate*/printf(ctime(<));/*englishformatoutput*/printf(asctime(localtime(<)));/*tranfertotm*/printf(asctime(gmtime(<)));/*tranfertoGreenwichtime*/}

172【程序92]題目:時(shí)間函數(shù)舉例21.程序分析:2.程序源代碼:/*calculatetime*/include"time.h"#include"stdio.h"main(){time_tstart,end;inti;start=time(NULL);for(i=0;i<3000;i++){printf("\l\l\l\l\l\l\l\l\l\l

173");}end=time(NULL);printf("\l:Thedifferentis%6.3f

174"/difftime(end/start));)【程序93]題目:時(shí)間函數(shù)舉例31.程序分析:2.程序源代碼:/*calculatetime*/#include"time.h"include"stdio.h"main(){clock_tstart.end;inti;doublevar;start=clock();for(i=0;i<10000;i++){printf("\l\l\l\l\l\l\l\l\l\l

175");}end=clock();printf("\l:Thedifferentis%6.3f

176",(double)(end-start));}【程序94]題目:時(shí)間函數(shù)舉例4,一個(gè)猜數(shù)游戲,判斷一個(gè)人反應(yīng)快慢。(版主初學(xué)時(shí)編的)1.程序分析:2.程序源代碼:include"time.h"#include"stdlib.h"include"stdio.h"main(){charc;clock_tstart,end;a,b;doublevar;inti,guess;srand(time(NULL));

177printff'doyouwanttoplayor'n")

178");loop:while((c=getchar())=='y')(i=rand()%100;printf("

179pleaseinputnumberyouguess:

180");start=clock();a=time(NULL);scanf("%d”,&guess);while(guess!=i){if(guess>i){printf("pleaseinputalittlesmaller.

181");scanf(”%d”,&guess);}else{printf("pleaseinputalittlebigger.

182");scanf("%d”,&guess);}}end=clock();b=time(NULL);printf("\l:Ittookyou%6,3fseconds

183"/var=(double)(end-start)/18.2);printf("\l:ittookyou%6.3fseconds

184

185"/difftime(bza));if(var<15)printf(H\l\lYouareveryclever!\l\l

186

187");elseif(var<25)printf("\l\lyouarenormal!\l\l

188

189");elseprintf("\l\lyouarestupid!\l\l

190

191");printf("\l\lCongradulations\l\l

192

193H);printf("Thenumberyouguessis%d",i);}printf("

194doyouwanttotryitagain?(\"yy\".or.\"n\")

195”);if((c=getch())==V)gotoloop;}【程序95]題目:家庭財(cái)務(wù)管理小程序1.程序分析:2.程序源代碼:/*moneymanagementsystem*/include"stdio.h"include"dos.h"main()

196{FILE*fp;structdated;floatsum/chm=0.0;intlen,ij=0;intc;charch[4]=""/chl[16]=""/chtime[12]=""/chshop[16]/chmoney[8];pp:clrscr();sum=0.0;gotoxy(l,l);printf("||H);gotoxy(l/2);printf("|moneymanagementsystem(Cl.O)2000.03gotoxy(l,3);printf("|1");gotoxy(l,4);printf("|—moneyrecords—|—todaycostlist一gotoxy(l,5);printf("||1");gotoxy(l,6);printf("|date:||");gotoxy(l,7);printf("||||gotoxy(l,8);printf("|||");gotoxy(l,9);printf("|thgs:||");gotoxy(l,10);printf("|||||");gotoxy(l,ll);printf("||I");gotoxy(l,12);printf("|cost:|gotoxy(l,13);printf("|||||");gotoxy(l,14);printf("||gotoxy(l,15);printf("||gotoxy(l,16);printf("||gotoxy(l,17);printf("||gotoxy(l,18);printf("||gotoxy(l,19);printf("||gotoxy(l,20);printf("|||");gotoxy(l,21);printf("||gotoxy(l,22);printf("||gotoxy(l,23);printf("|i=0;getdate(&d);sprintf(chtime,"%4d.%02d.%02d",d.da_year,d.da_mon,d.da_dav);for(;;){gotoxy(3,24);printf("Tab_browsecostlistEsc_quit");gotoxy(13,10);printf("gotoxy(13,13);printf("gotoxy(13,7);printf("%s",chtime);j-18;ch[0]=getch();if(ch[O]==27)

197break;strcpy(chshop,"");strcpy(chmoney,"");if(ch[0]==9)(mm:i=0;fp=fopen("home.dat","r+");gotoxy(3,24);printf("gotoxy(6,4);printf("listrecords");gotoxy(l,5);printf("|-1");gotoxy(41/4);printf(,'");gotoxy(41/5);printf("|");while(fscanf(fpJ,%10s%14s%f

198",chtime,chshopl&chm)!=EOF){if(i==36){getch();i=0;}if((i%36)<17){gotoxy(4,6+i);printf("");gotoxy(4,6+i);}elseif((i%36)>16){gotoxy(41,4+i?17);printf("");gotoxy(42z4+i-17);}i++;sum=sum+chm;printf("%10s%-14s%6.1f

199"/chtime/chshop/chm);}gotoxy(lz23);printf("|gotoxy(l,24);printf(”|,;gotoxy(l,25);printf("|gotoxy(10,24);printf("totaIis%8.1f$"/sum);fclose(fp);gotoxy(49z24);printf("pressanykeyto.???.");getch();gotopp;}else{while(ch[0]!='\r'){if(j<10){strncat(chtime,ch,l);j++;}if(ch[0]==8)(

200len=strlen(chtime)-l;if(j>15){len=len+l;j=ll;}strcpy(chl/H');j=j-2;strncatfchl^htimejen);strcpy(chtimej'");strncatfchtime^hljen-l);gotoxy(13/7);printf(Mu);)gotoxy(13/7);printf(,'%s"/chtime);ch[0]=getch();if(ch[0]==9)gotomm;jf(ch[0]==27)exit(l);}gotoxy(3,24);printf("");gotoxy(13z10);j=0;ch[0]=getch();while(ch[0]!='\r'){if(j<14){strncat(chshop,ch,l);j++;}if(ch[0]==8){len=strlen(chshop)-l;strcpy(chl;'");j=j-2;strncatfchl^hshopjen);strcpy(chshop/"');strncat(chshopzchljen-l);gotoxy(13,10);printf("");}gotoxy(13/10);printf("%s,'/chshop);ch[0]=getch();}gotoxy(1343);j=0;ch[0]=getch();while(ch[O]!=V){if(j<6){strncat(chmoney,ch,l);j++;}if(ch[0]==8){len=strlen(chmoney)-l;strcpy(chl/'");j=j-2;strncat(chl/chmoneyjen);

201strcpy(chmoneyz"");strncat(chmoneyzchljen-l);gotoxy(13/13);printf(M");}gotoxy(13/13);printf("%s"/chmoney);ch[0]=getch();}if((strlen(chshop)==0)11(strlen(chmoney)==0))continue;if((fp=fopen("home.dat'7,a+"))!=NULL);fprintf(fp,"%10s%14s%6s",chtime/chshop/chmoney);fputcCXn'Jp);fclose(fp);i++;gotoxy(41z5+i);printf("%10s%-14s%-6s",chtime/chshop/chmoney);}}}【程序96]題目:計(jì)算字符串中子串出現(xiàn)的次數(shù)1.程序分析:2.程序源代碼:#include"string.h"include"stdio.h"main(){charstrl[20],str2[20],*pL*p2;intsum=0;printf(Hpleaseinputtwostrings

202H);scanf("%s%s"/strl/str2);pl=strl;p2=str2;while(*pl!='\0'){if(*pl==*p2){while(*pl==*p2&&*p2!='\0'){pl++;p2++;)}elsepl++;if(*p2==,\O')sum++;p2=str2;|printf("%d",sum);getch();}【程序97]題目:從鍵盤(pán)輸入一些字符,逐個(gè)把它們送到磁盤(pán)上去,直到輸入一個(gè)#為止。

2031.程序分析:2.程序源代碼:#include"stdio.h"main(){FILE*fp;charchJilenametlO];scanf("%s"zfilename);if((fp=fopen(filename/'w"))==NULL){printf("cannotopenfile

204");exit(O);}ch=getchar();ch=getchar();while(ch!='#'){fputc(chjp);putchar(ch);ch=getchar();)fclose(fp);}【程序98]題目:從鍵盤(pán)輸入一個(gè)字符串,將小寫(xiě)字母全部轉(zhuǎn)換成大寫(xiě)字母,然后輸出到?個(gè)磁盤(pán)文件“test”中保存。輸入的字符串以!結(jié)束。1.程序分析:2.程序源代碼:includeustdio.h"main(){FILE*fp;charstr[100],filename[101;inti=0;if((fp=fopen("test";,w"))==NULL){printf("cannotopenthefile

205");exit(O);)printf(npleaseinputastring:

206");gets(str);while(str!='!'){if(str>='a'&&str<='z,)str=str-32;fputc(stcfp);i++;}fclose(fp);fp=fopen(,,test"/"r");fgets(str;strlen(str)+l/fp);printf("%s

207,str);fclose(fp);

208}【程序99]題目:有兩個(gè)磁盤(pán)文件A和B,各存放一行字母,要求把這兩個(gè)文件中的信息合并(按字母順序排列),輸出到一個(gè)新文件C中.1.程序分析:2.程序源代碼:#include"stdio.h*'main(){FILE*fp;intij,n,ni;charc[160],tzch;if((fp=fopen("A,,/,,r"))==NULL){printf("fileAcannotbeopened

209");exit(O);)printf("

210Acontentsare:

211");for(i=0;(ch=fgetc(fp))!=EOF;i++){c[i]=ch;putchar(c[i]);}fclose(fp);ni=i;if((fp=fopen("B"/"r,,))==NULL){printf("fileBcannotbeopened

212");exit(O);)printf("

213Bcontentsare:

214");for(i=0;(ch=fgetc(fp))!=EOF;i++){c[i]=ch;putchar(c[i]);)fclose(fp);n=i;for(i=0;ic[j]){t=c[i];c[i]=c[j];c[j]=t;}printf("

215Cfileis:

216");fp=fopen("C","w");for(i=0;i

217門(mén)課的成績(jī),從鍵盤(pán)輸入以上數(shù)據(jù)(包括學(xué)生號(hào),姓名,三門(mén)課成績(jī)),計(jì)算出平均成績(jī),況原有的數(shù)據(jù)和計(jì)算出的平均分?jǐn)?shù)存放在磁盤(pán)文件"stud"中.1.程序分析:2.程序源代碼:include"stdio.h"structstudent{charnum[6];charname[8];intscore[3];floatavr;}stu[5];main(){inti,j,sum;FILE*fp;/?input*/for(i=0;i<5;i++){printf("

218pleaseinputNo.%dscore:

219HJ);printf("stuNo:");scanf(M%sH/stu[i].num);printf("name:H);scanf("%s,stu[i].name);sum=0;for(j=0;j<3;j++){printf("score%d."j+l);scanf("%d”,&stu[i].score[j]);sum+=stu[i].score[j];}stu[i].avr=sum/3,0;}fp=fopen(,'stud";,w,');for(i=0;i<5;i++)if(fwrite(&stu[i]/Sizeof(structstudent),l/fp)!=l)printf("filewriteerror

220");fclose(fp);

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。
關(guān)閉