久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

《C語言程序設(shè)計》學(xué)習(xí)心得

時間:2019-05-12 15:29:55下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《《C語言程序設(shè)計》學(xué)習(xí)心得》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《《C語言程序設(shè)計》學(xué)習(xí)心得》。

第一篇:《C語言程序設(shè)計》學(xué)習(xí)心得

C語言程序設(shè)計網(wǎng)絡(luò)學(xué)習(xí)心得

通過這一階段網(wǎng)絡(luò)的學(xué)習(xí),我總結(jié)出以下幾點(diǎn),在今后的教學(xué)過程中可以嘗試加以注重:

(一)激勵學(xué)生學(xué)習(xí)興趣,充分調(diào)動學(xué)生學(xué)習(xí)積極性

學(xué)習(xí)興趣就是學(xué)生在心理上對學(xué)習(xí)活動產(chǎn)生愛好、追求和向往的傾向,是推動學(xué)生積極主動學(xué)習(xí)的直接動力。愛因斯坦說過:“興趣是最好的老師,真正有價值的東西,并非僅僅從責(zé)任感產(chǎn)生,而是從對客觀事物的愛與熱忱中產(chǎn)生”。我國古代教育家孔子也說:“知之者不如好之者,好之者不如樂之者?!敝挥小昂弥?、“樂之”方能有高漲的學(xué)習(xí)熱情和富有創(chuàng)造性地去完成學(xué)習(xí)任務(wù)。明確學(xué)習(xí)目的,激發(fā)學(xué)習(xí)興趣

只有學(xué)習(xí)思想端正,學(xué)習(xí)目的明確,學(xué)生才會有學(xué)習(xí)的動力,才會有學(xué)習(xí)的自覺性。有的學(xué)生認(rèn)為C語言已經(jīng)落伍了,沒有什么用,我們要使每個學(xué)生明確即將學(xué)習(xí)的知識與社會的關(guān)系,告訴學(xué)生學(xué)習(xí)C語言是建立程序設(shè)計思想,學(xué)習(xí)程序設(shè)計的各種基本概念、方法、技巧,培養(yǎng)良好的程序設(shè)計風(fēng)格。在講C語言程序設(shè)計課程前,收集大量招聘C語言編程人員的就業(yè)信息及畢業(yè)生從事C語言編程工作的收入、工作條件、工作崗位等學(xué)生十分關(guān)注的重要信息。同時,也列舉了大量用C語言完成商業(yè)性軟件工程,以激發(fā)學(xué)生學(xué)習(xí)C語言的動機(jī)的熱情。學(xué)生有了主動性,才會自覺地學(xué)習(xí)這門課。

(二)設(shè)計問題,開發(fā)智力,引導(dǎo)學(xué)生自己解決實(shí)際問題

在教學(xué)過程中,我們提倡學(xué)生在課堂上發(fā)現(xiàn)問題、提出問題,對于學(xué)生在練習(xí)中所遇到的問題,教師不能馬上告訴答案,應(yīng)當(dāng)適當(dāng)?shù)膯l(fā)和引導(dǎo)讓學(xué)生自己找到答案,培養(yǎng)他們的思考能力。同時教師要精心設(shè)計一些富有啟發(fā)性的問題,達(dá)到開發(fā)學(xué)生智力的目的。這樣做有兩方面的意義:一是為了引人入勝,激發(fā)學(xué)生的學(xué)習(xí)興趣;二是對知識本身提出疑問,加深對問題的認(rèn)識和討論,這也是推動 C 語言課程教學(xué)藝術(shù)化的途徑之一。

(三)強(qiáng)化課程設(shè)計,加強(qiáng)學(xué)生能力培養(yǎng)

課程設(shè)計是整個課程學(xué)習(xí)的總結(jié)與提高,通過必要的課程設(shè)計,切實(shí)加強(qiáng)學(xué)生的能力培養(yǎng),通常課程設(shè)計貫串整個教學(xué)環(huán)節(jié),設(shè)計內(nèi)容以具體的軟件系統(tǒng)的開發(fā)為基礎(chǔ),重點(diǎn)讓學(xué)生掌握軟件開發(fā)的基本思路與方法。課程設(shè)計必須以學(xué)生為主,教師的指導(dǎo)重點(diǎn)放在總體方案制定、設(shè)計進(jìn)度上。教師在課程設(shè)計過程中應(yīng)經(jīng)常到學(xué)生中去答疑,檢查學(xué)生設(shè)計進(jìn)度與設(shè)計方案、設(shè)計結(jié)果的正確性,及時發(fā)現(xiàn)問題并輔助解決。課程設(shè)計盡量做到每個學(xué)生的設(shè)計有所差別,并要求學(xué)生獨(dú)立完成設(shè)計環(huán)節(jié)。對學(xué)生的設(shè)計方案不追求最優(yōu),只要合理就支持學(xué)生堅持完成,最后在考評階段進(jìn)行重點(diǎn)點(diǎn)評。

課程設(shè)計結(jié)束時學(xué)生必須上交課程設(shè)計說明書,同時還要進(jìn)行答辯。學(xué)生答辯結(jié)束教師給予正確引導(dǎo),指出設(shè)計中存在的問題,并指導(dǎo)學(xué)生如何完善。答辯前學(xué)生要事先準(zhǔn)備大量的知識點(diǎn),答辯過程不但鍛煉學(xué)生的表達(dá)能力,還能使學(xué)生認(rèn)識到自己的設(shè)計的優(yōu)缺點(diǎn),也了解了別人的設(shè)計思想,開闊了視野??偨Y(jié)

本課程的教學(xué)內(nèi)容是十分豐富的,教學(xué)方法的采用應(yīng)當(dāng)以服務(wù)教學(xué)內(nèi)容為準(zhǔn)則,教學(xué)是一種互動活動,在教學(xué)活動中,應(yīng)當(dāng)大力發(fā)揮教師的“教”的主導(dǎo)性,調(diào)動學(xué)生“學(xué)”的積極性,做到密切配合教學(xué)相長。在教學(xué)活動中,不但要注意對C語言這門課的“精講”,而且要注重編程能力的培養(yǎng)。即不但要使學(xué)生“學(xué)會”一門語言,更重要的是使學(xué)生“會學(xué)”,培養(yǎng)學(xué)生的開拓性,開發(fā)學(xué)生的創(chuàng)造性思維,從而為掌握計算機(jī)這個工具,更好地解決實(shí)際問題打下一個良好的基礎(chǔ)。任何一門課程的教學(xué),都包含教與學(xué)兩個方面,只有很好的組織這兩個環(huán)節(jié),才能切實(shí)提高我們的教學(xué)效果,才能讓學(xué)生學(xué)到更好的有用的知識,才能避免理論與實(shí)踐脫鉤,也才能充分調(diào)動學(xué)生的積極性。

第二篇:C語言程序設(shè)計

1.Problem A: Hello world!Description Xiao_ming有兩個哥哥,大哥叫Da_min,二哥叫Er_min。三兄弟放學(xué)回家,父母分別跟他們打招呼。

Input 無

Output 請輸出: Hello Da_min, Hello Er_min, Hello Xiao_ming!

Sample Input Sample Output Hello Da_min, Hello Er_min, Hello Xiao_ming!

HINT 請注意換行符

Append Code #include int main(){

