C語言實(shí)驗(yàn)作業(yè)_第1頁
C語言實(shí)驗(yàn)作業(yè)_第2頁
C語言實(shí)驗(yàn)作業(yè)_第3頁
C語言實(shí)驗(yàn)作業(yè)_第4頁
C語言實(shí)驗(yàn)作業(yè)_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、創(chuàng)新源于實(shí)踐高級(jí)語言程序設(shè)計(jì)課程實(shí)驗(yàn)教學(xué)手冊(cè)姓 名: 王朋舉 學(xué) 號(hào): 5001140025 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí): 2014 級(jí) 1 班任課教師 鄢靖豐 時(shí) 間: 2014 年 12 月 31 日綜合成績: 高級(jí)語言程序設(shè)計(jì)課程組實(shí)驗(yàn)手冊(cè)使用及要求實(shí)驗(yàn)操作是教學(xué)過程中理論聯(lián)系實(shí)際的重要環(huán)節(jié),而實(shí)驗(yàn)報(bào)告的撰寫又是知識(shí)系統(tǒng)化的吸收和升華過程,因此,實(shí)驗(yàn)報(bào)告應(yīng)該體現(xiàn)完整性、規(guī)范性、正確性、有效性?,F(xiàn)將實(shí)驗(yàn)報(bào)告撰寫的有關(guān)內(nèi)容說明如下:1、 實(shí)驗(yàn)前按實(shí)驗(yàn)要求手寫程序或程序填空,并走查代碼,有疑問處標(biāo)記,上機(jī)時(shí)在C語言集成開發(fā)環(huán)境下輸入并調(diào)試手寫程序,分析運(yùn)行結(jié)果。2、 實(shí)驗(yàn)結(jié)束后填寫通過

2、后的源程序和對(duì)實(shí)驗(yàn)的總結(jié)。3、 通過后的源程序可以手寫也可以打印粘貼。實(shí)驗(yàn)項(xiàng)目一覽表序 號(hào)實(shí)驗(yàn)項(xiàng)目實(shí)驗(yàn)性質(zhì)學(xué) 時(shí)實(shí)驗(yàn)一熟悉C語言編程環(huán)境驗(yàn)證性2實(shí)驗(yàn)二用C語言編寫簡單程序驗(yàn)證性2實(shí)驗(yàn)三分支結(jié)構(gòu)程序設(shè)計(jì) 驗(yàn)證性2實(shí)驗(yàn)四循環(huán)結(jié)構(gòu)程序設(shè)計(jì)驗(yàn)證性4實(shí)驗(yàn)五函數(shù)程序設(shè)計(jì)驗(yàn)證性4實(shí)驗(yàn)六數(shù)組程序設(shè)計(jì)驗(yàn)證性2實(shí)驗(yàn)七指針程序設(shè)計(jì)驗(yàn)證性4實(shí)驗(yàn)八結(jié)構(gòu)體程序設(shè)計(jì)驗(yàn)證性2實(shí)驗(yàn)九程序設(shè)計(jì)進(jìn)階綜合性2實(shí)驗(yàn)十文件程序設(shè)計(jì)綜合性4學(xué)號(hào): 5001140025 姓名: 王朋舉 成績: 實(shí)驗(yàn)一 熟悉C語言編程環(huán)境實(shí)驗(yàn)?zāi)康模?熟悉C語言編程環(huán)境(VC+、Cfree、Turboc2.0等)2了解C程序的基本框架3理解程序調(diào)試的思想,能找

3、出并改正C程序中的錯(cuò)誤實(shí)驗(yàn)內(nèi)容:1.1 建立自己的文件夾:在磁盤上建立一個(gè)文件夾,用于存放自己的C程序1.2 編程示例在屏幕上顯示一個(gè)短句“Programming in C is fun!”(教師示例,學(xué)生模仿并創(chuàng)新,如輸出漢字、特除字符等。學(xué)會(huì)使用編程環(huán)境VC+,啟動(dòng)、編輯、編譯、運(yùn)行、保存、關(guān)閉、打開)1.3 編程在屏幕上顯示如下網(wǎng)格。+-+-+| | | | |+-+-+1.2 #include<stdio.h>int main()printf("很高興學(xué)習(xí)c語言n");printf("we are stedentsn");return

4、 0; 1.3 #include<stdio.h>int main()printf("+-+-+n| | |n| | |n+-+-+n") ;return 0 ;1.4 調(diào)試示例改正下列程序中的錯(cuò)誤,在屏幕上顯示“Welcome to You !”。(掌握找錯(cuò)、改錯(cuò)的方法)源程序:# include <stdio.h> int mian(void) printf(Welcome to You! n") getchar(); return 0;# include <stdio.h> int main(void) printf(&q

