C語(yǔ)言編程題庫(kù)_第1頁(yè)
C語(yǔ)言編程題庫(kù)_第2頁(yè)
C語(yǔ)言編程題庫(kù)_第3頁(yè)
C語(yǔ)言編程題庫(kù)_第4頁(yè)
C語(yǔ)言編程題庫(kù)_第5頁(yè)
已閱讀5頁(yè),還剩78頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

C語(yǔ)言編程題庫(kù)

1、用選擇法對(duì)n個(gè)數(shù)由小到大排序。

#include<stdio.h>

voidmain()

{

int

scanf("%d",&n);

for(i=0;ivn;i++)

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

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

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

if(a[i-l]>aO])

{t=a[i-l];a[i-l]=a[j];a[j]=t;}

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

printf("%d",a[i]);

printf("\n");

}

2、將鍵盤輸入的12個(gè)數(shù)據(jù)存放到一個(gè)4行3列的二維數(shù)組中,分別求出各行、各列以及表

中所有數(shù)之和。

#include<stdio.h>

voidmain()

(

inta[5][4]={0}JJ;

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

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

scanf("%d"z&a[i][j]);

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

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

(

a[i][3]+=a[i]U];

a[4]U]+=a[i][j];

a(4][3]+=a[i]U];

)

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

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

printf("%d\t",a[i][j]);

printf("\n");

)

)

3、判斷一個(gè)字符串是否為同文串(回文串指正讀反讀都一樣的字符串,如:字符串

"abcl21cba")o

#include<stdio.h>

#include<string.h>

voidmain()

