40個C語言的基礎(chǔ)編程題_第1頁
40個C語言的基礎(chǔ)編程題_第2頁
40個C語言的基礎(chǔ)編程題_第3頁
40個C語言的基礎(chǔ)編程題_第4頁
40個C語言的基礎(chǔ)編程題_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、如果您需要使用本文檔,請點擊下載按鈕下載!C語言基礎(chǔ)編程題【程序1】題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數(shù)為多少?1.程序分析:兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,21.2.程序源代碼:main()long f1,f2;int i;f1=f2=1;for(i=1;i=20;i+) printf(%12ld %12ld,f1,f2);if(i%2=0) printf(n);/*控制輸出,每行四個*/f1=f1+f2; /*前兩個月加起來賦值給第三個月*/f2=f1+f2; /*前兩個月

2、加起來賦值給第三個月*/=【程序2】題目:判斷101-200之間有多少個素數(shù),并輸出所有素數(shù)。1.程序分析:判斷素數(shù)的方法:用一個數(shù)分別去除2到sqrt(這個數(shù)),如果能被整除,則表明此數(shù)不是素數(shù),反之是素數(shù)。 2.程序源代碼:include math.hmain()int m,i,k,h=0,leap=1;printf(n);for(m=101;m=200;m+) k=sqrt(m+1);for(i=2;i=k;i+)if(m%i=0)leap=0;break;if(leap) printf(%-4d,m);h+;if(h%10=0)printf(n); leap=1;printf(nThe

3、 total is %d,h);=【程序3】題目:打印出所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個“水仙花數(shù)”,因為153=1的三次方5的三次方3的三次方。1.程序分析:利用for循環(huán)控制100-999個數(shù),每個數(shù)分解出個位,十位,百位。2.程序源代碼:main()int i,j,k,n;printf(water flowernumber is:);for(n=100;n1000;n+)i=n/100;/*分解出百位*/j=n/10%10;/*分解出十位*/k=n%10;/*分解出個位*/if(i*100+j*10+k=i*i*i+j*

4、j*j+k*k*k)printf(%-5d,n);printf(n);=【程序4】題目:將一個正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。 程序分析:對n進行分解質(zhì)因數(shù),應(yīng)先找到一個最小的質(zhì)數(shù)k,然后按下述步驟完成: (1)如果這個質(zhì)數(shù)恰等于n,則說明分解質(zhì)因數(shù)的過程已經(jīng)結(jié)束,打印出即可。(2)如果nk,但n能被k整除,則應(yīng)打印出k的值,并用n除以k的商,作為新的正整數(shù)你n,重復(fù)執(zhí)行第一步。(3)如果n不能被k整除,則用k+1作為k的值,重復(fù)執(zhí)行第一步。 2.程序源代碼:/* zheng int is divided yinshu*/main()int n,i;printf(

5、nplease input a number:n);scanf(%d,&n);printf(%d=,n);for(i=2;i=90分的同學(xué)用A表示,60-89分之間的用B表示,60分以下的用C表示。1.程序分析:(ab)?a:b這是條件運算符的基本例子。2.程序源代碼:main()int score;char grade;printf(please input a scoren);scanf(%d,&score);grade=score=90?A:(score=60?B:C);printf(%d belongs to %c,score,grade);=【程序6】題目:輸入兩個正整數(shù)m和n,求其

6、最大公約數(shù)和最小公倍數(shù)。1.程序分析:利用輾除法。2.程序源代碼:第一種做法:#include stdio.hvoid main() int m,n,i; printf(請輸入兩個正整數(shù):); scanf(%d%d,&m,&n); if(mn) i=m; else i=n; while(m%i!=0)|(n%i!=0) i-; printf(%d和%d的最大公約為:%dn,m,n,i);/第二種做法:#include stdio.hvoid main() int m,n,r; printf(請輸入兩個正整數(shù):); scanf(%d%d,&m,&n); if(m=a&c=A&c=0&c=9)di

7、git+;elseothers+;printf(all in all:char=%d space=%d digit=%d others=%dn,letters,space,digit,others);=2 / 9如果您需要使用本文檔,請點擊下載按鈕下載!【程序8】題目:求s=a+aa+aaa+aaaa+aa.a的值,其中a是一個數(shù)字。例如2+22+222+2222+22222(此時共有5個數(shù)相加),幾個數(shù)相加有鍵盤控制。參照P214例21.程序分析:關(guān)鍵是計算出每一項的值。2.程序源代碼:main()int a,n,count=1;long int sn=0,tn=0;printf(pleas

8、e input a and nn);scanf(%d,%d,&a,&n);printf(a=%d,n=%dn,a,n);while(count=n)tn=tn+a;sn=sn+tn;a=a*10;+count;printf(a+aa+.=%ldn,sn);=【程序9】題目:一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地時,共經(jīng)過多少米?第10次反彈多高?1.程序分析:見下面注釋2.程序源代碼:main()float sn=100.0,hn=sn/2;int n;for(n=2;n=10;n+)sn=sn+2*hn;/*第n次落地時共經(jīng)過的米數(shù)*/hn=hn

9、/2; /*第n次反跳高度*/printf(the total of road is %fn,sn);printf(the tenth is %f metern,hn);#include stdio.h main() float h=100,s=100; int i=1; while(i=10) h=h/2; printf(第%2d次反彈的高度:%12.9f,第%2d次落地時經(jīng)過的距離:%12.8fn,i,h,i,s); s=s+2*h; i+; =【程序10】題目:有1、2、3、4個數(shù)字,能組成多少個互不相同且無重復(fù)數(shù)字的三位數(shù)?都是多少?1.程序分析:可填在百位、十位、個位的數(shù)字都是1、2

10、、3、4。組成所有的排列后再去掉不滿足條件的排列。 2.程序源代碼:main()int i,j,k;printf(n);for(i=1;i5;i+)*以下為三重循環(huán)*/for(j=1;j5;j+)for (k=1;k5;k+)if (i!=k&i!=j&j!=k) /*確保i、j、k三位互不相同*/printf(%d,%d,%dn,i,j,k);= 【程序11】題目:一個整數(shù),它加上100后是一個完全平方數(shù),再加上168又是一個完全平方數(shù),請問該數(shù)是多少?1.程序分析:在10萬以內(nèi)判斷,先將該數(shù)加上100后再開方,再將該數(shù)加上268后再開方,如果開方后的結(jié)果滿足如下條件,即是結(jié)果。請看具體分析

11、:2.程序源代碼:include math.hmain()long int i,x,y,z;for (i=1;iy則將x與y的值進行交換,然后再用x與z進行比較,如果xz則將x與z的值進行交換,這樣能使x最小。2.程序源代碼:main()int x,y,z,t;scanf(%d%d%d,&x,&y,&z);if (xy)t=x;x=y;y=t; /*交換x,y的值*/if(xz)t=z;z=x;x=t;/*交換x,z的值*/if(yz)t=y;y=z;z=t;/*交換z,y的值*/printf(small to big: %d %d %dn,x,y,z);=【程序13】題目:用*號輸出字母C的

12、圖案。1.程序分析:可先用*號在紙上寫出字母C,再分行輸出。2.程序源代碼:i nclude stdio.hmain()printf(Hello C-world!n);printf( *n);printf( *n);printf( * n);printf( *n);=【程序14】題目:輸出9*9口訣。1.程序分析:分行與列考慮,共9行9列,i控制行,j控制列。2.程序源代碼:i nclude stdio.hmain()int i,j,result;printf(n);for (i=1;i10;i+) for(j=1;j10;j+)/*如果是ji就是輸出三角形的乘法表*/result=i*j;p

13、rintf(%d*%d=%-3d,i,j,result);/*-3d表示左對齊,占3位*/printf(n);/*每一行后換行*/=【程序12 / 9如果您需要使用本文檔,請點擊下載按鈕下載!5】題目:要求輸出國際象棋棋盤。1.程序分析:用i控制行,j來控制列,根據(jù)i+j的和的變化來控制輸出黑方格,還是白方格。2.程序源代碼:i nclude stdio.hmain()int i,j;for(i=0;i8;i+)for(j=0;j8;j+)if(i+j)%2=0)printf(%c%c,219,219);elseprintf( );printf(n);=【程序16】題目:打印樓梯,同時在樓梯上

14、方打印兩個笑臉。 1.程序分析:用i控制行,j來控制列,j根據(jù)i的變化來控制輸出黑方格的個數(shù)。2.程序源代碼:i nclude stdio.hmain()int i,j;printf(11n);/*輸出兩個笑臉*/for(i=1;i11;i+)for(j=1;j0)x1=(x2+1)*2;/*第一天的桃子數(shù)是第2天桃子數(shù)加1后的2倍*/x2=x1;day-;printf(the total is %dn,x1);=【程序18】題目:兩個乒乓球隊進行比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人。已抽簽決定比賽名單。有人向隊員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請編程

15、序找出三隊賽手的名單。 .程序源代碼:main()char i,j,k;/*i是a的對手,j是b的對手,k是c的對手*/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(order is a-%ctb-%ctc-%cn,i,j,k);=【程序19】 題目:打印出如下圖案(菱形) *1.程序分析:先把圖形分成兩部分來看待,前四行一個規(guī)律,后三行一個規(guī)律,利用雙重for循環(huán),第一層控制行,第二層控制列。 2.程序源代碼:main()int i,j,k;for(i=

16、0;i=3;i+)for(j=0;j=2-i;j+)printf( );for(k=0;k=2*i;k+)printf(*);printf(n);for(i=0;i=2;i+)for(j=0;j=i;j+)printf( );for(k=0;k=4-2*i;k+)printf(*);printf(n);=【程序20】 題目:有一分?jǐn)?shù)序列:2/1,3/2,5/3,8/5,13/8,21/13.求出這個數(shù)列的前20項之和。參照P216例81.程序分析:抓住分子與分母的變化規(guī)律。 2.程序源代碼:main()int n,t,number=20;float a=2,b=1,s=0;for(n=1;n=

17、number;n+)s=s+a/b;t=a;a=a+b;b=t;/*這部分是程序的關(guān)鍵*/printf(sum is %9.6fn,s);=【程序21】 題目:求1+2!+3!+.+20!的和1.程序分析:此程序只是把累加變成了累乘。 2.程序源代碼:main()float n,s=0,t=1;for(n=1;n=20;n+)t*=n;s+=t;printf(1+2!+3!.+20!=%en,s);=【程序22】 題目:一個5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個位與萬位相同,十位與千位相同。1.程序分析:先分離出各位,然后判斷個位與萬位相同,且十位與千位相同,即是回文數(shù)。 2.程