printf(“Hello Da_min,n”);

printf(“Hello Er_min,n”);

printf(“Hello Xiao_ming!n”);} 2.Problem B: 求圓的面積和周長 Description 從鍵盤輸入圓的半徑,求圓的面積和周長,圓周率取3.14。

Input 輸入一個浮點(diǎn)型數(shù)據(jù),有效數(shù)字不會超過十進(jìn)制的6位。

Output 輸出為兩行。

第一行為圓的面積,第二行為圓的周長,格式見sample。

Sample Input 3

Sample Output Area: 28.260000 Perimeter: 18.840000

HINT 了解浮點(diǎn)類型的輸入、輸出和算術(shù)運(yùn)算符

Append Code 法一

#include int main(){ double r,p,s;scanf(“%lf”,&r);p=2*3.14*r;s=3.14*r*r;printf(“Area: %lfn”,s);printf(“Perimeter: %lfn”,p);} 法二

#include #define pi 3.14 int main(){

double r;

scanf(“%d”,&r);

printf(“Area: %lfn”,pi*r*r);

printf(“Perimeter: %lfn”,2*pi*r);

}

3.Problem C:平均值 Description 求3個數(shù)的平均值。

Input 輸入只有一行,為3個較小的整數(shù)。

Output 輸出為這3個整數(shù)的平均值,保留3位小數(shù)。

Sample Input 1 2 3 Sample Output 2.000

HINT 注意除法運(yùn)算對整型數(shù)據(jù)和浮點(diǎn)型數(shù)據(jù)是不一樣的。

Append Code #include int main(){ int a,b,c;scanf(“%d%d%d”,&a,&b,&c);printf(“%.3lf”,(a+b+c)/3.0);}

4.Problem D: 求字符的值 Description 從鍵盤輸入3個字符(不含雙字節(jié)字符),分別輸出每個字符的十進(jìn)制值(ASCII碼)、八進(jìn)制值和十六進(jìn)制值。

Input 輸入為3個字符。

Output 輸出為3行。

每一行為每個字符(對應(yīng)輸入順序)的十進(jìn)制、八進(jìn)制和十六進(jìn)制值,用空格分隔開。每個輸出的值占3個字符,不足3個字符前面補(bǔ)0。

Sample Input 0 A

Sample Output 048 060 030 032 040 020 065 101 041

HINT 了解字符值的存儲和整型的關(guān)系。

Append Code #include int main(){ char a,b,c;scanf(“%c%c%c”,&a,&b,&c);printf(“%.3d %.3o %.3xn”,a,a,a);printf(“%.3d %.3o %.3xn”,b,b,b);printf(“%.3d %.3o %.3xn”,c,c,c);}

5.Problem A: 最簡單的程序 Description 輸出一行“Hello world!”。

Input 無

Output Hello world!

Sample Input Sample Output Hello world!

HINT Append Code #include int main(){

printf(“Hello world!”);}

6.Problem B: 算術(shù)基本運(yùn)算 Description 計算兩整數(shù)x和y(0

Input 輸入只有一行,格式見sample。

Output 輸出為多行,按順序每行輸出x,y的和、差、積、商、余數(shù)、x的平方和y的三次方,格式見sample

Sample Input x = 11, y = 3

Sample Output x + y : 14 xy : %dn“,x-y);

printf(”x * y : %dn“,x*y);

printf(”x / y quotient: %d, remainder: %dn“,x/y,x%y);

printf(”x ^ 2 : %dn“,x*x);

printf(”y ^ 3 : %dn“,y*y*y);} 7.Problem C: 自增自減運(yùn)算 Description C語言中有自增運(yùn)算++、自減運(yùn)算--,并且可以前置和后置。

編寫一個程序:對輸入的一個整數(shù)a,輸出a++、a--、++a、--a的值。

Input 一個整數(shù)a,a是很小的整數(shù)。

Output 輸出為5行,第一行為a的值,后面依次為--a、a--、a++、++a的值。

5行輸出縱向a要對齊,“:”對齊,“:”前后各一個空格,后面的數(shù)值不用對齊。每行行尾都有回車。

Sample Input 0

Sample Output a : 0--a :-1 a--: 0 a++ : 0 ++a : 1

HINT Append Code #include int main(){ int a,x;scanf(”%dn“,&x);a=x;printf(” a

: %dn“,a);printf(”--a

: %dn“,--a);a=x;printf(” a--: %dn“,a--);a=x;printf(” a++ : %dn“,a++);a=x;printf(”++a

: %dn“,++a);}

8.Problem F: 絕對值 Description 求整型數(shù)據(jù)和浮點(diǎn)型數(shù)據(jù)的絕對值。

Input 輸入兩個數(shù),第一個是整數(shù),第二個是浮點(diǎn)數(shù)。

Output 輸出為兩行,第一行為整數(shù)的絕對值,第二行為浮點(diǎn)數(shù)的絕對值,注意浮點(diǎn)數(shù)的絕對值不輸出無意義的0。

Sample Input-1 1

Sample Output 1 1

HINT 求絕對值可以用標(biāo)準(zhǔn)庫函數(shù)來完成,也可以自己判斷。注意浮點(diǎn)數(shù)的輸出格式。求絕對值的函數(shù)在哪個頭文件?貌似很多人會搞錯,包括很多編書的人!

Append Code #include //#include int main(){

int n;

float m;

scanf(”%d%f“,&n,&m);

//n=abs(n);

//m=fabs(m);

if(n<0)

{

n=-n;

}

if(m<0)

{

m=-m;

}

printf(”%dn“,n);

printf(”%g“,m);

return 0;}

9.Problem A: 奇數(shù)還是偶數(shù)? Description 輸入一個整數(shù),判讀它是奇數(shù)還是偶數(shù)。

Input 輸入只有一行,為一個100以內(nèi)的正整數(shù)。

Output 輸出為一行。

若輸入為偶數(shù)則輸出“even”,奇數(shù)輸出“odd”。Sample Input 30

Sample Output even

HINT 用整數(shù)運(yùn)算可以解決,練習(xí)“?:”表達(dá)式。

Append Code #include int main(){

int n;

scanf(”%d“,&n);

if(n>=0&&n<=100){

if(n%2==0)printf(”evenn“);

else printf(”oddn“);

}

return 0;}

10.Problem B: 簡單的打折計算 Description 商店規(guī)定:消費(fèi)滿n元,可以打八八折。設(shè)某件商品標(biāo)價m元,輸入購買的件數(shù)x,計算出需要支付的金額(單位:元),精確到分。

Input 輸入只有一行,三個整數(shù)m、n和x,且0

Sample Input 95 300 4

Sample Output 334.40

HINT 了解浮點(diǎn)型的輸出控制,注意整型和浮點(diǎn)型混合運(yùn)算過程中的數(shù)據(jù)類型轉(zhuǎn)換。

Append Code #include int main(){

int m,x,n,a;

float b;

scanf(”%d%d%d“,&m,&n,&x);

0

x

m

a=m*x;

if(a>n)

b=0.88*a;

else

b=a;

printf(”%.2fn“,b);

}

11.Problem C: 判斷閏年 Description 輸入一個正整數(shù)的年份,判斷是否為閏年。

Input 輸入只有一行,為一個10000以內(nèi)的正整數(shù)。