5、uot;Welcome to You! n");getchar();return 0;注:需要修改的語句直接在程序上標(biāo)注并修改實(shí)驗(yàn)總結(jié):了解了C語言的基本程序操作和程序運(yùn)行過程,C語言是進(jìn)一步學(xué)習(xí)C+,Java,和c#,以及相關(guān)的課程如數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng),微機(jī)原理等的基礎(chǔ)語言。通過本章學(xué)習(xí)我已能夠?qū)⒑唵未a轉(zhuǎn)化成計(jì)算機(jī)能夠識(shí)別和執(zhí)行的指令。學(xué)號(hào): 5001140025 姓名: 王朋舉 成績: 實(shí)驗(yàn)二 用C語言編寫簡單程序?qū)嶒?yàn)?zāi)康模?掌握算術(shù)表達(dá)式和賦值表達(dá)式的使用2掌握基本輸出函數(shù)的使用3能夠自己編程實(shí)現(xiàn)簡單的數(shù)據(jù)處理4. 熟練掌握簡單if語句使用5. 熟練掌握for語句的使用6.

6、掌握簡單C程序的查錯(cuò)方法、單步調(diào)試實(shí)驗(yàn)內(nèi)容:2.1 調(diào)試以下程序,求華氏溫度對(duì)應(yīng)的攝氏溫度。計(jì)算公式為:C=5*(f-32)/9#include <stdio.h>int main(void) int celsius, fahr; scanf("%d ",fahr); celsius = 5 * (fahr - 32) / 9; printf("fahr = d, celsius = %dn", fahr, celsius); return 0; 注:需要修改的語句直接在程序上標(biāo)注并修改#include<stdio.h>int m

7、ain ()int celsius,fahr;scanf("%d",fahr);celsius=5*(fahr-32)/9;printf("fahr=d,celsius=%dn",fahr,celsius);return 0;2.2 編寫程序計(jì)算定期存款本利之和:設(shè)銀行定期存款的年利率rate為2.25%,并已知存款期為n年,存款本金為capital元,試編程計(jì)算n年后的本利之和deposit。要求定期存款的年利率rate、存款期n和存款本金capital均由鍵盤輸入,輸出時(shí)保留兩位小數(shù)。計(jì)算公式為:deposit=capital(1+rate)n#in

8、clude<stdio.h>#include<math.h>int main()int n ;float deposit;float capital;float rate=0.0225;scanf ("%d,%f",&n,&capital);deposit=capital*pow(1+rate,n);return 0;2.3 計(jì)算身體質(zhì)量指數(shù)一個(gè)稱為“身體質(zhì)量指數(shù)”(BMI)的量用來計(jì)算與體重有關(guān)的健康問題的危險(xiǎn)程度。BMI按下面的公式計(jì)算: BMI=w/h2其中w是以千克為單位的體重。h是以米為單位的身高。大約20至25的BMI的值

9、被認(rèn)為是“正常的”,編寫一個(gè)應(yīng)用程序,輸入體重和身高,輸出BMI,并判斷是否正常。#include<stdio.h>#include<math.h>int main () char w ,h; double BMI; BMI=w/pow(h,2);printf("連續(xù)輸入兩個(gè)字符,其中w的單位是千克,h的單位是米,逗號(hào)分隔,回車確認(rèn):n"); scanf("%c,%c",&w,&h); if(BMI>=20&& BMI<=25) printf("%f正常n",BMI)

10、; elseprintf("%f非正常n",BMI); return 0;2.4輸出所有水仙花數(shù)水仙花數(shù)是3位數(shù),數(shù)本身的值恰好等于各位數(shù)字的立方和 如:153=13+53+33#include<stdio.h>int main()int a;int ge,shi,bai;scanf("%d",&a);for(a=100;a<=999;a=a+1)ge=a%10;shi=a/10%10;bai=a/100%10;if(a=ge*ge*ge+shi*shi*shi+bai*bai*bai)printf("%dn"