18、序源代碼:main( )long ge,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)/*個位等于萬位并且十位等于千位*/printf(this number is a huiwenn);elseprintf(this number is not a huiwenn);4 / 9如果您需要使用本文檔,請點擊下載按鈕下載!=【程序23】編程將1.100間能被2、3、5分別整除的數(shù)的和求出來并輸出。注意,在判斷時要按照2、3、5的先后次序來確定優(yōu)

19、先順序,如6既能被2整除,又能被3整除,則只算到能被2整除的這種情況里。#include main()int i,s2=0,s3=0,s5=0;for(i=1;i=100;i+)if(i%2=0)s2+=i;elseif(i%3=0)s3+=i;elseif(i%5=0)s5+=i;printf(n1-100中能被2、3、5分別整除的數(shù)的和分別為:%d %d %dn,s2,s3,s5);【程序24】=編制程序打印如下圖形(考慮將輸出的行數(shù)由輸入的值來控制):ABBBCCCCCDDDDDDDEEEEEEEEEFFFFFFFFFFFGGGGGGGGGGGGG#include void main()

20、int n,r,c;char ch=A;printf(請輸入行數(shù):);scanf(%d,&n);if(n0)printf(行數(shù)錯誤!n);elsefor(r=1;r=n;r+)for(c=1;c=2*r-1;c+)printf(%c,ch);printf(n);ch+;【程序25】=依次輸入十個整數(shù),找出其平方最大的一個數(shù)并打印出來。#include void main()int i;double x,oldx,sx=0;printf(n請輸入10個數(shù):);for(i=1;isx)oldx=x;sx=x*x;printf(平方最大的一個數(shù)是:%fn,oldx);【程序26】=輸入 n,求下列級