Output 輸出為一行。

若輸入為閏年偶數(shù)則輸出“Yes”,否則輸出“No”。

Sample Input 2010

Sample Output No

HINT 了解邏輯運(yùn)算符和關(guān)系運(yùn)算符。

Append Code #include int main(){

int x;

scanf(”%d“,&x);

if(x>0&&x<10000)

{

if(x%4==0&&x%100!=0)

printf(”Yesn“);

else if(x%400==0)

printf(”Yesn“);

else

printf(”Non“);

}

else

printf(”error“);}

12.Problem D: 水仙花數(shù) Description 如果一個三位十進(jìn)制數(shù)等于其各位數(shù)字的立方和,則稱這個數(shù)為水仙花數(shù)。如:13+53+33=153。

Input 一個整數(shù)x,100<=x<=999。

Output x是水仙花數(shù),則輸出“YES”,否則為“NO”。

Sample Input 153

Sample Output YES

HINT Append Code #include int main(){

int a,b,c,x;

scanf(”%d“,&x);

a=x/100;

b=x/10%10;

c=x%10;

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

printf(”Yes“);

else

printf(”No“);}

13.Problem E: 三個數(shù)比較大小 Description 從鍵盤上輸入0~100之間的三個數(shù),按從小到大的順序輸出。

Input 輸入只有一行,為三個整數(shù)。

Output 按從小到大輸出這三個數(shù)。

Sample Input 15 10 20

Sample Output 10 15 20

HINT 用if語句判斷各種情況可以解決這個問題。

Append Code #include int main(){

int a,b,c;

scanf(”%d%d%d“,&a,&b,&c);

if(a>=b)

{

if(b>=c)

printf(”%d %d %dn“,c,b,a);

else if(c>=a)

printf(”%d %d %dn“,b,a,c);

else

printf(”%d %d %dn“,b,c,a);

}

else

{

if(a>=c)

printf(”%d %d %dn“,c,a,b);

else if(b>=c)

printf(”%d %d %dn“,a,c,b);

else

printf(”%d %d %dn“,a,b,c);

} }

14.Problem F: 奇怪的求和之一 Description 給定3個正整數(shù)a、b和c,按照如下規(guī)則求和: 如果這個數(shù)字是偶數(shù),則累加到和中;

如果這個數(shù)字是奇數(shù),則將大于該數(shù)的最小偶數(shù)累加到和中。

Input 三個正整數(shù),均在100以內(nèi)。

Output 一個和。

Sample Input 2 3 5

Sample Output 12

HINT 如果不會使用分支語句,可使用條件運(yùn)算符判斷到底將哪個數(shù)累積到和中。

Append Code #include int main(){

int a,b,c;

scanf(”%d%d%d“,&a,&b,&c);

if(a%2!=0)a++;

if(b%2!=0)b++;

if(c%2!=0)c++;

printf(”%dn“,a+b+c);

}

15.Problem G: 你過線了嗎? Description 經(jīng)過四年的學(xué)習(xí),你決定報考我國著名的“285”高校之一的北青大學(xué),經(jīng)過認(rèn)真的復(fù)習(xí),殘酷的考試,終于知曉了自己的考試成績,也知道了北青大學(xué)的錄取分?jǐn)?shù)線,請你編程判斷,自己過線了嗎? Input 輸入有2行,第一行有4個正整數(shù),分別表示三門課程的分?jǐn)?shù)線以及總分分?jǐn)?shù)線。第二行有3個非負(fù)整數(shù),分別表示你考的三門課程的成績。

Output 如果你的三門課程成績都不低于相應(yīng)課程的分?jǐn)?shù)線,且你的考試總分也不低于北青大學(xué)的總分分?jǐn)?shù)線要求,則輸出“congratulations”,否則輸出“sorry”。

Sample Input 70 80 70 240 80 80 82

Sample Output congratulations

HINT 如果你不會使用分支語句,同樣可以使用條件運(yùn)算符實(shí)現(xiàn)該程序。

Append Code #include int main(){

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

scanf(”%d %d %d %dn%d %d %d“,&a,&b,&c,&d,&e,&f,&g);

h=e+f+g;

if(e>=a&&f>=b&&g>=c&&h>=d)

printf(”congratulations“);

else

printf(”sorry“);} 16.Problem I: A+B Problem(II): Input/Output

Practice Description 計算a+b,0<=a,b<1000。

Input 輸入的第一行是一個整數(shù)N,后面有N對整數(shù)a和b,每對a和b占一行,a,b用空格分開。

Output 每行輸出一個a+b的和,順序與輸入對應(yīng)。

Sample Input 2 1 2 10 20

Sample Output 3 30

HINT N給出了測試樣例數(shù),用for循環(huán)處理方便。

Append Code #include int main(){

int n,a,b,i;Scanf(“%d”,&n);For(i=0;i

17.Problem H: A+B Problem Description 計算a+b,0<=a,b<1000。

Input 輸入有多對整數(shù)a和b組成,每對a和b占一行,a,b用空格分開。

Output 每行輸出一個a+b的值,順序與輸入對應(yīng)。

Sample Input 1 2 10 20

Sample Output 3 30

HINT OJ系統(tǒng)上測試輸入結(jié)束符為EOF(End Of File),其值為-1。用scanf()把文件所有內(nèi)容讀完后,會讀到EOF,所以可以用來判斷輸入是否完成,測試時可以用Ctrl+Z產(chǎn)生EOF。本題解法參看FAQ。Append Code #include int main(){

int a,b;

while(scanf(”%d%d“,&a,&b)!=EOF){

printf(”%dn“,a+b);

}

return 0;}

18.Problem A: 判斷是否是元音字母 Description 輸入一個英文字母,判斷是否是元音字母。元音字母是:a,e,i,o u,A,E,I,O,U

Input 輸入一個英文字母

Output 是元音字母,輸出“yes”,否則輸出“no”,行尾沒有回車。

Sample Input A

Sample Output yes

HINT Append Code #include void main(){

char ch;

scanf(”%c“,&ch);

if(ch>='A'&&ch<='Z')

ch=ch+32;

if(ch=='a')

printf(”yes“);

else if(ch=='e')

printf(”yes“);

else if(ch=='i')

printf(”yes“);

else if(ch=='o')

printf(”yes“);

else if(ch=='u')

printf(”yes“);

else

printf(”no“);

}

19.Problem B: 按順序輸出三個數(shù) Description 對于輸入的3個整數(shù),按照從小到大的順序輸出。

Input 輸入3個int類型內(nèi)的整數(shù),兩兩之間用一個空格隔開。

Output 按照從小到大的順序輸出上述三個數(shù),兩兩之間用一個空格隔開。

Sample Input 2 1 3 Sample Output 1 2 3

HINT Append Code #include void main(){

int a,b,c,temp;

scanf(”%d%d%d“,&a,&b,&c);