11、;,a);return 0;#include<stdio.h>int main ()int ge,shi,bai,n;for(n=100;n<=999;n+)bai=n/100;shi=n%100/10;ge=n%10;if(n=ge*ge*ge+shi*shi*shi+bai*bai*bai)printf("%dn",n);return 0;結(jié)果:實(shí)驗(yàn)總結(jié):掌握了輸入/輸出函數(shù)和幾種常量與變量,比如整型常量,浮點(diǎn)型常量,字符常量,符號(hào)常量等。整形變量有int型,short型,long型。變量可以儲(chǔ)存數(shù)據(jù)可以使用賦值語句為已經(jīng)聲明的各種變量進(jìn)行賦值,如 s

12、hort x,x=6;輸出變量的值可以使用printf(“”);語句??梢允褂胹canf函數(shù)為變量從鍵盤賦值等。 學(xué)號(hào): 5001140025 姓名: 王朋舉 成績: 實(shí)驗(yàn)三 分支結(jié)構(gòu)程序設(shè)計(jì)實(shí)驗(yàn)?zāi)康模?熟悉掌握關(guān)系表達(dá)式和邏輯表達(dá)式的使用2熟練掌握用嵌套的if語句和switch語句實(shí)現(xiàn)多分支結(jié)構(gòu)程序設(shè)計(jì)3掌握使用斷點(diǎn)調(diào)試程序的方法實(shí)驗(yàn)內(nèi)容:3.1 按要求調(diào)試程序輸入?yún)?shù)a,b,c,求一元二次方程ax2+bx+c=0的根。include <stdio.h>#include <math.h>int main(void)double a, b, c,d;printf(&qu

13、ot;Enter a, b, c n");scanf("%lf%lf%lf", &a, &b, &c);d = b * b - 4 * a * c;if(a=0)if(b = 0)if(c = 0)printf("參數(shù)都為零,方程無意義!n"); /*調(diào)試時(shí)設(shè)置斷點(diǎn)*/elseprintf("a和b為0,c不為0,方程不成立n");elseprintf("x = %0.2fn", -c/b);elseif(d >= 0) /*調(diào)試時(shí)設(shè)置斷點(diǎn)*/printf("x1=

14、%0.2fn", (-b+sqrt(d)/(2*a);printf("x2=%0.2fn", (-b-sqrt(d)/(2*a);elseprintf("x1=%0.2f+%0.2fin", -b/(2*a), sqrt(-d)/(2*a);printf("x2=%0.2f-%0.2fin", -b/(2*a), sqrt(-d)/(2*a); return 0; /*調(diào)試時(shí)設(shè)置斷點(diǎn)*/注:調(diào)試時(shí)按注釋位置設(shè)置三個(gè)斷點(diǎn),單擊Go按鈕,輸入2.1 8.9 3.5 ,觀察變量值的情況。第一次斷點(diǎn):a,b,c的值分別是:2.1 8

15、.9 3.5第二次斷點(diǎn):d的值是:49.81第三次斷點(diǎn):運(yùn)行窗口顯示:#include <stdio.h>#include <math.h>int main()double a, b, c,d;printf("Enter a, b, c n");scanf("%lf,%lf,%lf", &a, &b, &c);d = b * b - 4 * a * c;if(a=0)if(b = 0)if(c = 0)printf("參數(shù)都為零,方程無意義!n"); elseprintf("a

16、和b為0,c不為0,方程不成立n");elseprintf("x = %0.2fn", -c/b);elseif(d >= 0) printf("x1=%0.2fn", (-b+sqrt(d)/(2*a);printf("x2=%0.2fn", (-b-sqrt(d)/(2*a);elseprintf("x1=%0.2f+%0.2fin", -b/(2*a), sqrt(-d)/(2*a);printf("x2=%0.2f-%0.2fin", -b/(2*a), sqrt(-d)

17、/(2*a); return 0; 3.2 求三角形的面積和周長輸入三角形的三條邊 a, b, c,如果能構(gòu)成一個(gè)三角形,輸出面積area 和周長perimeter(保留2 位小數(shù));否則,輸出“These sides do not correspond to a valid triangle”。在一個(gè)三角形中,任意兩邊之和大于第三邊。三角形的面積計(jì)算公式: 其中:s = (a+b+c)/2#include<stdio.h>#include<math.h>int main ()double a,b,c,s,area,perimeter;printf("Ente

18、r a, b, c n");scanf("%lf,%lf,%lf",&a,&b,&c);perimeter=a+b+c;s = (a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); if(a+b>c&&a+c>b&&b+c>a&&b-c<a&&a-b<c&&a-c<b) printf("%0.2f,%0.2f",area,perimeter); else printf(&quo