21、數(shù)前n項的和。 1122334#include void main()int i,n,signal=1;double s=1;printf(n請輸入項數(shù):);scanf(%d,&n);if(n1)printf(至少要算一項!n);elsefor(i=2;i=n;i+)s=s+(i-1.0)/i*signal;signal=-signal;printf(結(jié)果為:%fn,s);【程序27】=編程序輸出1-1000內(nèi)的所有素數(shù)。所謂素數(shù)是指除了能被1和它本身之外不能被其它數(shù)整除的數(shù)。#include void main()int i,j,signal,count=0;for(j=1;j=1000;j

22、+)signal=1;for(i=2;ij & signal=1;i+)if(j%i=0)signal=0;if(signal=1)printf(%8d,j);count+;printf(n共有%d個!n,count);【程序28】=求出10至1000之內(nèi)能同時被2、3、7整除的數(shù),并輸出。#include stdio.hmain()0int i;for(i=10;i=1000;i+)if(i%2=0 & i%3=0 & i%7=0)printf(%8d,i);printf(n);【程序29】=求出1到100之間的奇數(shù)之和及偶數(shù)之和,并將二者輸出。#include stdio.hvoid ma

23、in()int i,s1=0,s2=0;for(i=1;i=100;i+)if(i%2=0)s2+=i;elses1+=i;printf(奇數(shù)之和為:%d,偶數(shù)之和為:%dn,s1,s2);【程序30】=編寫程序,讀一個在字母C和X之間的字符,打印出該字母在中間的相鄰五個字母。如輸入F,則輸出DEFGH。#include main()char ch,cha;printf(請輸入一個字母(C到X之間):);scanf(%c,&ch);if(chX)printf(輸入錯誤!n);elsefor(cha=ch-2;cha=ch+2;cha+)printf(%c,cha);printf(n);【程序3