if(a

{

temp=a;

a=b;

b=temp;

}

if(a

{

temp=a;

a=c;

c=temp;

}

if(b

{

temp=b;

b=c;

c=temp;

}

printf(”%d %d %dn“,c,b,a);}

20.Problem E: Description 判斷輸入整數(shù)的奇偶性。

判斷奇偶數(shù) Input 輸入為一個整數(shù)。

Output 輸出只有一行,代表判斷結(jié)果。如果輸入的整數(shù)n是一個偶數(shù),輸出: n is an even number.否則輸出:

n is an odd number.見樣例。

Sample Input 12

Sample Output 12 is an even number.HINT Append Code #include int main(){

int a;

scanf(”%d“,&a);

if(a%2==0)

printf(”%d is an even number.“,a);

else

printf(”%d is an odd number.“,a);}

21.Problem A: 判斷兩個整數(shù)的大小關(guān)系 Description 輸入2個整數(shù)a和b,如果a>b,則輸出1,否則輸出0。

Input 兩個整數(shù)a和b,均不超過int類型的表示范圍。

Output 表示a>b的結(jié)果:如果a>b,則輸出1,否則輸出0。

Sample Input 3 4

Sample Output 0

HINT

Append Code #include int main(){ int a,b;scanf(”%d %d“,&a,&b);if(a>b)

printf(”1“);

else

printf(”0“);return 0;} 22.Problem D: 成績的等級 Description 把百分制的考試成績轉(zhuǎn)換成五級制的成績: 90~100:Excellent 80~89:Good 70~79:Average 60~69:Pass 0~59:Failing

不在0~100之間的輸入是非法數(shù)據(jù),輸出“Error”。

Input 輸入多行,每行一個整數(shù)。

Output 輸入所對應(yīng)的成績等級。

Sample Input-1 81 92 35 68 72 100

Sample Output Error Good Excellent Failing Pass Average Excellent HINT 用switch語句解決這個問題比較方便。

Append Code #include int main(){

int score;

while(scanf(”%d“,&score)!=EOF)

{

if(score<0||score>100)

printf(”Errorn“);

else

{

switch(score/10)

{

case 0:

case 1:

case 2:

case 3:

case 4:

case 5:printf(”Failingn“);break;

case 6:printf(”Passn“);break;

case 7:printf(”Averagen“);break;

case 8:printf(”Goodn“);break;

case 9:

case 10:printf(”Excellentn“);break;

}

}

}

return 0;}

23.Problem E: 輸出是m的倍數(shù)或n的倍數(shù)、但不是

m和n的公倍數(shù)的數(shù) Description 輸出1~k之間是m的倍數(shù)或n的倍數(shù)、但不是m和n的公倍數(shù)的數(shù),其中1<=m,n

Input 輸入三個整數(shù),依次為k、m、n。

Output 從小到大輸出符合題意的所有整數(shù),兩數(shù)之間用一個空格分開。

Sample Input 15 2 3

Sample Output 2 3 4 8 9 10 14 15

HINT 難點(diǎn)在于輸出格式的控制:空格在數(shù)的中間,學(xué)會用循環(huán)時邊界情況的特殊處理。

Append Code #include int main(){ int k,m,n,a,i=1;scanf(”%d %d %d“,&k,&m,&n);if(m

a=m;else

a=n;printf(”%d“,a);for(i=a+1;i<=k;i++){

}

if((i%m==0&&i%n!=0)||(i%n==0&&i%m!=0))

printf(” %d“,i);} return 0;

24.Problem B: 兩整數(shù)相加減 Description 計算a+b和a-b。

Input 輸入為一對整數(shù)a和b。a,b用空格分開。

Output 輸出a+b和a-b的計算結(jié)果,各占一行。

Sample Input 1 2

Sample Output 3-1

HINT Append Code #include int main(){ int a,b;scanf(”%d %d“,&a,&b);

printf(”%dn“,a+b);

printf(”%dn“,a-b);} 25 Problem C: 它滿足條件嗎? Description 需要判斷給定的一個整數(shù)是否同時滿足如下三個條件: 1.它是一個完全平方數(shù)。2.它是一個偶數(shù)。3.它是一個正數(shù)。

注:若一個數(shù)能表示成某個自然數(shù)的平方的形式,則稱這個數(shù)為完全平方數(shù)。例如:

0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400,441,484,529 Input 一個int范圍內(nèi)的整數(shù)。

Output 如果輸入的數(shù)字滿足條件,則輸出yes,否則輸出no。

Sample Input 100

Sample Output yes

HINT 注意邏輯表達(dá)式判斷三個條件的順序。如果你不會使用分支語句,同樣可以使用條件運(yùn)算符實(shí)現(xiàn)該程序。

庫函數(shù)sqrt()可以用于求一個數(shù)的平方根。

Append Code #include #include int main(){ int a;scanf(”%d“,&a);

if(a==sqrt(a)*sqrt(a)&&a%2==0&&a>0)

printf(”yes“);

else

printf(”no“);}

26.Problem F: 多路分支 Description 編寫一個完整的程序,運(yùn)行時向用戶提問”你考試考了多少分?(0-100)“接受輸入后判斷其等級并顯示出來等級: 優(yōu):90<=分?jǐn)?shù)<=100 良:80<=分?jǐn)?shù)<90 中:60<=分?jǐn)?shù)<80 差:0<=分?jǐn)?shù)<60

Input 輸入任意一個整數(shù)分?jǐn)?shù)值,顯示等級;再輸入任意一個整數(shù)分?jǐn)?shù)值,顯示等級;....直到測試數(shù)據(jù)較充分,可輸入-1止。

Output 對任意輸入的分?jǐn)?shù)值,輸出對應(yīng)的等級,直到輸入的數(shù)為-1時才退出運(yùn)行.Sample Input 102 100 90 80 70 60 50 0-80-1

Sample Output grad must between 0 and 100 優(yōu)

優(yōu)

grad must between 0 and 100 grad must between 0 and 100

HINT Append Code #include int main(){

int x;

while(scanf(”%d“,&x)!=EOF)

{

if(x<0||x>100)

printf(”grad must between 0 and 100n“);

else if(x>=90)

printf(”優(yōu)n“);

else if(x>=80)

printf(”良n“);

else if(x>=60)

printf(”中n“);

else if(x>=0)

printf(”差n“);

}

return 0;} Problem D: 有多少人? Description 學(xué)校舉行運(yùn)動會,如果全體學(xué)生按照3人一隊列隊,則多了1個人;如果按照4人一隊列隊,則多了2個人;如果按照5人一隊排隊,則多了3個人。請問這個學(xué)校有多少學(xué)生?

Input 一個int類型的正整數(shù)N,是學(xué)生人數(shù)的上界,即:該校學(xué)生數(shù)不超過N。

Output 所有可能的學(xué)生數(shù),每個數(shù)占一行。

Sample Input 200

Sample Output 58 118 178

HINT Append Code #include #include int main(){

int n,i;

scanf(”%d“,&n);

for(i==1;i<=n;i++){ if(i%3==1&&i%4==2&&i%5==3)

printf(”%dn“,i);}

return 0;} Problem C: 正負(fù)數(shù)各有幾個? Description 輸入若干個整數(shù),求其中正數(shù)、負(fù)數(shù)的個數(shù)。

Input 輸入分為2行:第一行是一個數(shù)字N>0,表示下面有N個整數(shù)。第2行是N個整數(shù),都是int類型的。

Output 輸出所輸入的N個整數(shù)的正數(shù)個數(shù)和負(fù)數(shù)個數(shù),并用空格分開2個輸出。Sample Input 10 2 3 4 5-1-2-3-4-5

Sample Output 5 5

HINT 貌似還有一種叫做0的數(shù)。