19、t;These sides do not correspond to a valid triangle"); return 0;3.3 計(jì)算個(gè)人所得稅輸入一個(gè)職工的月薪 salary,輸出應(yīng)交的個(gè)人所得稅tax(保留2 位小數(shù))。tax = rate * (salary-3500) - deduction當(dāng) salary <= 3500 時(shí),rate = 0,deduction=0;當(dāng) 3500 < salary <= 5000時(shí),rate = 3%,deduction=0;當(dāng) 5000 < salary <=8000 時(shí),rate =10%,deduc

20、tion=555;當(dāng) 8000 < salary <=12500 時(shí),rate =20%,deduction=555;當(dāng) 12500 < salary <= 38500 時(shí),rate =25%,deduction=1005;當(dāng) 38500 < salary <=58500 時(shí),rate =30%,deduction=2755;當(dāng) 58500 < salary <= 83500 時(shí),rate =35%,deduction=5505;當(dāng) 83500 < salary 時(shí),rate =45%,deduction=13505;#include<

21、;stdio.h>#include <math.h>int main ()float salary,tax,rate,deduction;printf("輸入月薪:"); scanf("%f",&salary); tax = rate * (salary-3500) - deduction;if(salary <= 3500)rate = 0;deduction=0;printf("%0.2f",tax);else if(3500 < salary&&salary <= 50

22、00)rate=0.03,deduction=0;tax = rate * (salary-3500) - deduction;printf("個(gè)人所得稅為%0.2f",tax);else if(5000 < salary&&salary <=8000)rate=0.1,deduction=555;tax = rate * (salary-3500) - deduction;printf("個(gè)人所得稅為%0.2f",tax);else if( 8000 < salary&&salary <=1250

23、0)rate=0.2,deduction=555;tax = rate * (salary-3500) - deduction;printf("個(gè)人所得稅為%0.2f",tax);else if(12500 < salary &&salary <= 38500)rate=0.25,deduction=1005;tax = rate * (salary-3500) - deduction;printf("個(gè)人所得稅為%0.2f",tax);else if( 38500 < salary&& salary &

24、lt;=58500)rate=0.3,deduction=2755;tax = rate * (salary-3500) - deduction;printf("個(gè)人所得稅為%0.2f",tax);else if( 58500 < salary &&salary <= 83500)rate=0.35,deduction=5505;tax = rate * (salary-3500) - deduction;printf("個(gè)人所得稅為%0.2f",tax);else if(83500 < salary)rate=0.45

25、,deduction=13505;tax = rate * (salary-3500) - deduction;printf("%0.2f",tax);return 0;3.4 計(jì)算出租車費(fèi)某市不同品牌出租車價(jià)格為:捷達(dá)5元起價(jià),1公里內(nèi)收起步價(jià),1公里外按1.4元/公里收取;速騰7元起價(jià),1公里內(nèi)收起步價(jià),1公里外按1.4元/公里收?。患t旗10元起價(jià),1公里內(nèi)收起步價(jià),1公里外按1.5元/公里收取。編寫程序,從鍵盤輸入乘車車型和乘車公里數(shù),輸出應(yīng)付的車費(fèi)。(采用switch語句實(shí)現(xiàn)車型選擇)#include<stdio.h>#include<math.h

26、> int main () float g,money;int chexing;printf("輸入車型和公里數(shù):捷達(dá)為1,速騰為2,紅旗為3(回車確認(rèn)):n");scanf("%d%f",&chexing,&g);switch(chexing)case 1:if(g<=1)printf("捷達(dá)出租車行駛公里%0.2f,出租車費(fèi)5元",g);elsemoney=5+(g-1)*1.4;printf("捷達(dá)出租車行駛公里%0.2f,出租車費(fèi)%0.2f元",g,money);break; c

27、ase 2: if(g<=1)printf("速騰出租車行駛公里%0.2f,出租車費(fèi)7元",g);elsemoney=7+(g-1)*1.4; printf("速騰出租車行駛公里%0.2f,出租車費(fèi)%0.2f元",g,money);break; case 3:if(g<=1)printf("紅旗出租車行駛公里%0.2f,出租車費(fèi)10元",g);elsemoney=10+(g-1)*1.5;printf("紅旗出租車行駛公里%0.2f,出租車費(fèi)%0.2f元",g,money);break;return 0

