C必背18個經(jīng)典程序文件_第1頁
C必背18個經(jīng)典程序文件_第2頁
C必背18個經(jīng)典程序文件_第3頁
C必背18個經(jīng)典程序文件_第4頁
C必背18個經(jīng)典程序文件_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

c語言入門經(jīng)典必背18個程序

1、產(chǎn)輸出9*9口訣。共9行9列,i控制行,j控制列。*/

main()

{int“result;

for(i=l;i<10;i++)

{for(j=l;j<10;j++)

(

result=i*j;

表示左對齊,占3位*/

)

每一行后換行*/

)

)

2、/*古典問題:有一對兔子,從出生后第3個月起每一個月都生一對兔子,小兔子長到

第三個月后每一個月又生一對兔子,假如兔

子都不死,問每一個月的兔子總數(shù)為多少?

兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,21.…*/

main()

(

long

inti;

fl=f2=l;

for(i=l;i<=20;i++)

控制輸出,每行四個*/

fl=fl+f2;/*前兩個月加起來賦值給第三個月*/

f2=fl+f2;浮前兩個月加起來賦值給第三個月*/

)

)

3、/*判斷101-200之間有多少個素數(shù),并輸出所有素數(shù)與素數(shù)的個數(shù)。

程序分析:判斷素數(shù)的方法:用一個數(shù)分別去除2到sqrt(這個數(shù)),如果能被整除,則說

明此數(shù)不是素數(shù),反之是素數(shù)。*/

main()

intm,i,k,h=O,leap=l;

for(m=101;m<=200;m++)