Append Code #include int main(){

int n,a,i,num1=0,num2=0;

scanf(”%d“,&n);for(i=0;i

{

scanf(”%d“,&a);

if(a>0)

num1++;

else if(a<0)

num2++;

}

printf(”%d %dn“,num1,num2);

return 0;} Problem A: A+B Problem(III): Input/Output

Practice Description 計算a+b,0<=a,b<1000。

Input 輸入有多對整數(shù)a和b組成,每對a和b占一行,a,b用空格分開。當(dāng)測試樣為0 0時表示輸入結(jié)束,0 0不參與運(yùn)算。

Output 每行輸出一個a+b的值,順序與輸入對應(yīng)。

Sample Input 1 2 10 20 0 0

Sample Output 3 30

HINT 練習(xí)break的使用。

Append Code #include int main(){ int a,b;while(scanf(”%d %d“,&a,&b)!=EOF)

{

if(a!=0||b!=0)

}

printf(”%dn“,a+b);

else

break;

return 0;} 30 Problem B: A+B Problem(IV): Input/Output

Practice Description 計算a+b,0<=a,b<1000。

Input 輸入有多對整數(shù)a和b組成,每對a和b占一行,a,b用空格分開。

Output 每行輸出一個a+b的值,順序與輸入對應(yīng)。每個格式樣例之間用一個空行分隔開。

Sample Input 1 2 10 20 15 35

Sample Output 3 30 50

HINT 由于輸出的和比空行多一個,所以全部計算放在一個循環(huán)里是不行的,必須要特殊處理開頭或者結(jié)尾。

Append Code #include int main(){ int a,b,n=0;while(scanf(”%d %d“,&a,&b)!=EOF){

n++;

if(n==1)

printf(”%dn“,a+b);

else

printf(”n%dn“,a+b);

}

return 0;}

Problem C: n個數(shù)的最大值和最小值 Description 找出n個數(shù)中最大的數(shù)和最小的數(shù),并將它們的值輸出出來。

Input 輸入為n+1個整數(shù),都在int類型范圍內(nèi)。這些數(shù)可能用若干空格或者換行符分隔開。輸入的第1個數(shù)為n,表示后續(xù)有n個數(shù)輸入。從輸入的第2個數(shù)開始,求出直到第n+1個數(shù)中最大的數(shù)和最小的數(shù)。

Output 輸出為兩行,格式見sample。

Sample Input 3 0 1-1

Sample Output The maximum number is 1.The minimum number is-1.HINT 分隔符是空格還是回車都是空白符,對scanf(”%d“)來說沒有區(qū)別;先讀入n,然后用for循環(huán)就很容易控制讀入n個數(shù)的過程。

Append Code #include int main(){

int n,i,max,min;

scanf(”%d“,&n);

int a[n];

for(i=0;i

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

max=a[0];

min=a[0];

for(i=0;i

{

if(max

max=a[i];

if(min>a[i])

min=a[i];

}

printf(”The maximum number is %d.n“,max);

printf(”The minimum number is %d.“,min);

return 0;} 32.Problem D: 求100以內(nèi)的素數(shù) Description 素數(shù)是只能被1和自身整除的正整數(shù),根據(jù)數(shù)學(xué)定義1不是素數(shù)。素數(shù)也叫質(zhì)數(shù)。

Input 輸入為兩個整數(shù)m和n,滿足0<=m<=n<=100。

Output 從大到小輸出m~n之間的所有素數(shù),一個素數(shù)一行。如果m~n之間沒有素數(shù),則不輸出任何數(shù)。

輸出的所有數(shù)在兩行“=====”之間。

Sample Input 2 12

Sample Output ===== 11 7 5 3 2 =====

HINT 利用素數(shù)的數(shù)學(xué)規(guī)律可以很容易的解出此題,題目給出的數(shù)據(jù)范圍是關(guān)鍵。

Append Code #include #include int main(){ int m,n,i,j,k,t;scanf(”%d %d“,&m,&n);printf(”=====n“);for(i=n;i>=m;i--){

t=0;

for(j=2;j<=sqrt(i);j++)

if(i%j==0)

t=1;

if(t==0&&i>1)

printf(”%dn“,i);} printf(”=====“);return 0;} 33.Problem E: 是否構(gòu)成三角形? Description 給出三個整數(shù),代表三條邊的長度,判斷這三條邊的長度是否能構(gòu)成一個三角形?

Input 第一行是n(1<=n<=100),表示有n組測試數(shù)據(jù)

接下來有n行,每一行包含三個整數(shù),表示三個邊長(1<=邊長<=100)

Output 如果三條邊能構(gòu)成三角形,輸出YES,否則輸出NO

Sample Input 3 1 2 3 2 8 7 20 20 1

Sample Output NO YES YES

HINT Append Code #include int main(){ int a,b,c,n,i;scanf(”%d“,&n);for(i=0;i

{scanf(”%d%d%d“,&a,&b,&c);

if(a+b>c&&a+c>b&&b+c>a)

printf(”YESn“);else printf(”NOn“);}

return 0;} 34.Problem C: 簡單的整數(shù)排序 Description 對給出的若干整數(shù)按從小到大排序。

Input 輸入的第一個數(shù)為n(n<=1000),后接n個整數(shù)。

Output 按從小到大的順序輸出這些整數(shù),每兩個整數(shù)之間用一個空格分隔開,最后一個整數(shù)后面沒有空格。

Sample Input 10 3 9 1 5 2 8 5 6 7 3

Sample Output 1 2 3 3 5 5 6 7 8 9

HINT 排序前必須把所有的整數(shù)都存儲下來。因?yàn)橹挥凶疃?000個數(shù),1秒的時間足夠任何排序算法運(yùn)行處結(jié)果來。

Append Code #include int main(){

int c,i,n,j;

int a[1000];

scanf(”%d“,&n);