28、; 實(shí)驗(yàn)總結(jié):語句的作用是讓計(jì)算機(jī)執(zhí)行相應(yīng)操作,已達(dá)到程序的既定目的??刂普Z句分為條件分支語句,開關(guān)語句,和循環(huán)語句。其中if,if-else以及if-else,if-else條件分支語句要根據(jù)不同的條件從多個(gè)分支操作中選擇其中一個(gè)來執(zhí)行。Switch開關(guān)語句要從一個(gè)或多個(gè)來執(zhí)行,并注意使用break。學(xué)號(hào): 5001140025 姓名: 王朋舉 成績: 實(shí)驗(yàn)四 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)實(shí)驗(yàn)?zāi)康模?熟練掌握for、while、和dowhile語句實(shí)現(xiàn)循環(huán)程序設(shè)計(jì)2. 理解循環(huán)條件和循環(huán)體,以及三種循環(huán)語句的相同和不同之處3熟練掌握break、continue語句的使用4掌握使用“Debug”菜單調(diào)試程

29、序的方法實(shí)驗(yàn)內(nèi)容:4.1 按要求調(diào)試程序改正下列程序中的錯(cuò)誤,輸入2個(gè)正整數(shù)m和n,輸出它們的最小公倍數(shù)和最大公約數(shù)。#include <stdio.h>int main(void) int m, n, j, k; /* j表示最小公倍數(shù),k表示最大公約數(shù) */ do printf("Input m: "); scanf("%d", &m); printf("Input n: "); scanf("%d", &n); while(m<0|n<0);j = m; while(j

30、 % n != 0) /* 調(diào)試時(shí)設(shè)置斷點(diǎn) */ j = j + m;k = (m * n) / j; /* 調(diào)試時(shí)設(shè)置斷點(diǎn) */ printf("最小公倍數(shù)是%d n最大公約數(shù)是%dn ", j, k); return 0;注:調(diào)試時(shí)按注釋位置設(shè)置二個(gè)斷點(diǎn),單擊Go按鈕,輸入3 7 ,觀察變量值的情況。第一次斷點(diǎn):m,n的值分別是:3,7第二次斷點(diǎn):j的值是:若結(jié)果不對(duì),停止調(diào)試,改正錯(cuò)誤后,取消第一個(gè)斷點(diǎn),單擊Go,到斷點(diǎn)處,此時(shí)j的值是:4.2 編寫程序輸入一批正整數(shù)(以0或負(fù)數(shù)為結(jié)束標(biāo)志),求其中的偶數(shù)和。#include <stdio.h>int ma

31、in()int a;int sum=0;printf("輸入一批正整數(shù),空格間隔,以0或負(fù)數(shù)為結(jié)束標(biāo)致:");scanf("%d",&a);while(a>0) if(a%2=0) sum=sum+a;scanf("%d",&a); printf("sum=%d",sum);return 0;4.3編寫程序給一個(gè)不多于5位的正整數(shù),要求:a. 求出它是幾位數(shù);b. 分別輸出每一位數(shù)字;c. 按逆序輸出各位數(shù)字,例如原數(shù)為321,應(yīng)輸出123#include <stdio.h>int

32、 main()int n,a1,a2,a3,a4,a5,m;printf("給一個(gè)不多于5位的正整數(shù)");scanf("%d",&n);if(n>99999|n<0)printf("輸入的數(shù)字不符合要求");else if(n>0&&n<=9)printf("是一位數(shù),個(gè)位數(shù)字是%d",n);else if(n>9&&n<=99)a1=n/10,a2=n%10,m=a1+a2*10,printf("是兩位數(shù),十位數(shù)字是%d,個(gè)位數(shù)

33、字是%d,逆位數(shù)是%d",a1,a2,m);else if(n>99&&n<=999)a1=n/100,a2=n/10%10,a3=n%10,m=a3*100+a2*10+a1,printf("是三位數(shù),百位數(shù)字是%d,十位數(shù)字是%d,個(gè)位數(shù)字是%d,逆位數(shù)是%d",a1,a2,a3,m);else if(n>999&&n<=9999)a1=n/1000,a2=n/100%10,a3=n/10%10%10,a4=n%10,m=a4*1000+a3*100+a2*10+a1,printf("是四位數(shù),

34、千位數(shù)字是%d,百位數(shù)字是%d,十位數(shù)字是%d,個(gè)位數(shù)字是%d,逆位數(shù)是%d",a1,a2,a3,a4,m);else if(n>9999&&n<=99999)a1=n/10000,a2=n/1000%10,a3=n/100%10%10,a4=n/10%10%10%10,a5=n%10,m=a5*10000+a4*1000+a3*100+a2*10+a1,printf("是五位數(shù),萬,千,百,十,個(gè)位數(shù)依次是:%d,%d,%d,%d,%d,逆位數(shù)是%d",a1,a2,a3,a4,a5,m);return 0;4.4 統(tǒng)計(jì)素?cái)?shù)并求和輸入

35、2 個(gè)正整數(shù)m 和n (1<=m,n<=5 00),統(tǒng)計(jì)并輸出m 和n 之間的素?cái)?shù)的個(gè)數(shù)以及這些素?cái)?shù)的和(素?cái)?shù)就是只能被1 和自身整除的正整數(shù),1 不是素?cái)?shù),2 是素?cái)?shù))。#include<stdio.h>#include<math.h>int main()int m,n,a, i,j ,count=0,sum=0;printf("輸入兩個(gè)正整數(shù)m和nn");scanf("%d%d",&m,&n);if(m<1|n>500) printf("輸入為無效數(shù)字"); retu