24、1】=在1500中,找出能同時滿足用3除余2,用5除余3,用7除余2的所有整數(shù)。#include void main()int i,count=0;for(i=1;i=500;i+)if(i%3=2)&(i%5=3)&(i%7=2)printf(%8d,i);4 / 9如果您需要使用本文檔,請點擊下載按鈕下載!count+;printf(n共有%d個!n,count);【程序32】=編程將1.100間能被2、3、5分別整除的數(shù)的和求出來并輸出。注意,在判斷時要按照2、3、5的先后次序來確定優(yōu)先順序,如6既能被2整除,又能被3整除,則只算到能被2整除的這種情況里。#include void ma

25、in()int i,s2=0,s3=0,s5=0;for(i=1;i=100;i+)if(i%2=0)s2+=i;elseif(i%3=0)s3+=i;elseif(i%5=0)s5+=i;printf(n1-100中能被2、3、5分別整除的數(shù)的和分別為:%d %d %dn,s2,s3,s5);【程序33】=編寫程序輸入三位數(shù)(100999),然后按數(shù)字逆序輸出。(例:輸入123,輸出321)。#include void main()int n,ge,shi,bai;printf(請輸入一個三位正整數(shù):);scanf(%d,&n);if(n999)printf(輸入數(shù)據(jù)有誤!n);else g

26、e=n%10;shi=n/10%10;bai=n/100;printf(此數(shù)的逆序輸出結(jié)果為:%d%d%dn,ge,shi,bai);【程序34】=任意輸入三個數(shù),按從大到小的降序輸出。#include void main()float a,b,c,t;printf(請輸入三個數(shù):);scanf(%f%f%f,&a,&b,&c);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc) t=b;b=c;c=t;printf(降序輸出為:%20f%20f%20fn,a,b,c);【程序35】=編程計算1-2+3-4+5-6+-10000#include void ma