for(i=0;i

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

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

{

for(j=0;j

{

if(a[j]>a[j+1])

{

c=a[j];

a[j]=a[j+1];

a[j+1]=c;

}

}

}

printf(”%d“,a[0]);

for(i=1;i

printf(” %d“,a[i]);

return 0;}

35.Problem A: Description

購物的路程 Saya和Kudo一起去購物。假定她們逛的街是一條直線,而商鋪是這條直線上的一些點(diǎn)。她們將車停在該直線最左端的店鋪處,然后從左向右開始逛每一個店鋪,然后從最右邊的店鋪再返回到停車處。你的任務(wù)是計算她們走了多少路。

Input 輸入有多組。每一組的第一行是N(0

Output 對每組輸入,輸出她們走的路長。

Sample Input 4 13 89 37 6 7 30 41 14 39 42 0

Sample Output 152 70

HINT Append Code #include int main(){

int n,i,max,min,a[100001];

while(scanf(”%d“,&n)&&n!=0)

{

scanf(”%d“,&a[0]);

min=max=a[0];

for(i=1;i

{

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

if(a[i]>max)

max=a[i];

if(a[i]

min=a[i];

}

printf(”%dn“,(max-min)*2);

}

return 0;} 36.Problem B: 求累加和 Description 編程求min~max的累加和(含min和max),其中max>=min>0。部分程序已經(jīng)給出,請?zhí)畛淦渲械目瞻渍Z句,并提交填充后的完整程序。

Input 輸入為多行。第一行是一個整數(shù)N>0,表示后面有N個測試用例。后面有N行,每行包含2個整數(shù),分別是min和max。

Output 輸出為N行,每個測試用例的計算結(jié)果占據(jù)一行。每行的格式為: case i:sum=s.其中i表示測試用例的編號(從1開始),s是該測試用例對應(yīng)的累加和(設(shè)不超過int的表示范圍)。

Sample Input 3 1 10 1 100 1 1

Sample Output case 1:sum=55.case 2:sum=5050.case 3:sum=1.HINT Append Code #include int main(){

int n,i,j,max,min,sum;

scanf(”%d“,&n);

for(i=0;i

{ sum=0;

scanf(”%d%d“,&min,&max);

if(max==min)

printf(”case %d:sum=%d.n“,i+1,min);

else

{

for(j=min;j<=max;j++)

sum=sum+j;

printf(”case %d:sum=%d.n“,i+1,sum);

}

} return 0;} 37.Problem G: 順序輸出字母 Description 按字母順序輸出兩個字母st和ed之間的所有字母,但不包括st和ed。不輸出逆序。

Input 兩個字母st和ed,都是大寫字母,用一個空格分開。

Output 在一行內(nèi)按順序輸出st和ed之間的所有字母,但不包括st和ed。例如:

輸入為A和E,則輸出為BCD;

輸入為A和B,則什么字母也不輸出,只有一個空行; 輸入為E和A,也是什么字母也不輸出,只有一個空行。最后要輸出一行(行尾不回車): ***END***

Sample Input A C

Sample Output B

***END***

HINT Append Code #include int main(){

char st,ed,a;

int i;

scanf(”%c%c%c“,&st,&a,&ed);

{

for(i=st+1;i

printf(”%c“,i);

printf(”n***END***“);

}

return 0;} 38.Problem F: 單字母變換 Description Tom和Jack是密碼學(xué)愛好者,他們在聊天時經(jīng)常使用一些暗語。他們使用的一種最簡單的暗語是:將要說的每句話里面的英文字母變成這個字母之后的某個字母?,F(xiàn)在要求你寫一個程序,將一個字母變成它之后的某個字母。

Input 輸入有2個:一個大寫字母c和一個正整數(shù)d(0

Output 輸出字母c之后的第d個字母。大小寫與c一致。如果c之后的某個字母已經(jīng)超出'Z',則再從字母'A'開始計數(shù)。

如:c='A',d=3,則輸出應(yīng)為:D。若:c='Y',d=3,則輸出應(yīng)為:B。

Sample Input A 3

Sample Output D

HINT Append Code #include int main(){

char c;

int d;

scanf(”%c%d“,&c,&d);

if(c+d<='Z')

printf(”%c“,c+d);

else

printf(”%c“,c+d-26);

return 0;}

39.Problem B: 登錄密碼驗(yàn)證 Description 編寫一個程序,模擬用戶登錄系統(tǒng)的密碼驗(yàn)證過程。系統(tǒng)提供給用戶的密碼長度最長為20個字符,若密碼輸入錯誤可以再次輸入。但為了保證用戶密碼安全,若連續(xù)輸入密碼錯誤超過5次就會鎖定賬號一段時間。

Input 輸入為若干個串,至EOF結(jié)束。輸入的第一個串是用戶的正確密碼,后面的串為模擬用戶登錄時的輸入的密碼。

Output 每次輸入錯誤的密碼,輸出一個“Wrong!”,若輸入的密碼為正確的,輸出一個“Welcome!”,并結(jié)束密碼測試。若前5次輸入的密碼都是錯誤的,則后面的輸入中不管是否有正確的密碼都輸出“Out of limited!”。

Sample Input abcdefg

123456 kkkkkkkk abcdefg

Sample Output Wrong!Wrong!Welcome!

HINT 輸入可以用scanf(”%s“)處理,密碼比較用字符串的比較可以完成。

Append Code #include #include int main(){

char a[20],b[20];

int i,j=1;

scanf(”%s“,a);

while(scanf(”%s“,b)!=EOF)

{

if(j<=5)

{

if((strcmp(a,b)==0))

{

printf(”Welcome!n“);

break;

}

else

printf(”Wrong!n“);

j++;

}

else printf(”O(jiān)ut of limited!n");

} } 40.Problem C: 兔子的繁殖問題 Description 假設(shè)一對兔子每月能生一對小兔(一雌一雄),每對小兔出生后的下一個月是沒有繁殖能力的,至出生后的第三個月開始又可以每月生一隊小兔,問從一對剛出生的小兔開始,經(jīng)過若干個月后一共有多少兔子(假設(shè)在此過程中兔子沒有死亡)?

這個問題是意大利數(shù)學(xué)家菲波那契(Fibonacci)在他1202年出版的《算盤全書》中提出來的,從第一對剛出生的小兔開始每月的兔子數(shù)被乘坐菲波那契序列。

Input 輸入的第一個數(shù)為n,接下來有n個數(shù)字。每個數(shù)字為一個月份m(m<=45)。

Output 輸出為n行,每行為第m個月后的兔子總數(shù)。

第三篇:C 語言程序設(shè)計

《C 語言程序設(shè)計》主要在計算機(jī)軟件、計算機(jī)網(wǎng)絡(luò)、計算機(jī)應(yīng)用、通信技術(shù)、智能電子、電子信息工程、多媒體以及核工程與核技術(shù)等專業(yè)中開設(shè),是電子信息類、機(jī)械類等工科專業(yè)的重要專業(yè)基礎(chǔ)課。

本校從2001至今,每年都開設(shè)《C語言程序設(shè)計》課程,由于,我校最開始時的特殊情況,主要把重點(diǎn)放在C語言中的各類重點(diǎn)、難點(diǎn)的語法、語義上,使得學(xué)生經(jīng)過比較復(fù)雜和痛苦的過程后,對C語言在使用上很難做到自己編寫程序。而且很多學(xué)生產(chǎn)生了畏懼心理。

2004年,學(xué)院成立計算機(jī)科學(xué)與技術(shù)系,為了更好學(xué)習(xí)和掌握C語言,計算機(jī)科學(xué)與技術(shù)專業(yè)和計算機(jī)維護(hù)專業(yè)(計算機(jī)應(yīng)用技術(shù)前身)除了開設(shè)《C語言程序設(shè)計》課程外,在后續(xù)一學(xué)期還開設(shè)了《C語言程序設(shè)計課程設(shè)計》,使得計算機(jī)專業(yè)學(xué)生編程思想和能力得到了極大提高。

2005年,為了讓我院工科學(xué)生更好的掌握C語言編程以及通過四川省計算機(jī)二級考試,在《C語言程序設(shè)計》課程后設(shè)置《C語言程序設(shè)計課程設(shè)計》,極大地提高了學(xué)生的動手機(jī)會和能力,過級率顯著提高!

2007年,依托我校建設(shè)精品課程的契機(jī),我們將C語言中的各個知識點(diǎn)進(jìn)行重新規(guī)整,提出適用于三本院校學(xué)生的語言設(shè)計學(xué)習(xí)的方法。我們提出,先了解C語言,再學(xué)習(xí)C語言,再用C語言的思想。即在開始時讓學(xué)生初步知道C語言,然后引入比較簡單的運(yùn)算符以及基本輸入、輸出和簡單的順序結(jié)構(gòu)程序設(shè)計。通過這樣的方式,我們發(fā)現(xiàn),學(xué)生在C語言的學(xué)習(xí)就不會從開始的時候陷入大量難懂的語法、語義和數(shù)據(jù)結(jié)構(gòu)中。有了以上鋪墊再層層進(jìn)入,最終進(jìn)入復(fù)雜的各類數(shù)據(jù)結(jié)構(gòu)以及指針等學(xué)習(xí)。通過以上的內(nèi)容規(guī)整后,教學(xué)效果有明顯提高。

第四篇:經(jīng)典C語言程序設(shè)計例題

經(jīng)典C語言程序設(shè)計例題

【程序1】

題目:有1、2、3、4個數(shù)字,能組成多少個互不相同且無重復(fù)數(shù)字的三位數(shù)?都是多少? 1.程序分析:可填在百位、十位、個位的數(shù)字都是1、2、3、4。組成所有的排列后再去

掉不滿足條件的排列。2.程序源代碼: main(){ int i,j,k;printf(“n”);for(i=1;i<5;i++)

/*以下為三重循環(huán)*/ for(j=1;j<5;j++)

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

{

if(i!=k&&i!=j&&j!=k)

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

printf(“%d,%d,%dn”,i,j,k);

} }

【程序2】

題目:企業(yè)發(fā)放的獎金根據(jù)利潤提成。利潤(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%提成,從鍵盤輸入當(dāng)月利潤I,求應(yīng)發(fā)放獎金總數(shù)?

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

2.程序源代碼: main(){ long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf(“%ld”,&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)

bonus=i*0.1;else if(i<=200000)

bonus=bonus1+(i-100000)*0.075;

else if(i<=400000)

bonus=bonus2+(i-200000)*0.05;

else if(i<=600000)

bonus=bonus4+(i-400000)*0.03;

else if(i<=1000000)

bonus=bonus6+(i-600000)*0.015;

else

bonus=bonus10+(i-1000000)*0.01;printf(“bonus=%d”,bonus);}

---------------【程序3】

題目:一個整數(shù),它加上100后是一個完全平方數(shù),再加上168又是一個完全平方數(shù),請問該數(shù)是多少?

1.程序分析:在10萬以內(nèi)判斷,先將該數(shù)加上100后再開方,再將該數(shù)加上268后再開方,如果開方后

的結(jié)果滿足如下條件,即是結(jié)果。請看具體分析: 2.程序源代碼: #include “math.h” main(){ long int i,x,y,z;for(i=1;i<100000;i++){ x=sqrt(i+100);/*x為加上100后開方后的結(jié)果*/

y=sqrt(i+268);/*y為再加上168后開方后的結(jié)果*/

if(x*x==i+100&&y*y==i+268)/*如果一個數(shù)的平方根的平方等于該數(shù),這說明此數(shù)是完全平方數(shù)*/

printf(“n%ldn”,i);} }---------------【程序4】

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

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

情況,閏年且輸入月份大于3時需考慮多加一天。2.程序源代碼: main(){ int day,month,year,sum,leap;printf(“nplease input year,month,dayn”);scanf(“%d,%d,%d”,&year,&month,&day);switch(month)/*先計算某月以前月份的總天數(shù)*/ { case 1:sum=0;break;case 2:sum=31;break;case 3:sum=59;break;case 4:sum=90;break;case 5:sum=120;break;case 6:sum=151;break;case 7:sum=181;break;case 8:sum=212;break;case 9:sum=243;break;case 10:sum=273;break;case 11:sum=304;break;case 12:sum=334;break;default:printf(“data error”);break;} sum=sum+day;/*再加上某天的天數(shù)*/ if(year%400==0||(year%4==0&&year%100!=0))/*判斷是不是閏年*/

leap=1;else

leap=0;if(leap==1&&month>2)/*如果是閏年且月份大于2,總天數(shù)應(yīng)該加一天*/ sum++;printf(“It is the %dth day.”,sum);}---------------【程序5】

題目:輸入三個整數(shù)x,y,z,請把這三個數(shù)由小到大輸出。

1.程序分析:我們想辦法把最小的數(shù)放到x上,先將x與y進(jìn)行比較,如果x>y則將x與y的值進(jìn)行交換,然后再用x與z進(jìn)行比較,如果x>z則將x與z的值進(jìn)行交換,這樣能使x最小。

2.程序源代碼: main(){ int x,y,z,t;scanf(“%d%d%d”,&x,&y,&z);if(x>y){t=x;x=y;y=t;} /*交換x,y的值*/ if(x>z){t=z;z=x;x=t;}/*交換x,z的值*/ if(y>z){t=y;y=z;z=t;}/*交換z,y的值*/ printf(“small to big: %d %d %dn”,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環(huán)境中運(yùn)行,看一看,Very Beautiful!1.程序分析:字符共有256個。不同字符,圖形不一樣。

2.程序源代碼: #include “stdio.h” main(){ char a=176,b=219;printf(“%c%c%c%c%cn”,b,a,a,a,b);printf(“%c%c%c%c%cn”,a,b,a,b,a);printf(“%c%c%c%c%cn”,a,a,b,a,a);printf(“%c%c%c%c%cn”,a,b,a,b,a);printf(“%c%c%c%c%cn”,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(i=1;i<10;i++)

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

{

result=i*j;

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

}

printf(“n”);/*每一行后換行*/

} }---------------【程序9】

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

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

2.程序源代碼: #include “stdio.h” main(){ int i,j;for(i=0;i<8;i++){

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

if((i+j)%2==0)

printf(“%c%c”,219,219);

else

printf(“ ”);

printf(“n”);} }---------------【程序10】

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