{k=sqrt(m+l);

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

if(m%i==O)

{leap=O;break;}

if(leap)/*循環(huán)完畢后,leap依然為1,則m是素數(shù)*/

1

leap=I;

4、/*一個數(shù)如果恰好等于它的因子之和,這個數(shù)就稱為“完數(shù)”。例如6=1+2+3.編

找出1000以的所有完數(shù)。*/

main()

(

staticintk[10];

intij,n,s;

for(j=2;j<1000y++)

(

n=-l;

s=j;

for(i=l;i<j:i++)

{if((j%i)==0)

{n++;

s=s-i;

k[n]=i;

)

}

if(s==0)

2/12

for(i=();i<n;i++)

)

1

I

5、/*下面程序的功能是將?個4x4的數(shù)組進(jìn)行逆時針旋轉(zhuǎn)90度后輸出,要求原始數(shù)組

的數(shù)據(jù)隨機(jī)輸入,新數(shù)組以4行4列的

方式輸出,

請在空白處完善程序。*/

main()

{inta[4][4],b[4][4],ij;/*a存放原始數(shù)組數(shù)據(jù),b存放旋轉(zhuǎn)后數(shù)組數(shù)據(jù)*/

/*輸入一組數(shù)據(jù)存放到數(shù)組a中,然后旋轉(zhuǎn)存放到b數(shù)組中*/

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

for(j=0y<4y++)

b[3-j][i]=a[ilUl;

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

{fbr(j=Ou<4y++)

)

6、/*編程打印直角輝三角形*/main()

(inti.j.a[6][6]:

for(i=0;i<=5;i++)

{a[i][i]=l;a[iJ[O]=l;}

for(i=2;i<=5;i++)

for(j=l;j<=i-l;j++)

a[i]U]=a[i-l]U]+a[i-UU-l];

for(i=0;i<=5;i++)

{forg=0;j<=iy++)

3/12

7、/*通過鍵盤輸入3名學(xué)生4門課程的成績,分別求每一個學(xué)生的平均成績和每門課程

的平均成績。

要求所有成績均放入一個4行5列的數(shù)組中,輸入時同一人數(shù)據(jù)間用空格,不同人用回車

其中最后一列和最后一行分別放每一個學(xué)生的平均成績、每門課程的平均成績與班級總平

均分。*/

#include<stdio.h>

#include<stdlib.h>

main()

{floata[4][5],suml,sum2;

inti,j;

for(i=0;i<3;i++)

for(j=0y<4y++)

for(i=0;i<3;i++)

{sum1=0;

for(j=0;j<4;j++)

suml+=a[i][j];

a[i][4]=suml/4;

}

for(j=0;j<5;j++)

{sum2=0;

for(i=0;i<3;i++)

sum2+=a[i][j];

a[3][j]=sum2/3;

}for(i=0;i<4;i++)

{for(j=0j<5j++)

1

4/12

8./*完善程序,實(shí)現(xiàn)將輸入的字符串反序檢出,如輸入windows輸出swodniw.

*/

#include<string.h>

main()

{charcl2(X)J,cl;

intij,k;

k=strlen(c);

for(i=0j=k-l;i<k/2;i++,j-)

{cl=c[i];c[i]=c[j];c[j]=cl;}

)

指針法:

voidinvert(char*s)

{inti,j,k;

chart;

k=strlen(s);

for(i=0,j=k-l;i<k/2;i++j-)

{t=*(s+i);*(s+i)=*(s+j);*(s+j)=t;)

}

main()

{HLE*fp;

charstr[200],*p,i,j;

exit(O);

)

gets(str);

prinlf("%s”,str);

fprintf(fp.

“%s”,str);

invert(str);

printf("

%s”,str);

fprintf(fp.

“%s”,str);

fclose(fp);}

5/12

9、/*下面程序的功能是從字符數(shù)組s中刪除存放在c中的字符v*/*include<stdi

o.h>

main()

{chars[80],c;

intj,k;

gets(s);

c=getchar();

if(s|j]!=c)

s[k++]=s[jj;

1

10、/*編寫一個voidsort(int*x,intn)實(shí)現(xiàn)將x數(shù)組中的n個數(shù)據(jù)從大到小排序。n與數(shù)

組元素在主函數(shù)中輸入。將結(jié)果顯示在屏幕上并輸出到文件p9_l.oul中*/#include<stdio.h>

voidsort(int*x,intn)

(

inti,j,k,t;

for(i=0;i<n-l;i++)

(

k=i;

fbr(j=i+l;j<n;j++)

if(xU]>x[k])k=j;

if(k!=i)

(

t=x[i];

x[i]=x[k];

x[k]=t;

)

)

}

voidmain()

{FILE*fp;

6/12

int*p,i,a[10J;

p=a;

for(i=0;i<10;i++)

p=a;sort(p,10);

for(;p<a+10;p++)

fclose(fp);

}

11、已知數(shù)組a中的元素已按由小到大順序羅列,以下程序的功能是將輸入的一個

數(shù)插入數(shù)組a中,插入后,數(shù)組a中的元素仍

然由小到大順序羅列*/

main()

{inta[10]={0,12,17,20,25,28,30);;*a[0]為工作單元,從a[l]開始存放數(shù)據(jù)*/intx,i,j=6;

/*j為元素個數(shù)*/

a[0]=x;

i=j;/*從最后一個單元開始*/

while(a[i]>x)

{a[i+l]=a[i];i-;}/*將比x大的數(shù)往后挪移一個位置?/

a[++i]=x;

j++;/*插入x后元素總個數(shù)增加*/

1

12、/*編寫函數(shù)replace(char*s,charc1,charc2)實(shí)現(xiàn)將s所指向的字符串中所有字符cl

用c2替換,字符串、字符cl和c2

均在主函數(shù)中輸入,將原始字符串和替換后的字符串顯示在屏幕上,并輸出到文件pl0_2.

out中*/

#include<sldio.h>

7/12

replace(char*s,charcI,charc2)

{if(*s==cl)

*s=c2;

s++;

)

}

main()

{FILE*fp;

charstr[100],a,b;

exit(0);}

gets(str);

replace(str,a,b);

fclose(fp);

}

13、/*在一個字串si中查找一子串s2,若存在則返回子串在主串中的起始位置

,不存在則返回-1o*/

mainQ

}

intsearch(charsl[],chars2[])

{inti=0,j,len=strlen(s2);

while(sl[i]){

fbr(j=();j<len;j++)

if(sl[i+j]!=s2[j])break;

if(j>=len)returni;

8/12

elsei++;

1

return-1;

)

14、/*用指針變量輸出結(jié)構(gòu)體數(shù)沮元素。*/structstudent

(

intnum;

char*name;

charsex;

intage;

18}};

main()

{inti;

structstudent*ps;

/*用指針變量輸出結(jié)構(gòu)體數(shù)組元素。*/

for(ps=stu;ps<stu+5;ps++)

/*用數(shù)組下標(biāo)法輸出結(jié)構(gòu)體數(shù)組元素學(xué)號和年齡。*/

for(i=0;i<5;i++)

)

15、/*建立一個有三個結(jié)點(diǎn)的簡單鏈表:*/#defineNULLOslructstudent

(

intnum;

char*name;

intage;

structstudent*next;

};

voidmain()

(

structstudenta,b,c,*head,*p;

對結(jié)點(diǎn)成員進(jìn)行賦值*/

9/12

head=&a;/*建立鏈表,a為頭結(jié)點(diǎn)*/

a.next=&b;

b.next=&c;

c.next=NULL;

p=head;/*輸出鏈表*/

do{

p=p->next;

}while(p!=NULL);

}

16、/*輸入一個字符串,判斷其是否為回文?;匚淖址侵笍淖蟮接易x和從右到左讀

徹底相同的字符串。Winclude<stdio.h>

#include<string.h>

#include<string.h>

main()

{chars[l(X)];

intij,n;

輸入字符串:

gets(s);

n=strlen(s);

是回文串I

不是回文串

17、/*冒泡排序,從小到大,排序后結(jié)果輸出到屏幕與文件myf2.out*/

#include<stdio.h>

voidfun(inta口,intn)

{intij,t;

for(i=0;i<=n-1;i++)for(j=0;j<i;j++)

if(a[j]>a[j+1J){t=a|j];a[jj=a[j+l];a[j+l]=t;}

)

main()

{inta[I()]={12,45,7,8,96,4,10,48,2,46},n=10,i;

FILE*f;

溫馨提示

  • 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

提交評論