(

chara[3O],b[3O];

intij;

scanf("%s"za);

i=strlen(a)-l;

j=0;

while(i>=0)

b[j++]=a[i-];

bUl='\O';

if(strcmp(azb)==O)

printf("%s是一個(gè)叵文串\n”,a);

else

printf("%s不是一個(gè)回文串\n",a);

)

#include<stdio.h>

#include<string.h>

voidmain()

(

chara[30];

intij;

scanf("%s",a);

i=strlen(a)-l;

j=0;

while(i>j)

if(a(i—]!=a[j++])break;

printf("%s是一個(gè)叵文串\n",a);

else

printf("%s不是一個(gè)回文串\n",a);

)

4、輸出楊輝三角形的前10行。。

#include<stdio.h>

voidmain()

(

inta[10][10]JJ;

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

a[i][0]=a[i](i]=l;

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

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

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

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

{for(j=0;j<=i;j++)

printf("%d\t",a[i][j]):

printf("\n");

)

}

5、把輸入的卜進(jìn)制數(shù)以卜六進(jìn)制數(shù)的形式輸出。

#include<stdio.h>

voidmain()

(

inta[100],xzi=0;

scanf("%d",&x);

while(x)

{

a[i++]=x%16;

x/=16;

)

i--;

while(i>=0)

(

if(a[i]>9)printf("%c";A'+a[i]-10);

elseprintf("%d"za[i]);

i-;

)

printf("\n");

}

6、刪去一維數(shù)組中所有相同的數(shù),使之只剩一個(gè)。數(shù)組中的數(shù)已按由小到大的順序排列,

函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個(gè)數(shù)。例如,

若一維數(shù)組中的數(shù)據(jù)是:2223445666677899101010刪除后,數(shù)組中的內(nèi)

容應(yīng)該是:2345678910。

#include<stdio.h>

voidmain()

(

inta[19]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},n,i,j;

n=19;

for(i=17;i>=0;i--)

if(a(i]==a[i+l])

(

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

a[j-l]=a[j];

n--;

)

for{i=0;i<n;i++)

printf("%d\t",a[i]);

printf("\n");

7、求一個(gè)3*3矩陣對(duì)角線元素之和。

if(a[i]>9)printf("%c";A'+a[i]-10);

elseprintf(”%d,a[i]);

i-;

)

printf("\n");

)

10、不使用strcmp函數(shù),編程實(shí)現(xiàn)2個(gè)字符串的比較。*/

#include<stdio.h>

voidmain()

(

chara[30],b[30];

inti=0;

scanf("%s%s”,a,b);

while(a[i]==b[i]&&a[i]&&b[i])

i++;

if(a[i]==b[i])

printf("%s等于%s\n”,a,b);

elseif(a[i]<b[i])

printf("%s小于%六n”,a,b);

else

printf("%s大于%s\n",a,b);

)

*1、通過(guò)鍵盤輸入3個(gè)整數(shù),輸出最大值和最小值

#include<stdio.h>

voidmain()

{

inta,b,c,max,min;

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

max=min=a;

if(b>max)max=b;

if(c>max)max=c;

if(b<min)min=b;

if(c<min)min=b;

printf("最大值為%d,最小值為%d\n",max,min);

)

2、從鍵盤輸入圓的半徑r和一個(gè)整型數(shù)k,當(dāng)k=l時(shí),計(jì)算并輸出圓的面積;當(dāng)k=2時(shí),

計(jì)算并輸出圓的周長(zhǎng)。編程實(shí)現(xiàn)以上功能

#include<stdio.h>

voidmain()

|

intrzk;

scanf("%d%d"/&r,&k);

if(k==l)

printf(”圓的面積為%租”,3.1415926*產(chǎn)r);

if(k==2)

printf("圓的周長(zhǎng)為%下吃3.1415926*2*■

)

3、編程實(shí)現(xiàn):輸入整數(shù)a和b,若a2+b2大于100,則輸出a2+b2百位以上的數(shù)字,否則

輸出兩數(shù)之和。

#include<stdio.h>

voidmain()

(

inta,b;

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

if(a*a+b*b>100)

printf("%d\n"/(a*a+b*b)/100);

else

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

)

4、從鍵盤上輸入兩個(gè)整數(shù),判斷其大小關(guān)系并將結(jié)果輸出。

#include<stdio.h>

voidmain()

{

intazb;

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

if(a>b)

printf("a>b\n");

elseif(a<b)

printf("a<b\n");

else

printf("a==b\n");

)

5、猜數(shù)游戲。先將要猜的整數(shù)存放在變量num中,當(dāng)程序運(yùn)行時(shí),提示游戲者通過(guò)鍵盤

輸入自己所猜的數(shù)cai,若猜對(duì)了,即cai==num,

屏幕顯示“**恭喜你猜中了!**“,然后結(jié)束程序運(yùn)行;如果猜錯(cuò)了,屏幕除了顯示”*?對(duì)不

起,你猜錯(cuò)了!**”外,還顯示是猜大了或猜小了的信息,以幫助游戲者繼續(xù)往正確處猜。

#include<stdio.h>

voidmain()

{

intnum=100,cai;

scanf("%d",&cai);

if(cai==num)

prints**恭喜你猜中了!

elseif(cai<num)

printf=**對(duì)不起,你猜錯(cuò)了!**\n**你猜小了!**\n");

else

printf「*對(duì)不起,你猜錯(cuò)了!**\n**你猜大了!**\n");

6、將一個(gè)正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。

#include<stdio.h>

voidmain()

(

inti,a,f=l;

scanf("%d"z&a);

printf("%d=l",a);

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

while(a%i==0)

{a/=i;

printf("*%d"J);

)

)

7、求輸入的十個(gè)整數(shù)中正數(shù)的個(gè)數(shù)及其平均值。

#include<stdio.h>

voidmain()

{

inti,a,n=0;floatsum=0;

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

{scanf("%d"z&a);

if(a>0)

{sum+=a;n++;}

}

printf("正整數(shù)的個(gè)數(shù)為%d,正整數(shù)的平均值為%f\n",n,sum/n);

)

8、某旅行團(tuán)有男人、女人和小孩共30人,在紐約一家小飯館里吃飯,該飯館按人頭收費(fèi),

每個(gè)男人收3美元,每個(gè)女人收2美元,

每個(gè)小孩收1美元,共收取50美元。共有多少組解?

#include<stdio.h>

voidmain()

(

inti,j,k;

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

for(j=l;j<=15;j++)

if(i*3+2*j+30-i-j==50)

printf("男人%d人,女人%d人,小孩%d人\n",i,j,30-i-j);

)

9、在輸入的一批正整數(shù)中求出最大者,輸入0結(jié)束循環(huán)。

#include<stdio.h>

voidmain()

intx,max;

scanf(”%d”,&x);

max=x;

while(x!=O)

{scanf("%d"z&x);

if(x>max)max=x;

)

printf("最大值為%d\n,mdx);

)

10、輸出所有的"水仙花數(shù)「所謂的“水仙花數(shù)”是指一個(gè)3位數(shù),其各位數(shù)字的立方和

等于該數(shù)本身。例如,153是一個(gè)水仙花數(shù),

因?yàn)?53=13+53+33

#include<stdio.h>

voidmain()

(

inti,nl,n2,n3;

for(i=100;i<1000;i++)

{nl=i/100;n2=i/10%10;n3=i%10;

if(nl*nl*nl+n2*n2*n2+n3*n3*n3==i)

printf("%d\n"zi);

}

}

11、將從鍵盤輸入的一對(duì)數(shù),由小到大排序輸出,當(dāng)輸入一對(duì)相等數(shù)時(shí)結(jié)束循環(huán)。

#include<stdio.h>

voidmain()

{

intnl,n2;

scanf("%d%d",&nlz&n2);

while(nl!=n2)

(

if(nl>n2)

printf("%d,%d\n",n2,nl);

else

printf("%d,%d\n",nl,r)2);

',

scanf(%d%d"/&nlz&n2);

)

}12、使用循環(huán)語(yǔ)句實(shí)現(xiàn)如下圖形的輸出

1

123

12345

1234567

123456789*/

#include<stdio.h>

voidmain()

inti,j;

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

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

printf("");

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

printf("%d",j);

printf("\n");

}

/*1、輸入某年某月某日,判斷這一天是這一年的第幾天?

#include<stdio.h>

voidmain()

{

inty/m/d,sum=0;

scanf("%d%d%d"/&y,&mJ&d);

if(y%4==0&&y%100!=0||y%400==0)

sum=l;

switch(m)

(

casel:sum=d;

case2:sum=d+31;

case3:sum+=d+31+28;

case4:sum+=d+31+28+31;

case5:sum+=d+31+28+31+30;

case6:sum+=d+31+28+31+30+31;

case7:sum+=d+31+28+31+30+31+30;

case8:sum+=d+31+28+31+30+31+30+31;

case9:sum+=d+31+28+31+30+31+30+31+31;

case10:sum+=d+31+28+31+30+31+30+31+31+30;

casell:sum+=d+31+28+31+30+31+30+31+31+30+31;

case12:sum+=d+31+28+31+30+31+30+31+31+30+31+30:

)

printf("%d年:%dJl%d日是這一年的第%~天\n”,y,m,d,sum);

)

#include<stdio.h>

voidmain()

inty,m,d,sum=0;

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

switch(m)

case12:sum+=30;

casell:sum+=31;

case10:sum+=30;

case9:sum+=31;

case8:sum+=31;

case7:sum+=30;

case6:sum+=31;

case5:sum+=30;

case4:sum+=31;

case3:sum+=28;

case2:sum+=31;

casel:sum+=d;

}

if((y%4==0&&y%100!=01|y%400==0)&&m>2)

sum+=l;

printf("%d年%(1月%~日是這一年的第%€1天\rT,y,m,d,sum);

)

2、編程判斷輸入的正整數(shù)是是否既是5乂是7的整倍數(shù)。若是,則輸出yes;否則輸出noo

#include<stdio.h>

voidmain()

(

inty;

scanf("%d",&y);

if(y%5==0&&y%7==0)

printf("yes\n");

else

printf("no\n");

}

3、簡(jiǎn)單計(jì)算器程序。用戶從鍵盤輸入兩個(gè)整數(shù)和一個(gè)字符,字符必須是中、」、*、/其

中的一個(gè),然后程序輸出兩數(shù)作相應(yīng)運(yùn)算的結(jié)果。

輸出計(jì)算結(jié)果。

#include<stdio.h>

voidmain()

|

intazb;

charc;

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

switch(c)

(

"

case+':printf("%d%c%d=%d\n"/a,c,b,a+b);break;

,

case'-:printf("%d%c%d=%d\n"/a/c,b,a-b);break;

'

case*':printf("%d%c%d=%d\n"/a/c/bza*b);break;

case7':printf("%d%c%d=%f\n"/a,c/b/(float)a/b);break;

}

4、從鍵盤輸入3個(gè)整數(shù),按由小到大的順序輸出。

#include<stdio.h>

voidmain()

{

inta,b,c,t;

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

if(a>b)

{t=a;a=b;b=t;}

if(b>c)

{t=c;c=b;b=t;}

if(a>b)

{t=a;a=b;b=t;}

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

5、一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10

次落地時(shí),共經(jīng)過(guò)多少米?第10次反彈多高?

#include<stdio.h>

voidmain()

{

inti;floatt=100,sum=10C;

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

(

t=t/2;sum+=t*2;

)

printf("%f%f\n",sum,t/2);

)

6、百錢買百雞:一百個(gè)銅錢買了一百只雞,其中公雞一只5錢、母雞一只3錢,小雞一錢

3只,問(wèn)一百只雞中公雞、母雞、小雞各多少?

#include<stdio.h>

voidmain()

|

intijk;

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

for(j=l;j<=33;j++)

for(k=3;k<100;k+=3)

if(5*i+3*j+k/3==100&&i+j+k==100)

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

)

7、輸出半徑為1到10的圓的面積,當(dāng)面積大于100時(shí)停止輸出。

#include<stdio.h>

voidmain()

inti;floatarea;

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

{area=3.1415926*i*i;

if(area>100)break;

("半徑:,圓的面積:

printf%d%f\n"J/area);

)

)

8、猜數(shù)游戲:任意設(shè)置一個(gè)整數(shù),請(qǐng)用戶從鍵盤上輸入數(shù)據(jù)猜測(cè)設(shè)置的數(shù)是什么,告訴用

戶是猜大了還是小了。如果10次以內(nèi)猜對(duì)答案,

用戶獲勝。否則,告訴用戶設(shè)置的數(shù)據(jù)是什么。

#include<stdio.h>

voidmain()

{

int1,5=100,031;

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

{scanf("%d"z&cai);

if(cai==s)break;

if(cai<s)printf("猜小了\n“);

else

printf("猜大了\n)

)

if(i<=10)

printf("恭喜你,猜對(duì)了!\n");

else

printf(“不好意思,你猜錯(cuò)了,正確答案是%d\n”,s);

}

9、計(jì)算:s=l+12+123+1234+12345o

#include<stdio.h>

voidmain()

(

inti,s=O,t=O;

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

{t=t*10+i;

s+=t;

)

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

)

10、輸出100以內(nèi)能被3整除且個(gè)位數(shù)為6的所有整數(shù)

#include<stdio.h>

voidmain()

inti,t=0;

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

{t=i*10+6;

if(t%3==0)

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

11、鍵盤上輸入若干個(gè)學(xué)生的成績(jī),統(tǒng)計(jì)并輸出最高成績(jī)和最低成績(jī),當(dāng)輸入負(fù)數(shù)時(shí)結(jié)

束輸入

#include<stdio.h>

voidmain()

(

inti,score,max,min;

scanf(”%d”,&score);

max=min=score;

while(score>=0)

{scanf(”%d”,&score);

if(score>max)max=score;

if(score<min&&score>=0)min=score;

)

("最高成績(jī)?yōu)?最低成績(jī)?yōu)椋?/p>

printf%d,%d\n",max/min);

12、自然常數(shù)e的計(jì)算公式為e=l+l/l!+l/2!+l/3!+…+l/n!+...。請(qǐng)編制程序計(jì)算e的近

似值,要求被舍棄的首項(xiàng)1/n!<0.000001o*/

#include<stdio.h>

voidmain()

(

floatn=l,e=l,t;

t=l/n;

while(t>=0.000001)

(

e+=t;

n++;

t*=l/n;

)

printf(”%.10f\n”,e);

)

例2.1

include<stdio.h>

main()

{doublea,b,area;

a=1.2;/*將矩形的兩條邊長(zhǎng)分別賦給a和b*/

b=3.6;

area=a*b;/*計(jì)算矩形的面積并存儲(chǔ)到變量area中*/

/*輸出矩形的兩條邊長(zhǎng)和面積*/

printf("a=%f,b=%f,area=%f\n"za,b,area);

例2.2

^include"stdio.h"

#definePI3.14159/*定義符號(hào)名PI為3.14159*/

main()

{doubler,s;

r=5.0;

s=PI*r*r;

printff's=%f\n",s);

)

2.24

#includestdio.h;

main();/*mainfunction*/

floatr,s;/*/*risradius*/,/*sisareaofcircular*/*/

r=5.0;

s=3.14159*r*r;

printf("%f\n",s)

printf("%f\n",s)

2.25

main/*mainfunction*/

{floata,b,c,v;/*a,b,caresides,visvolumeofcube*/

a=2.0;b=3.0;c=4.0

v=a*b*c;

printf("%f\n",v)

}

3.2.1

#include<stdio.h>

main()

{inti=2518;

doublea=3.1415;

printf("i=%d,a=%f,a*10=%e\n",i,a,a*10);

例3.1

#include<stdio.h>

main()

{intx,y,t;

printf("Enterx&y:\n");

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

printf("x=%dy=%d\n",x,y);

t=x;x=y;y=t;

printf("x=%dy=%d\n",x,y);

}

例3.2

ttinclude<stdio.h>

main()

{doublex;

printf("Enterx:\n");

,,

scanf("%lf,&x);

printf("(l)x=x);

x=x*100;

x=x+0.5;

x=(int)x;

x=x/100;

printf("(2)x=x);

}

3.4

include<stdio.h>

main()

{intx=10,y=3;

printf("%d\n",y=x/y);

)

3.16

main

{doublea,b,c,s,v;

printf(inputa,b,c:\n);

scanf("%d%d%d”,a,b,c);

s=a*b;/*計(jì)算長(zhǎng)方形面積*/

v=a*b*c;/*計(jì)算長(zhǎng)方體體積*/

printf("%d%d%d”,a,b,c|;

printf("s=%f\n”,s,"v=%d\n,?;

例4.1

#include<stdio.h>

main()

{intx,y;

printf("Enterx&y:\n");

scanf("%d%d",&x,&y);printf("x,y:%d%d\n”,x,y);

if(x>y)printf("x=%d\n",x);

iffy>x)printf("y=%d\n",y);

if(x==y)printf("x==y%d:\n",x);

)

例4.2

^include<stdio.h>

main()

{inta,b,c,t;

printf("inputa,b,c:");scanf("%d%d%d",&a,&b,&c);

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

if(a>b)/*如果a比b大,則進(jìn)行交換,把小的數(shù)放入a中*/

{t=a;a=b;b=t;)

if(a>c)/*如果a比c大,則進(jìn)行交換,,把小的數(shù)放入a中*/

{t=a;a=c;c=t;}/*至此a、b、c中最小的數(shù)已放入a中*/

if(b>c)/*如果b比c大,則進(jìn)行交換,把小的數(shù)放入b中*/

{t=b;b=c;c=t;}/*至比a、b、c中的數(shù)已按由小到大順序放好*/

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

)

例4.3

#indude<stdio.h>

main()

{intx,y;

printf("Enterx&y:");

scanf("%d%d",&x/&y);printf("x,y:%d%d\n”,x,y);

if(x>y)

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

else

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

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

)

例4.4

^include<stdio.h>

main()

{intn;

printff'inputn:");

scanf("%d",&n);

if(n%3==0)/*判斷n能否被3整除*/

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

else

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

例4.5

ttinclude<stdio.h>

main()

{intg;

printff'Enterg:");

scanf("%d",&g);

printf("g=%d:",g);

if(g>=90)printf("A\n");

elseif(g>=80)printf(

elseif(g>=70)printf("C\n");

elseif(g>=60)printf("D\n");

elseprintf("E\n");

)

例4.6

#include<stdio.h>

main()

{intg;

printf("Enteramark:");scanf("%d",&g);/*g中存放學(xué)生的成績(jī)*/

printff'g=%d:,g);

switch(g/10)

{case10:

case9:printf("A\n");

case8:printf("B\n");

case7:printf("C\n");

case6:printf("D\n");

default:printf("E\n");

}

)

^include<stdio.h>

main()

{intg;

printf("Enteramark:");scanf("%d",&g);/*g中存放學(xué)生的成績(jī)*/

printf("g=%d:,g);

switch(g/IO)

{case10:

case9:printf("A\n");break;

case8:printf("B\n");break;

case7:printf("C\n");break;

case6:printf("D\n");break;

default:printf("E\n");

)

}

4.5

#include<stdio.h>

main()

{inta=2,b=-l,c=2;

if(a<b)

if(b<0)c=0;

elsec+=1;

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

)

4.6

ttinclude<stdio.h>

main()

{intw=4,x=3,y=2,z=l;

printf("%d\n〃,(w<x?w:z<y?z:x));

)

4.7

//include<stdio.h>

main()

{inta,b,s;

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

s=a;

if(a<b)s=b;

s*=s;

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

4.9

#include<stdio.h>

main()

{intk=-3;

if(k<=O)printf(//****\nw|

elseprintf("&&&&\n");

}

4.17

//include<stdio.h>

main()

{inta=100;

if(a>100)printf("%d\n”,a>100);

elseprintf("%d\n",a<=100);

)

例5.1

ttinclude<stdio.h>

main()

{inti,sum;

i=0;sum=0;/*i和sum的初值為0*/

while(sum<10000)/*當(dāng)sum小于10000時(shí)執(zhí)行循環(huán)體*/

{sum+=i*i;/*sum累加i的平方*/

i++;/*在循環(huán)體中每累加一次后,i增1*/

)

printf("n=%dsum=%d\n"/i-1,sum);

例5.2

//include<stdio.h>

#include<math.h>/*調(diào)用fabs函數(shù)時(shí)要求包含math.h文件*/

main()

{ints;

floatn,t,pi;

t=1.0;/*t中存放每項(xiàng)的值,初值為1*/

pi=0;/*pi中存放所求兀的值,初值為0*/

n=1.0;/*n中存放每項(xiàng)分母*/

s=l;/*s為符號(hào)位,其值在1和-1之間變億*/

while(fabs(t)>=le-6)

{pi=pi+1;

n+=2.0;

S=-S,/*改變符號(hào)*/

t=s/n;

}

pi=pi*4;

printf("pi=%f\n",pi);

例5.3

//include<stdio.h>

ttinclude<math.h>

main()

{doublexl,x2;

xl=0.0;

x2=cos(xl);

while(fabs(x2-xl)>le-6)

{xl=x2;

x2=cos(xl);

)

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

例5.4

#include<stdio.h>

main()

{intfl,f2,f;

fl=0;f2=l;

do

{f=fl+f2;fl=f2;f2=f;

}while(f2<=1000);

printff'F=%d\n",f2);

)

例5.5

#include<stdio.h>

main()

{inti,sum;

sum=0;/*sum的初值為0*/

for(i=l;i<=100;i++)/*當(dāng)i小于或等于100時(shí)執(zhí)行循環(huán)體*/

sum+=i;/*在循環(huán)體中累加i一次*/

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

例5.6

ttinclude<stdio.h>

main()

{doubler,s,Pi=3.1416;

for(r=0.5;r<=2.5;r+=0.5)

{s=Pi*r*r;/*計(jì)算圓面積s的值*/

printf("r=%3.1fs=%f\n"zr,s);

)

)

例5.7

ttinclude<stdio.h>

main()

{intk,i,j;

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

{for(k=1;k<=i;k++)printf("");

for(j=0;j<7-i*2;j++)printf("*");

printf("\n");

)

例5.8

#include<stdio.h>

main()

{intk,i,tag;

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

{tag=0;

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

if(i%k==0)tag=l;

if(tag==0)printf("%d,"zi);

)

)

#include<stdio.h>

//include<math.h>

main()

{intk,i,tag;

printf("2,");

for(i=3;i<=100;i+=2)

{tag=0;

for(k=2;tag==0&&k<sqrt(i);k++)

if(i%k==0)tag=l;

if(tag==0)printf("%d,i);

)

例5.9

//include<stdio.h>

main()

{inti,s;

s=0;

for(i=1;;i++)

{s=s+i;

if(s>5000)break;

}

printff's=%d,i=%d\n"/s,i);

)

例5.10

#include<stdio.h>

main()

{intk=0,s=0,i;

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

{s=s+i;

if(s>5)

{printf("****i=%d,s=%d,k=%d\n",i,s,k);/*1#輸出語(yǔ)句*/

continue;

)

k=k+s;

printf("i=%d,s=%d,k=%d\n",i,s,k);/*2#輸出語(yǔ)句*/

}

例5.11

#include<stdio.h>

main()

{intx,max;

printf("Enter-1toend:\n");

do

{printf("Enterx:");scanf("%d"z&x);

}while(x<0&&x!=-1);

max=x;

while(x!=-1)

{printf("Enterx:");scanf("%d",&x);

if(x>0&&x>max)max=x;/*max始終存放大于零的最大值*/

)

iffmax!=-1)printf("max=%d\n",max);

)

例5.12

#include<stdio.h>

ttinclude<math.h>

main()

{floata,xO,xl;

printf("\nlnputa:");scanf("%f",&a);

if(a<0)

printf("error!\n“);/*不能求負(fù)數(shù)的平方根*/

else

{x0=a/2;

xl=(x0+a/xO)/2;

do

{xO=xl;

xl=(x0+a/xO)/2;

)

while(fabs(xO-xl)>le-6);

printf("sqrt(%f)=%f標(biāo)準(zhǔn)sqrt(%f)=%f\n",a,xl,a,sq-t(a));

5.5

#include<stdio.h>

main()

{inti,sum;

for(i=1;i<6;i++)sum+=sum;

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

)

5.6

//include<stdio.h>

main()

{inty=10;

for{;y>0;y-)

if(y%3==0)

{printf("%d”,-y);continue;

)

)

5.8

ttinclude<stdio.h>

main()

{inti;

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

{if(i%2)printf("*〃);

elsecontinue;

printf(〃#");

)

printf(w$\nw);

)

5.10

#include<stdio.h>

main()

{intx,i;

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

{x=i;

if(++x%2==0)

if(++x%3==0)

if(++x%7==0)

printf("%d",x);

}

printf(Qn〃);

)

5.13

#include<stdio.h>

main()

{intx=2;

while(x--);

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

5.16

//include<stdio.h>

main()

{floatx,amax,amin;

scanf("%f",&x);

amax=x;amin=x;

while([1])

{if(x>amax)amax=x;

if([2])amin=x;

scanf("%f",&x);

)

printf(/z\namax=%f\namin=%f\rT,amax,amin);

)

例6.1

ttinclude<stdio.h>

main()

{charch;inti;

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

{ch=i+65;

if(i%2==0)printf("\n"?;

printf("c=%cASCII=%d",ch,ch);

}

putchar(\n);

)

例6.2

#include<stdio.h>

main()

{

printf("PressEntertocortinue\n");

while(getchar()!='\n');

)

例6.3

#include<stdio.h>

main()

{chare;

while((c=getchar())!='\n')

{if(c>=,a,&&c<='z')c=c-"a'+'A';

putchar{c);

)

putchar('\n');

例6.4

ttinclude<stdio.h>

#include<ctype.h>

main()

{longn=O;charch;

while((ch=getchar())!='!')/*未遇到結(jié)束標(biāo)志時(shí)循環(huán)繼續(xù)*/

if(isspace(ch))n++;

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

)

例6.5

#include<stdio.h>

//include<ctype.h>

main()

{charc;

c=getchar();

while(c未遇到結(jié)束標(biāo)志時(shí)循環(huán)繼續(xù)*/

{if(isalpha(c))/*調(diào)用函數(shù)判斷c中是否為字母*/

{c=tolower(c);/*調(diào)用函數(shù)把大寫字母轉(zhuǎn)換成小寫字母*/

c=(c-'a,+l)%26+,a,;

)

putcharfc);

c=getchar();

)

printf("\n");

)

6.7

//include<stdio.h>

main()

{charcl=A,c2=Y;

printf("%d,%d\n”,cl,c2);

)

6.8

//include<stdio.h>

main()

{charx=A;

x=(x>=A&&x<=Z)?(x+32):x;

printf("%c\n”,x);

6.9

ttinclude<stdio.h>

main()

{charch;

ch=A+5-3;

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

)

6.10

#include<stdio.h>

main()

{intc;

while((c=getchar())!=\n)

{switch(c-2)

{case0:

case1:putchar(c+4);

case2:putchar(c+4);break;

case3:putchar(c+3);

default:putchar(c+2);break;

)

}printf(Qn〃);

)

例7.2

ttinclude<stdio.h>

voidtry(int,int,int);/*說(shuō)明函數(shù)try為無(wú)值型,含有3個(gè)int類型的形參*/

main()

{intx=2,y=3,z=0;

printf("⑴x=%dy=%dz=%d\n",x,y,z);

try(x,y,z);

printf("(4)x=%dy=%dz=%d\n'\x,y,z);

)

voidtryfintx,intyzintz)

{printf("(2)x=%dy=%dz=%d\n",x,y,z);

z=x+y;

x=x*x;

y=yy;

printf("⑶x=%dy=%dz=%d\n",x,y,z);

例7.3

ttinclude<stdio.h>

voidsw叩(int,int);/*函數(shù)說(shuō)明語(yǔ)句*/

main()

{intx=10,y=20;

printf("⑴x=%dy=%d\n",x,y);

swap(x,y);

printf("⑷x=%dy=%d\n",x,y);

)

voidswap(inta,intb)

{intt;

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

t=a;a=b;b=t;

printfn3)a=%db=%d\n",a,b);

}

例7.4

#include<stdio.h>

intisprime(int);/*isprime函數(shù)的說(shuō)明語(yǔ)句*/

main()

{intx;

printf("Enteraintegernumber:");

scanf("%d”,&x);"從鍵盤輸入一個(gè)整數(shù)*/

if(isprime(x))

printf("%disprimeXn",x);/*當(dāng)函數(shù)返回1時(shí),輸出“是素?cái)?shù)”*/

else

/*當(dāng)函數(shù)返回時(shí),輸出”不是素?cái)?shù)“*/

printf("%disnotprime\n"zx);0

intisprime(inta)/*定義isprime函數(shù)*/

{inti;

for(i=2;i<=a/2;i++)

if(a%i==0)return0;/*a一旦能被某個(gè)數(shù)整除,印不是素?cái)?shù),返回0*/

return1;/*a不能被2到a/2之間任何一個(gè)數(shù)整除,返回1*/

例7.5

#include<stdio.h>

Intisprime(int);/*isprime函數(shù)的說(shuō)明語(yǔ)句*/

voideven(int);/*even函數(shù)的說(shuō)明語(yǔ)句*/

main()

{inta;

printf("Enteraevennumber:");scanf("%d",&a);

if(a%2==0)even(a);

elseprintf("The%disntevennumberXn",a);

}

voideven(intx)/*定義even函數(shù)*/

{inti;

for(i=2;i<=x/2;i++)

if(isprime(i))

if(isprime(x-i))

{printf("%d=%d+%d\n",x,i,x-i);return;}

)

intisprime(inta)/*isprime函數(shù)定義與例7.4同,在此省略*/

{……}

例7.6

//include<stdio.h>

intsum(int);/*sum函數(shù)的說(shuō)明語(yǔ)句*/

intf(int);/*f函數(shù)的說(shuō)明語(yǔ)句*/

main()

{inta,b;

printf("tnteraintegernumber:");//輸入一個(gè)整數(shù)*7

scanf(”%d”,&a);

b=sum(a);/*調(diào)用sum函數(shù)求f(x)的累加和*/

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

)

intsum(intn)/*定義sum函數(shù)*/

{intx,s=0;

for(x=0;x<=n;x++)s+=f(x);

returns;/*返回累加和*/

)

intf(intx)/*定義f(x)函數(shù)*/

{returnx*x+l;}

例7.7

^include<stdio.h>

ttinclude<math.h>

doubleinteg(doublea,doubleb)

{doubles,x,h;

intn=100,i;

h=fabs(b-a)/n;/*fabs()為求絕對(duì)值函數(shù)*/

s=(sin(a)+sin(b))/2.0;

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

{x=a+i*h;s=s+sin(x);}

s=s*h;

returns;

)

main()

{doubles;

s=integ(0.0z1.5);

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

)

例7.8

^include<stdio.h>

#include<ctype.h>

charmyupper(charch)

{if(ch>=a&&ch<=z)ch=ch-32;

returnch;

)

main()

{charc;

while((c=getcharf))!='@')

{c=myupper(c);

putchar(c);

)

}

例7.9

#include<stdio.h>

Longcountchf);/*countch函數(shù)說(shuō)明語(yǔ)句*/

main()

{longn;

n=countch();

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

longcountch()

{longcn;

for(cn=0;getchar()cn++);

returncn;

例7.10

//include<stdio.h>

#defineIN1/*標(biāo)志在一個(gè)單詞的內(nèi)部*/

#defineOUT0/*標(biāo)志在一個(gè)單詞的外部*/

intcountwordf);/*函數(shù)說(shuō)明語(yǔ)句*/

main()

{intn;

n=countword();

printf("n=%d\n"zn);

}

intcountword()

{intc,nw,state;

state=OUT;/*在單詞的外部*/

nw=0;

while((c=getchar())

{if(c=="||c=='\n'||c=='\t,)

state=OUT;/*讀入的字符是分隔符,在一個(gè)單詞的外部*/

elseinstate==OUT)/+如果遇到單詞的第一個(gè)字符*7

{state=IN;/*狀態(tài)變量置成IN:在單詞的內(nèi)部*/

nw++;/*單詞個(gè)數(shù)增1*/

)

}

returnnw;

)

7.4

ttinclude<stdio.h>

intfunc(inta,intb)

{intc;

c=a+b;returnc;

)

main()

{intx=6,y=7,z=8,r;

r=func{(x-,y++,x+y),z-);printf("%d\n",r)

7.5

ttinclude<stdio.h>

intf(intzint);

main()

{inti=2,p;

p=f(i,i+1);printf("%d\n”,p);

}intf

(

inta,intb

)

{intc;

c=a;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-l;

return(c);

)

7.6

#include<stdio.h>

intfun(inta,intb,intc)

{c=a*b;}

main()

{intc;

fun(2,3,c);printf("%d\n",c);

7.7

#include<stdio.h>

doublef(intn)

{inti;doubles;

s=1.0;

for(i=1;i<=n;i++)s+=1.0/i;

returns;

)

main()

{inti,m=3;doublea=0.0;

for{i=0;i<m;i++)a+=f(i);

printfa);

7.8

ttinclude<stdio.h>

unsignedfun6(unsignedmm)

{unsignedk=1;

do

{k*=num%10;num/=10;}

while(num);

returnk;

)

main()

{unsignedn=26;

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

}

7.9

//include<stdio.h>

doublesub(doublex,doubley,doublez)

{y-=1.0;z=z+x;returnz;}

main()

{doublea=2.5,b=9.0;

printfsub(b-a,a,a));

)

7.10

ttinclude<stdio.h>

intfun2(inta,intb)

{intc;

c=(a*b)%3;returnc;

}intfunl(

inta,intb

)

{intc;

a+=a;b+=b;c=fun2(a,b);

returnc*c;

)

main()

{intx=11,y=19;

printf("%d\n”,funl(x,y));

)

例8.1

#include<stdio.h>

main()

{inta,b,min,*pa,*pb,*pmin;

pa=&a;pb=&b;pmin=&min;

scanf("%d%d",pa,pb);/*輸入的值依次放入pa、pb所指存儲(chǔ)單元中*/

printf("a=%db=%d\n",a,b);/*通過(guò)輸出,驗(yàn)證a、b中的值*/

*pmin=*pa;/*假定a中的值最小,將其賦給min*/

if(*pa>*pb)*pmin=*pb;/*若b中的值比a小,將其賦給min*/

/*輸出小值*/

printf("min=%d\n"zmin);

)

例8.2

//include<stdio.h>

intmyadd(int*a,int*b)

{intsum;

sum=*a+*b;

returnsum;

)

main()

{intx,y,z;

printfC'Enterx.y:");

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

z=myadd(&x,&y);

printf("%d+%d=%d\n"/x,y,z);

}

例8.3

//include<stdio.h>

voidswap(int*,int*);

main()

{intx=30,y=20;

printf("(l)x=%dy=%d\nx,y);

swap(&x,&y);

printf("(4)x=%dy=%d\nx,y);

)

voidswap(int*a,int*b)

{intt;

。)

print"a=%db=%d\n"z*az*b);

t=*a;*a=*b;*b=t;

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

例8.4

#include<stdio.h>

voidswap(int*xl,int*x2)

{intt;

t=*xl;*xl=*x2;*x2=t;

)

voidorder(int*a,int*b)

{if(*a>*b)swap(a,b);}

main()

{intx,y;

printf("Enterx,y:");

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

printff'x=%dy=%d\n“,x,y);

order(&xz&y);

printf("x=%dy=%d\n",x,y);

例8.5

#include<stdio.h>

int*fun(int*,int*);/*函數(shù)說(shuō)明語(yǔ)句*/

main()

{int*p,i,j;

printf("Entertwonumbe-:");

scanf("%d%d",&i,&j);

p=fun(&i,&j);/*p將得到i或j的地址“/

printf("i=%d,j=%d,*p=%d\n"/\,j,*p);

)

int*fun(int*a,int*b)

{if(*a>*b)returna;

returnb;

)

8.2

include<stdio.h>

main()

{printf("%d\n”,NULL);)

8.3

ttinclude<stdio.h>

voidsub(intx,inty,int*z)

{*z=y-x;}

main()

{inta,b,c;

sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);

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

)

8.4

ttinclude<stdio.h>

main()

{intk=2,m=4,n=6,*pk=&k,*pm=&m,*p;

*(p=&n)=*pk*(*pm);printf("%d\n",n);

)

8.8

#include<stdio.h>

voidprtv(int*x)

{printf("%d\n〃,++*x);}

main()

{inta=25;

prtv(&a);

)

8.9

#include<stdio.h>

main()

{int**kz*a,b=100;

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

)

8.10

#include<stdio.h>

voidfun(float*a,float*b)

{floatw;

*a=*a+*a;w=*a;*a=*b;*b=w;

)

main()

{floatx=2.0,y=3.0,*px=&K,*py=&y;

fun(px,py);printf("%2.U£%2.0f\n”,x,

溫馨提示

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

評(píng)論

0/150

提交評(píng)論