1.程序分析:用i控制行,j來控制列,j根據(jù)i的變化來控制輸出黑方格的個數(shù)。2.程序源代碼: #include “stdio.h” main(){ int i,j;printf(“11n”);/*輸出兩個笑臉*/ for(i=1;i<11;i++){ for(j=1;j<=i;j++)

printf(“%c%c”,219,219);printf(“n”);} } 【程序11】

題目:古典問題:有一對兔子,從出生后第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;/*前兩個月加起來賦值給第三個月*/ } }---------------【程序12】

題目:判斷101-200之間有多少個素數(shù),并輸出所有素數(shù)。

1.程序分析:判斷素數(shù)的方法:用一個數(shù)分別去除2到sqrt(這個數(shù)),如果能被整除,則表明此數(shù)不是素數(shù),反之是素數(shù)。

2.程序源代碼: #include “math.h” main(){ 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 total is %d”,h);}---------------【程序13】

題目:打印出所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個三位數(shù),其各位數(shù)字立方和等于該數(shù)

本身。例如:153是一個“水仙花數(shù)”,因?yàn)?53=1的三次方+5的三次方+3的三次方。

1.程序分析:利用for循環(huán)控制100-999個數(shù),每個數(shù)分解出個位,十位,百位。2.程序源代碼: main(){ int i,j,k,n;printf(“'water flower'number is:”);for(n=100;n<1000;n++){

i=n/100;/*分解出百位*/

j=n/10%10;/*分解出十位*/

k=n%10;/*分解出個位*/

if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)

{

printf(“%-5d”,n);

} } printf(“n”);}---------------【程序14】

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

