當前位置:編程學習大全網 - 編程語言 - c語言經典100

c語言經典100

您好,c語言經典100題:

程序1

題目:有1,2,3,4個數字,能組成多少個互不相同且無重復數字的三位數

都是多少

1.程序分析:可填在百位,十位,個位的數字都是1,2,3,4.組成所有的排列後再去

掉不滿足條件的排列.

2.程序源代碼:

main()

{

int

i,j,k;

printf("\n");

for(i1;i<5;i++)

/*以下為三重循環*/

for(j1;j<5;j++)

for

(k1;k<5;k++)

{

if

(i!k&&i!j&&j!k)

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

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

}

}

程序2

題目:企業發放的獎金根據利潤提成.利潤(i)低於或等於10萬元時,獎金可提10%;利潤高

於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可可提

成7.5%;20萬到40萬之間時,高於20萬元的部分,可提成5%;40萬到60萬之間時高於

40萬元的部分,可提成3%;60萬到100萬之間時,高於60萬元的部分,可提成1.5%,高於

100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤i,求應發放獎金總數

1.程序分析:請利用數軸來分界,定位.註意定義時需把獎金定義成長整型.

2.程序源代碼:

main()

{

long

int

i;

int

bonus1,bonus2,bonus4,bonus6,bonus10,bonus;

scanf("%ld",&i);

bonus1100000*0.1;bonus2bonus1+100000*0.75;

bonus4bonus2+200000*0.5;

bonus6bonus4+200000*0.3;

bonus10bonus6+400000*0.15;

if(i<100000)

bonusi*0.1;

else

if(i<200000)

bonusbonus1+(i-100000)*0.075;

else

if(i<400000)

bonusbonus2+(i-200000)*0.05;

else

if(i<600000)

bonusbonus4+(i-400000)*0.03;

else

if(i<1000000)

bonusbonus6+(i-600000)*0.015;

else

bonusbonus10+(i-1000000)*0.01;

printf("bonus%d",bonus);

}

程序3

題目:壹個整數,它加上100後是壹個完全平方數,再加上168又是壹個完全平方數,請問該數是多少

1.程序分析:在10萬以內判斷,先將該數加上100後再開方,再將該數加上268後再開方,如果開方後

的結果滿足如下條件,即是結果.請看具體分析:

2.程序源代碼:

#include

"math.h"

main()

