C語言經(jīng)典編程實(shí)例_第1頁
C語言經(jīng)典編程實(shí)例_第2頁
C語言經(jīng)典編程實(shí)例_第3頁
C語言經(jīng)典編程實(shí)例_第4頁
C語言經(jīng)典編程實(shí)例_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

C語言經(jīng)典編程實(shí)例第1章為什么要學(xué)C語言【驗(yàn)證型】1.1Helloworld.讓我們用C語言向世界問好。輸入:無輸出:Helloworld.#include

<stdio.h>

int

main()

{

printf("Hello

world.\n");

}#include<stdio.h>

int

main()

{printf("Welcome\n");

printf("to\n");

printf("Beijing.\n");

}第2章C數(shù)據(jù)類型【設(shè)計(jì)型】2.1學(xué)習(xí)打印你的第一個(gè)圖形背景:我們已經(jīng)學(xué)習(xí)了printf函數(shù),這里給出了一個(gè)小程序,它運(yùn)行的結(jié)果是輸出一個(gè)由星號(hào)(*)組成的4*4的正方形。程序如下:

#include<stdio.h>

int

main()

{

printf("****\n");

printf("****\n");

printf("****\n");

printf("****\n");

return0;

}要求:按照上面的程序范例,編寫一個(gè)小程序,要求輸出的是4行由*號(hào)組成的等腰三角形。輸入:無。輸出:

*

***

*****

*******#include<stdio.h>

int

main()

{

printf("

*\n");

printf("

***\n");

printf("

*****\n");

printf("*******\n");

return

0;

}【驗(yàn)證型】2.2輸出倒三角形【題目描述】輸出指定的由“*”組成的倒三角圖案?!据斎搿繜o輸入?!据敵觥堪凑罩付ǜ袷捷敵鲇伞?”組成的倒三角圖案。【樣例輸入】【樣例輸出】**********#include<stdio.h>

int

main()

{

printf("*

*

*

*\n");

printf("

*

*

*\n");

printf("

*

*\n");

printf("

*\n");

return

0;

}

第3章簡單的算術(shù)運(yùn)算和表達(dá)式【設(shè)計(jì)型】3.1分離3位整數(shù)

任意從鍵盤上輸入一個(gè)三位正整數(shù),要求正確地分離出它的個(gè)位、十位和百位,并分別在屏幕上輸出。

比如輸入的三位正整數(shù)#include

<stdio.h>

#include

<stdlib.h>

int

main()

{

int

x,hundreds,tens,units;

printf;

scanf("%d",&x);

hundreds=x/100;

tens=x%100/10;

units=x%100%10;

printf("units=%d,tens=%d,hundreds=%d\n",units,tens,hundreds);

}

【驗(yàn)證型】3.2三位數(shù)分解求累加和(參考書P27例3.1與P49例4.4)題目描述輸入一個(gè)3位的正整數(shù)n,編程計(jì)算整數(shù)n的各位數(shù)字之和。輸入輸入一個(gè)正整數(shù)n。輸出各位數(shù)字之和sum。樣例輸入208樣例輸出10題目來源:2012年秋季期末考試#include<stdio.h>

void

main()

{

int

a,x,y,z,sum=0;

scanf("%d",&a);

x=a/100;

y=a/10%10;

z=a%10;

sum=x+y+z;

printf("%d\n",sum);

}

【設(shè)計(jì)型】3.3整數(shù)四則運(yùn)算【題目描述】

小明上小學(xué)一年級(jí)了,老師已經(jīng)教會(huì)了他們進(jìn)行整數(shù)的+、-、*、/、%計(jì)算,下面老師開始出題,給出一個(gè)簡單的算術(shù)表達(dá)式,請小明給出計(jì)算結(jié)果?!据斎搿拷邮軆蓚€(gè)整數(shù),每個(gè)整數(shù)之間使用空格分隔?!据敵觥糠謩e輸出進(jìn)行+、-、*、/、*之后的運(yùn)行結(jié)果?!緲永斎搿?03【樣例輸出】10+3=13

10-3=7

10*3=30

10/3=3

10%3=1#include

<stdio.h>

int

main()

{

int

a,b;

scanf("%d%d",&a,&b);

printf("%d+%d=%d\n",a,b,a+b);

printf("%d-%d=%d\n",a,b,a-b);

printf("%d*%d=%d\n",a,b,a*b);

printf("%d/%d=%d\n",a,b,a/b);

printf("%d%%%d=%d\n",a,b,a%b);

return

0;

}

【設(shè)計(jì)型】3.4編程計(jì)算3位整數(shù)的逆序數(shù)題目描述見書P41題3.2提示:使用標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)fabs()。#include

<stdio.h>

#include

<stdlib.h>

#include

<math.h>

int

main()

{

int

a,b,c,d,e,f,g;

scanf("%d",&a);

a=fabs(a);

b=a/100;

d=a%10;

c=(a-b*100-d)/10;

f=d*100+c*10+b;

printf("%d\n",f);

return

0;

}第4章鍵盤輸入和屏幕輸出【驗(yàn)證型】4.1printf和scanf

printf函數(shù)和scanf函數(shù)是C語言中最常用的函數(shù)之一,下面讓我們練習(xí)一下吧。輸入:

整型變量x的值。輸出:

輸出整型變量x對(duì)應(yīng)的十進(jìn)制、八進(jìn)制和十六進(jìn)制形式。認(rèn)真觀察-1的八進(jìn)制和十六進(jìn)制輸出,請想想是為什么。#include

<stdio.h>

int

main()

{

int

x;

scanf("%d",&x);

printf("x=%d,",x);

printf("x=%o,",x);

printf("x=%x\n",x);

return

0;

}【驗(yàn)證型】4.2字符的ASCII值【題目描述】

從鍵盤輸入一個(gè)字符,輸出其對(duì)應(yīng)的ASCII碼值。

【輸入】

輸入一個(gè)字符。

【輸出】

輸出字符對(duì)應(yīng)的十進(jìn)制ASCII碼值。

【樣例輸入】

A

【樣例輸出】

65#include

<stdio.h>

int

main()

{

char

ch;

ch=getchar();

ch=ch;

printf("%d\n",ch,ch);

}【驗(yàn)證型】4.3混合類型數(shù)據(jù)格式化輸入【題目描述】順序讀入浮點(diǎn)數(shù)1、整數(shù)、字符、浮點(diǎn)數(shù)2,再按照字符、整數(shù)、浮點(diǎn)數(shù)1、浮點(diǎn)數(shù)2的順序輸出?!据斎搿枯斎朐谝恍兄许樞蚪o出浮點(diǎn)數(shù)1、整數(shù)、字符、浮點(diǎn)數(shù)2,其間以1個(gè)空格分隔?!据敵觥吭谝恍兄邪凑兆址?、整數(shù)、浮點(diǎn)數(shù)1、浮點(diǎn)數(shù)2的順序輸出,其中浮點(diǎn)數(shù)保留小數(shù)點(diǎn)后2位?!据斎霕永?.1288c4.7【輸出樣例】c882.124.70#include

<stdio.h>

#include

<stdlib.h>

int

main()

{

float

a,b;

int

c;

char

d;

scanf("%f

%d

%c

%f",&a,&c,&d,&b);

printf("%c

%d

%.2f

%.2f\n",d,c,a,b);

return

0;

}

【設(shè)計(jì)型】4.4照貓畫貓:計(jì)算圓柱的側(cè)面積及體積如果已知圓柱的底面半徑r,以及高h(yuǎn),則可計(jì)算出圓柱的側(cè)面積s=2πrh,體積v=πr2h。其中π=3.1415926輸入

第一行輸入圓柱的底面半徑r

第二行輸入圓柱的高h(yuǎn)輸出

s=<圓柱的側(cè)面積>,v=<圓柱的體積>要求

1.所有變量都定義為雙精度類型

2.結(jié)果精確到小數(shù)點(diǎn)后兩位#include

<stdio.h>

int

main

()

{

double

r,h,s,v;

double

pi=3.1415926;

scanf("%lf",&r);

scanf("%lf",&h);

s=2*pi*r*h;

v=pi*r*r*h;

printf("s=%5.2f,v=%5.2f\n",s,v);

return

0;

}【設(shè)計(jì)型】4.6旅行時(shí)間和花費(fèi)【題目描述】十一期間LaughingSir和朋友自駕游去外地玩。已知旅行的距離和汽車平均速度,以及每公升汽油可以行駛的公里數(shù)及每公升汽油的價(jià)格,求CoCo這趟駕駛汽車旅游所花費(fèi)的時(shí)間和購買汽油的錢數(shù)?!据斎搿枯斎胨膫€(gè)數(shù)據(jù),依次分別表示:旅行的距離(單位:公里)、汽車平均速度(公里/小時(shí))、每公升汽油可以行駛的公里數(shù)(單位:公里)、每公升汽油價(jià)格(元/公升)?!据敵觥枯敵銎嚶糜嗡ㄙM(fèi)的時(shí)間(單位:小時(shí))和購買汽油的錢數(shù)(單位:元)。輸出數(shù)據(jù)都保留1位小數(shù)【樣例輸入】130011014.57.16【樣例輸出】11.8641.9#include

<stdio.h>

int

main()

{

float

s,v,h,m,t,all;

scanf("%f%f%f%f",&s,&v,&h,&m);

t=s/v;all=s/h*m;

printf("%.1f

%.1f\n",t,all);

return

0;

}【設(shè)計(jì)型】4.7計(jì)算月收入【題目描述】

CoCo的表姐剛從大學(xué)畢業(yè),進(jìn)入到一家小型外貿(mào)公司工作。該公司員工月收入的計(jì)算方法為:月基本工資加當(dāng)月提成。從鍵盤輸入CoCo表姐某月的基本工資和該月的提成,計(jì)算并輸出表姐該月的收入。

【輸入】

輸入兩個(gè)數(shù)分別代表月基本工資和月提成。

【輸出】

計(jì)算并輸出月收入,保留2位小數(shù)。

【樣例輸入】

3150.21200

【樣例輸出】

4350.20#include

<stdio.h>

int

main()

{

float

ticheng,gongzi;

scanf("%f%f",&gongzi,&ticheng);

printf("%.2f\n",gongzi+ticheng);

return

0;

}

【設(shè)計(jì)型】4.8男生和女生【題目描述】

已知某班有男生n1位,女生n2位,n1位男生的平均分是x分,n2位女生的平均分是y分,問全體學(xué)生的平均分是多少?

【輸入】

四個(gè)整數(shù)x、y、n1、n2

【輸出】

全體學(xué)生的平均,保留2位小數(shù)

【樣例輸入】

90882321

【樣例輸出】

89.05#include

<stdio.h>

int

main()

{

int

n1,n2;float

x,y,ave;

scanf("%f%f%d%d",&x,&y,&n1,&n2);

ave=(x*n1+y*n2)/(n1+n2);

printf("%.2f\n",ave);

return

0;

}第5章選擇控制結(jié)構(gòu)【設(shè)計(jì)型】5.1奇偶數(shù)問題描述:

輸入一個(gè)整數(shù),判斷其奇偶性。輸入:

整數(shù)n輸出:

n是奇數(shù)或n是偶數(shù)輸入樣例:

3輸出樣例:

3是奇數(shù)#include

<stdio.h>

int

main()

{

int

a;

scanf("%d",&a);

if

(a%2==0)

printf("%d是偶數(shù)\n",a);

else

printf("%d是奇數(shù)\n",a);

return

0;

}

【設(shè)計(jì)型】5.2絕對(duì)值問題描述:

輸入一個(gè)實(shí)數(shù),不使用絕對(duì)值函數(shù)計(jì)算并輸出該實(shí)數(shù)的絕對(duì)值。輸入:

一個(gè)實(shí)數(shù)輸出:

該實(shí)數(shù)的絕對(duì)值輸入樣例:

-3.5輸出樣例:

3.5#include

<stdio.h>

main()

{

float

a;

scanf("%f",&a);

if

(a>=0)

printf("%.6f\n",a);

else

printf("%.6f\n",-a);

return

0;

}

【設(shè)計(jì)型】5.3判斷閏年問題描述:

輸入一個(gè)年份,判斷其是否閏年。輸入:

整數(shù)year輸出:

year是閏年或year不是閏年輸入樣例:

2004輸出樣例:

2004是閏年#include

<stdio.h>

int

main()

{

int

year;

scanf("%d",&year);

if

(((year%4==0)&&(year%100!=0))||(year%400==0))

printf("%d是閏年\n",year);

else

printf("%d不是閏年\n",year);

return

0;

}【設(shè)計(jì)型】5.4出租車計(jì)費(fèi)題目描述根據(jù)某城市普通出租車收費(fèi)標(biāo)準(zhǔn)編寫程序?qū)囐M(fèi)進(jìn)行計(jì)算。具體標(biāo)準(zhǔn)如下:起步里程為3km,起步費(fèi)10元;10km以內(nèi)超過起步里程部分,每千米2元,超過10km以上的部分,每千米3元。輸入

行駛里程數(shù)(單位千米)。輸出

乘客應(yīng)支付的車費(fèi)(單位元),結(jié)果四舍五入,保留到元。樣例輸入

12.5樣例輸出

32題目來源:2012年秋季期末考試#include<stdio.h>

int

main()

{

float

a,b;

scanf("%f",&a);

if

(a<=3)

b=10;

if

(a>3&a<=10)

b=10+(a-3)*2;

if(a>10)

b=24+(a-10)*3;

printf("%.0f\n",b);

return

0;

}

【設(shè)計(jì)型】5.5整數(shù)位數(shù)判斷輸入一個(gè)不多于5位的正整數(shù),要求:

(1)求它是幾位數(shù);(2)逆序打印出各位數(shù)字。#include<stdio.h>

int

main()

{

int

num,a,b,c,d,e;

scanf("%d",&num);

if((num<=0)||(num>=100000))

{printf("Invalid

input\n");}

else

if(num/10==0)

{printf("1\n%d\n",num);}

else

if(num/100==0)

{printf("2\n%d%d\n",num%10,num/10);}

else

if((num/1000==0))

{

a=num%10;

b=num/100;

c=(num-100*b)/10;

printf("3\n%d%d%d\n",a,c,b);

}

else

if((num/10000==0))

{

a=num%10;

b=num/1000;

c=(num-1000*b)/100;

d=(num-1000*b-100*c)/10;

printf("4\n%d%d%d%d\n",a,d,c,b);

}

else

{

a=num%10;

b=num/10000;

c=(num-10000*b)/1000;

d=(num-10000*b-1000*c)/100;

e=(num-10000*b-1000*c-100*d)/10;

printf("5\n%d%d%d%d%d\n",a,e,d,c,b);

}

return

0;

}【設(shè)計(jì)型】5.6判斷某年某月的天數(shù)一年有365天,有的月份有31天,有的有30天,2月份閏年的時(shí)候是29天,非閏年的時(shí)候是28天?,F(xiàn)在要求從鍵盤上輸入一個(gè)年份和月份,輸出其對(duì)應(yīng)的天數(shù)。#include<stdio.h>

int

main()

{

int

year,month,days;

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

switch(month)

{

case

1:

case

3:

case

5:

case

7:

case

8:

case

10:

case

12:

days=31;break;

case

4:

case

6:

case

9:

case

11:

days=30;break;

case

2:

if(((year

%

4

==0)

&&

(year

%

100

!=0))

||

(year

%

400

==0))

days=29;

else

days=28;

}

printf("%d\n",days);

return

0;

}【設(shè)計(jì)型】5.7判斷輸入的字符的類型我們將字符分為五類:大寫字母、小寫字母、數(shù)字、控制字符、其他字符。編寫程序,從鍵盤輸入一個(gè)字符,輸出字符所屬的類型:大寫字母時(shí)輸出capitalletters,小寫字母時(shí)輸出smallletters,數(shù)字是輸出figures,其他字符時(shí)輸出others。#include<stdio.h>

int

main()

{

char

ch;

scanf("%c",&ch);

if

(ch>='A'

&&

ch<='Z')

{

printf("capital

letters\n");}

else

if(ch>='a'

&&

ch<='z')

{

printf("small

letters\n");}

else

if(ch>='0'

&&

ch<='9')

{

printf("figures\n");}

else

{

printf("others\n");}

return

0;

}

第6章循環(huán)控制結(jié)構(gòu)【設(shè)計(jì)型】6.1求n的階乘問題描述:

從鍵盤輸入整數(shù)n,編程計(jì)算并輸出n!。輸入:

整數(shù)n輸出:

n的階乘輸入樣例:

10輸出樣例:

10!=3628800#include<stdio.h>

int

main()

{

int

i,n;

long

long

y;

scanf("%d",&n);

y=1;

for

(i=n;i>=1;i--)

{

y=y*i;

}

printf("%d!=%lld\n",n,y);

return

0;

}

【設(shè)計(jì)型】6.2輸出一行星號(hào)問題描述:

編寫程序在一行中輸出N個(gè)星號(hào)。輸入:

星號(hào)個(gè)數(shù)值N輸出:

一行中N個(gè)星號(hào)#include<stdio.h>

int

main()

{

int

i,n;

scanf("%d",&n);

for

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

{

printf("*");

}

printf("\n");

return

0;

}【設(shè)計(jì)型】6.3編程計(jì)算問題描述編寫程序,輸入n的值,求:1-1/2+1/3-1/4+1/5-1/6+1/7-...+1/n(保留四位小數(shù))輸入n的值輸出上述算式的求和結(jié)果(結(jié)果保留四位小數(shù))輸入樣例1輸出樣例sum=1.0000時(shí)間限制內(nèi)存限制額外進(jìn)程1秒64M0#include

<stdio.h>

int

main()

{

int

n,f=1;

int

i=1;

double

j,sum=0;

scanf("%d",&n);

while(i<=n)

{

j=1/(double)i;

sum+=j*(double)f;

i++;

f=-f;

}

printf("sum=%.4lf\n",sum);

return

0;

}

【設(shè)計(jì)型】6.5最大公約數(shù)【輸入】兩個(gè)正整數(shù)m和n【輸出】m和n的最大公約數(shù)和最小公倍數(shù)【輸入樣例】2

8【輸出樣例】the

greatest

common

divisor

is

2the

least

common

multiple

is

8#include

<stdio.h>

#include

<stdlib.h>

int

main()

{

double

m,

n;

int

x,

y,

r;

scanf("%lf

%lf",

&m,

&n);

x

=

m;

y

=

n;

r

=

x

%

y;

while

(r

!=

0)

{

x

=

y;

y

=

r;

r

=

x

%

y;

}

printf("the

greatest

common

divisor

is

%d\n",

y);

printf("the

least

common

multiple

is

%.0f\n",

m

*

n

/

y);

return

0;

}【設(shè)計(jì)型】6.6水仙花數(shù)問題描述輸出所有的水仙花數(shù)。所謂的水仙花數(shù)是指一個(gè)3位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如153是一水仙花數(shù),因?yàn)?53=13+53+33輸入無輸出所有的水仙花數(shù)

提示:輸出語句printf("%d\n",n);

#include

<stdio.h>

#include

<stdlib.h>

int

main()

{

int

x,a,b,c;

for(x=100;x<1000;)

{

a=x/100;

b=(x%100)/10;;

c=x-a*100-10*b;

if(x==a*a*a+b*b*b+c*c*c)

printf("%d\n",x);

x++;

}

return

0;

}

【設(shè)計(jì)型】6.7素?cái)?shù)問題描述輸入兩個(gè)正整數(shù)m和n,求出[m,n]區(qū)間的所有素?cái)?shù)輸入兩個(gè)整數(shù)m和n輸出[m,n]區(qū)間的所有素?cái)?shù)輸入樣例2

10輸出樣例2

3

5

7#include<stdio.h>

#include<math.h>

int

main(void)

{

int

i,x,y,m,n;

scanf("%d%d",&m,&n);

if(m>n)

{

i=m;

m=n;

n=i;

}

for(x=m;x<=n;x++)

{

y=sqrt(x*1.0);

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

{

if(x%i==0)

break;

}

if(i>y)

printf("

%d",x);

}

printf("\n");

return

0;

}第8章數(shù)組【設(shè)計(jì)型】8.1挑選小白鼠描述實(shí)驗(yàn)室有一批小白鼠,為了評(píng)估他們的健康程度,我們?yōu)槊恳恢恍“资蠖荚O(shè)定了一個(gè)“健康指數(shù)”?,F(xiàn)在我們需要進(jìn)一步的評(píng)估這批小白鼠的健康均衡程度,因此我們需要從中找到健康指數(shù)差距最大的兩只小白鼠的編號(hào),以此來進(jìn)一步的進(jìn)行評(píng)估。關(guān)于輸入第一行是一個(gè)整數(shù)n(2<=n<=100),表示的是一共有n只小白鼠。

第二行是n個(gè)整數(shù)(互不相同),分別表示n只小白鼠的健康指數(shù),同時(shí)根據(jù)輸入順序,從1開始為其編號(hào)1,2…n。也就是說第一個(gè)整數(shù)是第一只小白鼠的健康指數(shù),第二個(gè)整數(shù)是第二只小白鼠的健康指數(shù),依次類推。關(guān)于輸出輸出健康指數(shù)差距最大的兩只小白鼠的編號(hào)。第一個(gè)數(shù)是健康指數(shù)較大的小白鼠的編號(hào),第二個(gè)數(shù)是健康指數(shù)較小的小白鼠的編號(hào)。

測試輸入期待的輸出時(shí)間限制內(nèi)存限制額外進(jìn)程測試用例1以文本方式顯示10?1

2

3

4

5

6

7

8

9

11?以文本方式顯示10

1?1秒64M0#include

<stdio.h>

#include

<stdlib.h>

int

main()

{

int

n;

scanf("%d",&n);

int

health[2][n];

int

i,a,b,max,min;

for

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

{

scanf("%d",&health[1][i]);

}

max=health[1][0];

min=health[1][0];

for

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

{

if

(max<=health[1][i])

{

max=health[1][i];

a=i+1;

}

if

(min>=health[1][i])

{

min=health[1][i];

b=i+1;

}

}

printf("%d

%d\n",a,b);

return

0;

}

【設(shè)計(jì)型】8.2統(tǒng)計(jì)素?cái)?shù)的個(gè)數(shù)求出

2到m之間(含m,m<=1000)所有素?cái)?shù)并放在數(shù)組a中。輸入:正整數(shù)m輸出:從小到大的所有素?cái)?shù),及個(gè)數(shù)(素?cái)?shù)輸出的時(shí)候用%4d來控制)如:輸入:10輸出:2357

4

#include

<stdio.h>

#include

<stdlib.h>

#define

z

a

int

main()

{

int

k,i,m,a,d;

scan

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論