程序分析:對n進(jìn)行分解質(zhì)因數(shù),應(yīng)先找到一個最小的質(zhì)數(shù)k,然后按下述步驟完成:(1)如果這個質(zhì)數(shù)恰等于n,則說明分解質(zhì)因數(shù)的過程已經(jīng)結(jié)束,打印出即可。

(2)如果n<>k,但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(“nplease input a number:n”);scanf(“%d”,&n);printf(“%d=”,n);for(i=2;i<=n;i++){

while(n!=i)

{

if(n%i==0)

{ printf(“%d*”,i);

n=n/i;

}

else

break;

} } printf(“%d”,n);}---------------【程序15】

題目:利用條件運(yùn)算符的嵌套來完成此題:學(xué)習(xí)成績>=90分的同學(xué)用A表示,60-89分之間的用B表示,60分以下的用C表示。

1.程序分析:(a>b)?a:b這是條件運(yùn)算符的基本例子。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);}---------------【程序16】

題目:輸入兩個正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。1.程序分析:利用輾除法。

2.程序源代碼: main(){ int a,b,num1,num2,temp;printf(“please input two numbers:n”);scanf(“%d,%d”,&num1,&num2);if(num1

num1=num2;

num2=temp;} a=num1;b=num2;while(b!=0)/*利用輾除法,直到b為0為止*/ {

temp=a%b;

a=b;

b=temp;} printf(“gongyueshu:%dn”,a);printf(“gongbeishu:%dn”,num1*num2/a);}---------------【程序17】

題目:輸入一行字符,分別統(tǒng)計出其中英文字母、空格、數(shù)字和其它字符的個數(shù)。1.程序分析:利用while語句,條件為輸入的字符不為'n'.2.程序源代碼: #include “stdio.h” main(){char c;int letters=0,space=0,digit=0,others=0;printf(“please input some charactersn”);while((c=getchar())!='n'){ if(c>='a'&&c<='z'||c>='A'&&c<='Z')

letters++;else if(c==' ')

space++;

else if(c>='0'&&c<='9')

digit++;

else

others++;} printf(“all in all:char=%d space=%d digit=%d others=%dn”,letters, space,digit,others);}---------------【程序18】 題目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一個數(shù)字。例如2+22+222+2222+22222(此時

共有5個數(shù)相加),幾個數(shù)相加有鍵盤控制。1.程序分析:關(guān)鍵是計算出每一項的值。2.程序源代碼: main(){ int a,n,count=1;long int sn=0,tn=0;printf(“please 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);}---------------【程序19】

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

找出1000以內(nèi)的所有完數(shù)。

1.程序分析:請參照程序<--上頁程序14.2.程序源代碼: main(){ static int k[10];int i,j,n,s;for(j=2;j<1000;j++){ n=-1;s=j;

for(i=1;i

{

if((j%i)==0)

{ n++;

s=s-i;

k[n]=i;

}

} if(s==0){ printf(“%d is a wanshu”,j);for(i=0;i

題目:一球從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/2;/*第n次反跳高度*/ } printf(“the total of road is %fn”,sn);printf(“the tenth is %f metern”,hn);} 【程序21】

題目:猴子吃桃問題:猴子第一天摘下若干個桃子,當(dāng)即吃了一半,還不癮,又多吃了一個

第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下 的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。

1.程序分析:采取逆向思維的方法,從后往前推斷。2.程序源代碼: main(){ int day,x1,x2;day=9;x2=1;while(day>0){x1=(x2+1)*2;/*第一天的桃子數(shù)是第2天桃子數(shù)加1后的2倍*/ x2=x1;day--;} printf(“the total is %dn”,x1);}---------------【程序22】

題目:兩個乒乓球隊進(jìn)行比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人。已抽簽決定

比賽名單。有人向隊員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請編程序找出

三隊賽手的名單。

1.程序分析:判斷素數(shù)的方法:用一個數(shù)分別去除2到sqrt(這個數(shù)),如果能被整除,則表明此數(shù)不是素數(shù),反之是素數(shù)。

2.程序源代碼: 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);

}

} } }---------------【程序23】

題目:打印出如下圖案(菱形)

* *** ****** ******** ****** *** * 1.程序分析:先把圖形分成兩部分來看待,前四行一個規(guī)律,后三行一個規(guī)律,利用雙重

for循環(huán),第一層控制行,第二層控制列。2.程序源代碼: main(){ int i,j,k;for(i=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”);} }---------------【程序24】

題目:有一分?jǐn)?shù)序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數(shù)列的前20項之和。1.程序分析:請抓住分子與分母的變化規(guī)律。2.程序源代碼: main(){ int n,t,number=20;float a=2,b=1,s=0;for(n=1;n<=number;n++){ s=s+a/b;t=a;a=a+b;b=t;/*這部分是程序的關(guān)鍵,請讀者猜猜t的作用*/ } printf(“sum is %9.6fn”,s);}---------------【程序25】

題目:求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);}---------------【程序26】

題目:利用遞歸方法求5!。1.程序分析:遞歸公式:fn=fn_1*4!2.程序源代碼: #include “stdio.h” main(){ int i;int fact();for(i=0;i<5;i++)printf(“40:%d!=%dn”,i,fact(i));} int fact(j)int j;{ int sum;if(j==0)sum=1;else sum=j*fact(j-1);return sum;}---------------【程序27】

題目:利用遞歸函數(shù)調(diào)用方式,將所輸入的5個字符,以相反順序打印出來。1.程序分析: 2.程序源代碼: #include “stdio.h” main(){ int i=5;void palin(int n);printf(“40:”);palin(i);printf(“n”);} void palin(n)int n;{ char next;if(n<=1){ next=getchar();printf(“n

主站蜘蛛池模板: 日韩欧美猛交xxxxx无码| 卡1卡2卡三卡精品视频| 老子午夜理论影院理论| 成人啪精品视频网站午夜| 亚洲日韩av片在线观看| 丰满熟妇乱又伦| 日韩精品无码免费专区网站| 风韵饥渴少妇在线观看| 国产精品人妻系列21p| 久久久精品中文字幕麻豆发布| 国产乱人伦av在线a| 国产欧美在线观看不卡| 国产精品伦一区二区三级视频| 中国少妇内射xxxhd| 秋霞av鲁丝片一区二区| 乱人伦xxxx国语对白| 女人被做到高潮免费视频| 一区二区伊人久久大杳蕉| 亚洲国产精品无码一线岛国| 乱子伦av无码中文字| 曰本无码超乳爆乳中文字幕| 亚洲人成欧美中文字幕| 国产毛片一区二区精品| 亚洲 小说 欧美 另类 社区| 亚洲青青草原男人的天堂| 中文在线中文a| 久久精品无码观看tv| 国内精品久久久久久久97牛牛| 国产精品天天看天天狠| 免费人成无码大片在线观看| 国产在线无遮挡免费观看| 亚洲人成电影网站色www两男一女| 国产精品调教视频一区| 国产亚洲精品美女久久久m| 日韩av午夜在线观看| 成片免费观看视频大全| 天天天天躁天天爱天天碰2018| 国产在线精品成人一区二区三区| 亚洲国产精品不卡av在线| 午夜爽爽爽男女污污污网站| 国产旡码高清一区二区三区|