{

long

int

i,x,y,z;

for

(i1;i2)/*如果是閏年且月份大於2,總天數應該加壹天*/

sum++;

printf("it

is

the

%dth

day.",sum);}

程序4

題目:輸入某年某月某日,判斷這壹天是這壹年的第幾天?

1.程序分析:以3月5日為例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊

情況,閏年且輸入月份大於3時需考慮多加壹天。

2.程序源代碼:

main()

{

int

day,month,year,sum,leap;

printf("\nplease

input

year,month,day\n");

scanf("%d,%d,%d",&year,&month,&day);

switch(month)/*先計算某月以前月份的總天數*/

{

case

1:sum0;break;

case

2:sum31;break;

case

3:sum59;break;

case

4:sum90;break;

case

5:sum120;break;

case

6:sum151;break;

case

7:sum181;break;

case

8:sum212;break;

case

9:sum243;break;

case

10:sum273;break;

case

11:sum304;break;

case

12:sum334;break;

default:printf("data

error");break;

}

sumsum+day;

/*再加上某天的天數*/

if(year%4000||(year%40&&year%100!0))/*判斷是不是閏年*/

leap1;

else

leap0;

if(leap1&&month>2)/*如果是閏年且月份大於2,總天數應該加壹天*/

sum++;

printf("It

is

the

%dth

day.",sum);}

程序5

題目:輸入三個整數x,y,z,請把這三個數由小到大輸出.

1.程序分析:我們想辦法把最小的數放到x上,先將x與y進行比較,如果x>y則將x與y的值進行交換,

然後再用x與z進行比較,如果x>z則將x與z的值進行交換,這樣能使x最小.

2.程序源代碼:

main()

{

int

x,y,z,t;

scanf("%d%d%d",&x,&y,&z);

if

(x>y)

{tx;xy;yt;}

/*交換x,y的值*/

if(x>z)

{tz;zx;xt;}/*交換x,z的值*/

if(y>z)

{ty;yz;zt;}/*交換z,y的值*/

printf("small

to

big:

%d

%d

%d\n",x,y,z);

}

程序6

題目:用*號輸出字母c的圖案.

1.程序分析:可先用'*'號在紙上寫出字母c,再分行輸出.

2.程序源代碼:

#include

"stdio.h"

main()

{

printf("hello

c-world!\n");

printf("

****\n");

printf("

*\n");

printf("

*

\n");

printf("

****\n");

}

程序7

題目:輸出特殊圖案,請在c環境中運行,看壹看,very

beautiful!

1.程序分析:字符***有256個.不同字符,圖形不壹樣.

2.程序源代碼:

#include

"stdio.h"

main()

{

char

a176,b219;

printf("%c%c%c%c%c\n",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()

{

int

i,j,result;

printf("\n");

for

(i1;i<10;i++)

{

for(j1;j<10;j++)

{

resulti*j;

printf("%d*%d%-3d",i,j,result);/*-3d表示左對齊,占3位*/

}

printf("\n");/*每壹行後換行*/

}

}

程序9

題目:要求輸出國際象棋棋盤.

1.程序分析:用i控制行,j來控制列,根據i+j的和的變化來控制輸出黑方格,還是白方格.

2.程序源代碼:

#include

"stdio.h"

main()

{

int

i,j;

for(i0;i<8;i++)

{

for(j0;j<8;j++)

if((i+j)%20)

printf("%c%c",219,219);

else

printf("

");

printf("\n");

}

}

程序10

題目:打印樓梯,同時在樓梯上方打印兩個笑臉.

1.程序分析:用i控制行,j來控制列,j根據i的變化來控制輸出黑方格的個數.

2.程序源代碼:

#include

"stdio.h"

main()

{

int

i,j;

printf("\1\1\n");/*輸出兩個笑臉*/

for(i1;i<11;i++)

{

for(j1;j<i;j++)

printf("%c%c",219,219);

printf("\n");

}

}

程序11

題目:古典問題:有壹對兔子,從出生後第3個月起每個月都生壹對兔子,小兔子長到第三個月

後每個月又生壹對兔子,假如兔子都不死,問每個月的兔子總數為多少

1.程序分析:

兔子的規律為數列1,1,2,3,5,8,13,21....

2.程序源代碼:

main()

{

long

f1,f2;

int

i;

f1f21;

for(i1;i<20;i++)

{

printf("%12ld

%12ld",f1,f2);

if(i%20)

printf("\n");/*控制輸出,每行四個*/

f1f1+f2;

/*前兩個月加起來賦值給第三個月*/

f2f1+f2;

/*前兩個月加起來賦值給第三個月*/

}

}

程序12

題目:判斷101-200之間有多少個素數,並輸出所有素數.

1.程序分析:判斷素數的方法:用壹個數分別去除2到sqrt(這個數),如果能被整除,

則表明此數不是素數,反之是素數.

2.程序源代碼:

#include

"math.h"

main()

{

int

m,i,k,h0,leap1;

printf("\n");

for(m101;m<200;m++)

{

ksqrt(m+1);

for(i2;i<k;i++)

if(m%i0)

{leap0;break;}

if(leap)

{printf("%-4d",m);h++;

if(h%100)

printf("\n");

}

leap1;

}

printf("\nthe

total

is

%d",h);

}

  • 上一篇:8051控制1602LCD
  • 下一篇:自己寫關於雪的詩。
  • copyright 2024編程學習大全網