27、in()int s=0,i,p=1;for(i=1;i=10000;i+)s+=i*p;p=-p;printf(結(jié)果為:%dn,s);【程序36】=編程計算149162510000之和#include void main()int s=0,i;for(i=1;i=100;i+)s=s+i*i;printf(結(jié)果為:%dn,s);【程序37】=百雞問題:用100元買100只雞,大公雞5元1只,母雞3元1只,小雞1元3只。問各能買多少只?#include void main()int cock,hen,chick;for(cock=1;cock=20;cock+)for(hen=1;hen=33;

28、hen+)for(chick=1;chick=100;chick+)if(cock+hen+chick=100)&(15*cock+9*hen+1*chick=300)printf(公雞:%4d 母雞:%4d 小雞:%4dn,cock,hen,chick);【程序38】=今年父親30歲,兒子6歲,問多少年后父親的年齡是兒子年齡的2倍?#include void main()int father=30,son=6,year=0;while(father+year)!=(son+year)*2)year+;printf(經(jīng)過%d年后父親年齡為兒子的兩倍!n,year);【程序39】=我國古代有一種

29、回文詩,倒念順念都有意思,例如“人過大佛寺”,倒讀起來便是“寺佛大過人”。還有經(jīng)典的對聯(lián)“客上天然居,居然天上客”。此種例子舉不勝舉。在自然數(shù)中也有類似情形,比如1991就是一個很特殊的四位數(shù),從左向右讀與從右向左讀竟是完全一樣的,這樣的數(shù)稱為“回文數(shù)”。編程序輸出1到10000內(nèi)的所有回文數(shù)并統(tǒng)計個數(shù)。#include #include void main()int i,oldi,newi,t,count=0;for(i=1;i=10000;i+)/以下代碼用于產(chǎn)生i的逆序數(shù)newi=0;oldi=i;dot=oldi%10;oldi=oldi/10;newi=newi*10+t;while

30、(oldi!=0);/如果產(chǎn)生的逆序數(shù)跟原數(shù)相同剛說明是回文數(shù)if(newi=i)printf(%8d,i);count+;printf(n共有%d個!n,count);【程序40】=某班綜合考評,根據(jù)參加集體活動的次數(shù)加分,規(guī)則如下:參加1次及以下:加1分;參加2至3次:加2分;參加4至7次:參加幾次加幾分;參加8至10次:加8分;參加10次以上:加10分。程序運行時輸入某人參加活動的次數(shù),則輸出其應(yīng)該加的分?jǐn)?shù);如果輸入為負(fù)值,則給出相應(yīng)提示。#include void main()int cs,jf;printf(請輸入?yún)⒓踊顒哟螖?shù):);scanf(%d,&cs);if(cs0)print

31、f(你所輸入的活動次數(shù)有誤!n);elseif(cs=1)jf=1;elseif(cs=3)jf=2;elseif(cs=7)jf=cs;else5 / 9如果您需要使用本文檔,請點擊下載按鈕下載!if(csamax) amax=x; if ( (2) ) amin=x; scanf(%f, &x); printf(namax=%fnamin=%fn,amax,amin); 3、下面程序的功能是根據(jù)以下的公式,返回滿足精度eps要求下的值,請?zhí)羁铡?include “stdio.h”main( ) double s=0.0, t=1.0; int n; float eps; scanf(%f,

32、 &eps); for( (1) ;teps; n+) s+=t; t=n*t/(2*n+1); printf(pi=%fn, (2) ); 4、下面程序輸出3到100之間的所有素數(shù)。#include main( ) int k, j; for (k=3; k100; k+) for (j=2; j=j-1; j+) if ( (1) ) break; if ( (2) ) printf(“%4d”,k); 5、輸入一個十進制數(shù),將它對應(yīng)的二進制數(shù)的各位反序,形成新的十進制數(shù)輸出。如:111011110113#include “stdio.h”main( ) int n, x, t;printf(“請輸入一個整數(shù):“) scanf(“%d”,&n); x=0; while ( (1) ) t=n%2; (2) ; n= n/2; printf(“新的整數(shù): %n”,x);

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論