36、rn 0; for(i=m;i<=n;i+) for(j=2;j<i;j+) if(i%j=0) break; if(j=i) count+; sum=sum+i; printf("%4d%4d",sum,count);return 0;4.5 編寫程序用一張一元票換1分、2分和5分的硬幣(至少各一枚),問有哪幾種換法?各幾枚?#include<stdio.h> int main(void) int y,l,w,s=0; /y為1分硬幣,l為2分硬幣,w為5分硬幣 for(y=1;y<100;y+) for(l=1;l<50;l+) fo

37、r(w=1;w<20;w+) if(5*w+2*l+y=100) printf("%dt%dt%dn",y,l,w); s+; printf("s=%d",s); return 0; 4.6 猜數(shù)游戲先由計(jì)算機(jī)“想”一個(gè)1100之間的數(shù)請(qǐng)人猜,如果人猜對(duì)了,則結(jié)束游戲,并在屏幕上輸出人猜了多少次才猜對(duì)此數(shù),以此來反映猜數(shù)者“猜”的水平;否則計(jì)算機(jī)給出提示,告訴人所猜的數(shù)是太大還是太小,最多可以猜10次,如果猜了10次仍未猜中的話,結(jié)束游戲?!舅伎肌咳绻胹canf輸入用戶猜測的數(shù)據(jù)時(shí),如果用戶不小心輸入了非法字符,如字符a,那么程序運(yùn)行就會(huì)出錯(cuò),用

38、什么方法可以避免這樣的錯(cuò)誤發(fā)生呢?請(qǐng)編寫程序驗(yàn)證方法的有效性。#include <stdio.h>#include <time.h>#include <stdlib.h>int main() int randomNumber; int guess; int count = 0;char b; srand(time(NULL); printf("給你一個(gè)1至100之間的數(shù),請(qǐng)猜測:n"); randomNumber = rand()%100+1; do scanf("%d",&guess); count+; if

39、 (guess=b) printf("非法字符"); exit(0); else if (count > 10) printf("10次未猜中,游戲結(jié)束");exit(0); if(guess > randomNumber) printf("第%d次猜測,猜大了,請(qǐng)?jiān)俨?n",count); else if(guess < randomNumber) printf("第%d次猜測,猜小了,請(qǐng)?jiān)俨?n",count); while(guess != randomNumber); printf(&qu

40、ot;您猜對(duì)了,共猜了%d次,這個(gè)數(shù)就是:%dn",count,randomNumber); return 0;實(shí)驗(yàn)總結(jié):循環(huán)語句讓程序反復(fù)執(zhí)行一段代碼來達(dá)到某種目的。其分為while循環(huán)語句,do-while循環(huán)語句,for循環(huán)語句,break 和continue循環(huán)語句。這幾種循環(huán)語句流程不同,但解決問題的能力相同,即是說一個(gè)問題可以使用多種循環(huán)語句來執(zhí)行,而且問題的答案是相同的。Break語句可以結(jié)束當(dāng)前循環(huán)語句的執(zhí)行,continue語句可以結(jié)束循環(huán)體的執(zhí)行等。學(xué)號(hào): 5001140025 姓名: 王朋舉 成績: 實(shí)驗(yàn)五 函數(shù)程序設(shè)計(jì)實(shí)驗(yàn)?zāi)康模?熟練掌握函數(shù)的定義和調(diào)用2熟練

41、掌握使用函數(shù)編寫程序3掌握函數(shù)的實(shí)參、形參和返回值的概念和使用4. 掌握單步調(diào)試進(jìn)入函數(shù)和跳出函數(shù)的方法實(shí)驗(yàn)內(nèi)容:5.1 改錯(cuò)改正下列程序中的錯(cuò)誤,計(jì)算1!+2!+3!+4!+10!的值,要求定義并調(diào)用函數(shù)fact(n),計(jì)算n!,函數(shù)類型是double。#include <stdio.h>double fact(int n)int main(void ) int i; double sum; for (i = 1 ; i < 10; i+) sum = sum + fact(i); /*設(shè)置斷點(diǎn)*/ printf("1!+2!+10!= %fn", su

42、m); return 0;double fact(int n); int i; double result; for (i = 1 ; i <=n; i+) fact(n)=fact(n)*i; return result;注:1. 需要修改的語句直接在程序上標(biāo)注并修改 2. 設(shè)置斷點(diǎn),單步進(jìn)入函數(shù)和從函數(shù)返回主調(diào)函數(shù)5.2 求aaaaaaaaa輸入 2 個(gè)正整數(shù)a 和n, 求a+aa+aaa+aaa(n 個(gè)a)之和。要求定義并調(diào)用函數(shù) fn(a,n),它的功能是返回aaa(n 個(gè)a)。例如,fn(3,2)的返回值是33。#include<stdio.h>int fn(int

43、 a, int n);int main()int a, n;int fn(int a,int n);printf("輸入 a 和 n:");scanf("%d%d",&a,&n);printf("f(%d,%d)=%d",a,n,fn(a,n);int fn(int a, int n)int s=a;int i=1;dos = 10*s+a;i+;while( i<n);return s;5.3 統(tǒng)計(jì)一個(gè)整數(shù)中數(shù)字的個(gè)數(shù)要求定義并調(diào)用函數(shù),它的功能是統(tǒng)計(jì)整數(shù)number 中數(shù)字digit的個(gè)數(shù)。例如,countd

44、igit(10090,0)的返回值是3#include<stdio.h>int countdigit(int number,int digit);int main() int number,digit,s;printf("輸入一個(gè)number和digit: ");scanf("%d%d",&number,&digit);s=countdigit(number,digit);printf("%d",s);int countdigit(int number,int digit)int m,n=0;do m =

45、number % 10;number=number/10;if(m=digit) n+;while(number!=0);return n;5.4 判斷素?cái)?shù)輸入一個(gè)正整數(shù) n,如果它是素?cái)?shù),輸出"YES",否則,輸出"NO"(素?cái)?shù)就是只能被1 和自身整除的正整數(shù),1 不是素?cái)?shù),2 是素?cái)?shù))。要求定義并調(diào)用函數(shù) prime(m)判斷m 是否為素?cái)?shù)。#include<stdio.h>int prime( int ); int main()int K,n;printf("請(qǐng)輸入一個(gè)數(shù)字");scanf("%d"

46、;,&n);K=prime(n);if(K='A')printf("yes");else printf("no");return 0;int prime( int m )int i,K=0;for(i=2;i<=m;i+)if(m%i=0)break;if(i=m)K='A'return K;5.5 輸出 Fibonacci 序列輸入 2 個(gè)正整數(shù)m 和n(1<=m,n<=10000),輸出m 和n 之間所有的Fibonacci 數(shù)。Fibonacci 序列(第1 項(xiàng)起):1 1 2 3 5 8

47、13 21 .要求定義并調(diào)用函數(shù)fib(n),它的功能是返回第n 項(xiàng)Fibonacci 數(shù)。例如,fib(7)的返回值是13。例:括號(hào)內(nèi)是說明輸入:20 100 (m=20, n=100)輸出:21 34 55 89 (20 到100 之間的Fibonacci 數(shù))#include<stdio.h>#include<stdlib.h>int fib(int);int main() int a,b,m,n,i,s; printf("請(qǐng)輸入兩個(gè)數(shù)m和n,逗號(hào)分隔"); scanf("%d,%d",&m,&n);if(m

48、<1|n>10000) printf("輸入有誤"); exit(0);for (s=m;s<=n;s+) b=fib(s);if(b>=m&&b<=n)printf("%-4d",b); printf("m和n之間所有Fibonacci數(shù)");return 0;int fib(int n)int k;if(n=1|n=2)k=1;else if(n>=3)k=fib(n-1)+fib(n-2);return k;實(shí)驗(yàn)總結(jié):函數(shù)是c語言的學(xué)習(xí)重點(diǎn),因?yàn)閏語言是由若干個(gè)函數(shù)構(gòu)成的,所以

49、掌握了如何編寫一個(gè)函數(shù)才可掌握編寫程序。函數(shù)在使用要進(jìn)行聲明,然后才能調(diào)用。Return語句可以得到函數(shù)的返回值,函數(shù)的形參和實(shí)參用于函數(shù)傳值和調(diào)用,main函數(shù)可以調(diào)用其他函數(shù),但其他函數(shù)不能調(diào)用main函數(shù),main函數(shù)只由操作系統(tǒng)來調(diào)用。另外函數(shù)還可以遞歸調(diào)用。局部變量與全局變量各有特點(diǎn)但在運(yùn)用中要謹(jǐn)慎使用,有auto局部變量,static局部變量,register局部變量。學(xué)號(hào): 5001140025 姓名: 王朋舉 成績: 實(shí)驗(yàn)六 數(shù)組程序設(shè)計(jì)實(shí)驗(yàn)?zāi)康模?熟練掌握一維數(shù)組、二維數(shù)組編程方法2. 熟練掌握字符串的存儲(chǔ)和操作方法3熟練掌握排序算法實(shí)驗(yàn)內(nèi)容:6.1改錯(cuò)改正下列程序中的錯(cuò)誤,

50、輸入一個(gè)正整數(shù)n(0<n<9)和一組(n個(gè))有序的整數(shù),再輸入一個(gè)整數(shù)x,把x插入到這組數(shù)據(jù)中,使該組數(shù)據(jù)仍然有序。#include <stdio.h>int main( ) int i, j, n, x, an; printf("輸入數(shù)據(jù)的個(gè)數(shù)n:"); scanf("%d", &n); printf("輸入%d個(gè)整數(shù):", n); for(i = 0; i < n; i+)scanf("%d", &ai); printf("輸入要插入的整數(shù):")

51、; scanf("%d", &x); for(i = 0; i < n; i+)if(x > ai) continue; j = n - 1;while(j >= i) /* 調(diào)試時(shí)設(shè)置斷點(diǎn) */ aj = aj+1; j+; /* 調(diào)試時(shí)設(shè)置斷點(diǎn) */ ai = x; break; if(i = n) an=x; for(i = 0; i < n + 1; i+) printf("%d ", ai); putchar('n'); return 0;6.2 求平均值輸入一個(gè)正整數(shù) n (1<n<

52、=10),再輸入n 個(gè)整數(shù),輸出平均值(保留2 位小數(shù))。#include<stdio.h> int main(void) int a100,i,n;float sum=0;printf("輸入一個(gè)正整數(shù)n,回車確認(rèn):");scanf("%d",&n);printf("輸入n個(gè)正整數(shù),回車分隔,回車確認(rèn)"); for(i=0;i<n;i+)scanf("%d",&ai);for(i=0;i<n;i+)sum = sum +ai;printf("%0.2lf"

53、;,sum/n);return 0;6.3 交換最小值和最大值輸入一個(gè)正整數(shù) n (1<n<=10),再輸入n 個(gè)整數(shù),將最小值與第一個(gè)數(shù)交換,最大值與最后一個(gè)數(shù)交換,然后輸出交換后的n 個(gè)數(shù)。#include<stdio.h>int main()int n,a20,i,max,min,c,d,temp;printf("輸入一個(gè)正整數(shù)n(0<n<=10)回車確認(rèn):");scanf("%d",&n);printf("輸入%d個(gè)整數(shù),空格分隔,回車確認(rèn):",n);for(i=0;i<n;i

54、+) scanf("%d",&ai);max=min=a0;for(i=0;i<n;i+)if(ai>max) max=ai; d=i;if(ai<min) min=ai; c=i; temp=ad; ad=an-1; an-1=temp; temp=ac; ac=a0; a0=temp;for(i=0;i<n;i+) printf("%-3d",ai);printf("交換后的數(shù)字排如上");putchar('n'); return 0;6.4 排序輸入一個(gè)正整數(shù) n (1<n&

55、lt;=10),再輸入n 個(gè)整數(shù),將它們從大到小排序后輸出。#include<stdio.h>int main()int n,a20,i,j,m;printf("輸入一個(gè)正整數(shù)n(1<n<=10),回車確認(rèn):");scanf("%d",&n);printf("輸入%d個(gè)整數(shù),空格分隔,回車確認(rèn):",n);for(i=0;i<n;i+) scanf("%d",&ai);for(i=0;i<n-1;i+)for(j=i+1;j<n;j+) if(ai<aj)m=ai;ai=aj;aj=m; for(i=0;i<n;

溫馨提示

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

評(píng)論

0/150

提交評(píng)論