C語言實(shí)驗(yàn)指導(dǎo)書全教程_第1頁
C語言實(shí)驗(yàn)指導(dǎo)書全教程_第2頁
C語言實(shí)驗(yàn)指導(dǎo)書全教程_第3頁
C語言實(shí)驗(yàn)指導(dǎo)書全教程_第4頁
C語言實(shí)驗(yàn)指導(dǎo)書全教程_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 第一部分:C語言程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)大綱一、本實(shí)驗(yàn)課的性質(zhì)、任務(wù)與目的本實(shí)驗(yàn)課目的是使學(xué)生掌握C語言編程的常用方法,以任務(wù)驅(qū)動教學(xué)法,重點(diǎn)培養(yǎng)學(xué)生的編程能力,為以后學(xué)習(xí)后繼專業(yè)課程和進(jìn)行軟件開發(fā)打下基礎(chǔ)。通過學(xué)習(xí)能夠運(yùn)用C語言中的各個(gè)知識點(diǎn)編寫能完成一定功能的程序。訓(xùn)練學(xué)生進(jìn)行復(fù)雜程序設(shè)計(jì)的技能和培養(yǎng)良好程序設(shè)計(jì)的習(xí)慣,實(shí)驗(yàn)教學(xué)是培養(yǎng)應(yīng)用型人才的重要環(huán)節(jié),其重要程度決不亞于知識的傳授。把高級語言的學(xué)習(xí)與程序設(shè)計(jì)、上機(jī)實(shí)踐緊密地結(jié)合起來,以提高學(xué)生能靈活運(yùn)用新的知識分析問題和解決問題的能力。二、本實(shí)驗(yàn)課所依據(jù)的課程基本理論本實(shí)驗(yàn)課基于C語言的語法和詞法規(guī)則、數(shù)據(jù)的表示及算法的處理,而語法及算法正是

2、高級語言程序設(shè)計(jì)的主要研究對象。C語言程序設(shè)計(jì)的主要任務(wù)是:C 語言是一種應(yīng)用廣泛結(jié)構(gòu)化程序設(shè)計(jì)語言,本課程介紹C語言的基本概念、基本語法和編程方法,重點(diǎn)描述C語言的結(jié)構(gòu)化的特征,并通過本課程的學(xué)習(xí),使學(xué)生掌握一定的結(jié)構(gòu)化程序設(shè)計(jì)的知識,以及用C語言編寫程序的能力。三、實(shí)驗(yàn)類型與要求在做每個(gè)實(shí)驗(yàn)之前,讓學(xué)生對本次實(shí)驗(yàn)相關(guān)的內(nèi)容進(jìn)行預(yù)習(xí)、算法設(shè)計(jì)、流程圖的設(shè)計(jì)、編寫程序,做好實(shí)驗(yàn)的準(zhǔn)備工作;寫出預(yù)習(xí)報(bào)告,畫出流程圖,要求獨(dú)立完成。序號實(shí) 驗(yàn)名 稱內(nèi) 容提 要每組人數(shù)實(shí)驗(yàn)時(shí)數(shù)實(shí)驗(yàn)要求實(shí)驗(yàn)類別備注1熟悉C語言運(yùn)行環(huán)境簡單的C程序編譯、運(yùn)行12必做驗(yàn)證性2順序結(jié)構(gòu)程序設(shè)計(jì)含輸入輸出語句的簡單程序14必

3、做驗(yàn)證性3選擇結(jié)構(gòu)程序設(shè)計(jì)ifswitch語句運(yùn)用14必做驗(yàn)證性4循環(huán)結(jié)構(gòu)程序設(shè)計(jì)whiledo-whilefor語句的運(yùn)用16必做驗(yàn)證性5數(shù)組的定義及其應(yīng)用一維、二維、字符數(shù)組的定義與運(yùn)用14必做驗(yàn)證性6函數(shù)的定義及其應(yīng)用函數(shù)的定義、調(diào)用與使用14必做驗(yàn)證性7結(jié)構(gòu)體的定義及其應(yīng)用結(jié)構(gòu)體類型及其變量、結(jié)構(gòu)體數(shù)組14必做驗(yàn)證性8指針的定義及其應(yīng)用指針變量的定義及多方面的應(yīng)用12必做驗(yàn)證性9文件的應(yīng)用磁盤文件的操作12必做驗(yàn)證性10綜合性實(shí)驗(yàn)軟件系統(tǒng)小程序18必做綜合性四、每組人數(shù)與實(shí)驗(yàn)學(xué)時(shí)數(shù)每組1人,實(shí)驗(yàn)共40學(xué)時(shí) 五、考核方式與評分辦法 實(shí)驗(yàn)總成績=出勤情況*10%+實(shí)驗(yàn)報(bào)告*20%+平時(shí)*3

4、0%+實(shí)驗(yàn)內(nèi)容*40%六、本實(shí)驗(yàn)課配套教材或?qū)嶒?yàn)指導(dǎo)書教材:蘇小紅主編.C語言大學(xué)實(shí)用教程,電子工業(yè)出版社,十一五國家級規(guī)劃教材,2008 .7參考書:1何欽銘,顏暉主編.C語言程序設(shè)計(jì),高等教育出版社,十一五規(guī)劃教材,2008 .12顏暉主編.C語言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo),高等教育出版社,2008.13張引,何欽銘等. C程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì),浙江大學(xué)出版社,2007.94譚浩強(qiáng). C程序設(shè)計(jì)題解與上機(jī)指導(dǎo).北京:清華大學(xué)出版社.2006年3月第3版5譚浩強(qiáng). C程序設(shè)計(jì)試題匯編.北京:清華大學(xué)出版社.2006年3月第2版6夏寬理. C語言程序設(shè)計(jì).北京:中國鐵道出版社.2006年2月第1版7夏寬

5、理. C語言程序設(shè)計(jì)上機(jī)指導(dǎo)與習(xí)題解答.北京:中國鐵道出版社.2006.28王士元. C高級實(shí)用程序設(shè)計(jì).北京:清華大學(xué)出版社.1996年1月第1版9譚浩強(qiáng). C程序設(shè)計(jì).北京:清華大學(xué)出版社.2006年3月第3版七、實(shí)驗(yàn)報(bào)告要求上機(jī)實(shí)驗(yàn)?zāi)康脑谟冢和ㄟ^驗(yàn)證課本中的內(nèi)容及自己編寫的程序,加深對課本中詞法、語法的掌握;熟悉所用的C語言開發(fā)環(huán)境;上機(jī)調(diào)試自己的程序,學(xué)會編程,重要是能上機(jī)調(diào)試通過,調(diào)試經(jīng)驗(yàn)是通過自己的直接實(shí)踐來累積。上機(jī)實(shí)驗(yàn)的要求:課前準(zhǔn)備好上機(jī)所要的程序源代碼;上機(jī)輸入和調(diào)試自己的程序,努力獨(dú)立完成調(diào)試過程,自行解決編譯錯誤;實(shí)驗(yàn)結(jié)束,認(rèn)真編寫實(shí)驗(yàn)報(bào)告在機(jī)器上運(yùn)行程序代碼,每次實(shí)驗(yàn)

6、成績分為優(yōu)、良、及格、不及格,未參加的為0分。要求認(rèn)真編寫實(shí)驗(yàn)報(bào)告。報(bào)告內(nèi)容應(yīng)包含以下內(nèi)容:1實(shí)驗(yàn)題目2實(shí)驗(yàn)?zāi)康暮鸵?解題思路4調(diào)試過程(實(shí)驗(yàn)過程出現(xiàn)的問題及解決的方法或尚未解決的問題)5程序代碼及運(yùn)行結(jié)果6實(shí)驗(yàn)結(jié)果分析 7. 教師評語第二部分:C語言程序設(shè)計(jì)的運(yùn)行環(huán)境VC+6.0-VC+ 6.0集成開發(fā)環(huán)境的使用在眾多的面向?qū)ο蟪绦蛟O(shè)計(jì)語言中,Microsoft公司的VC+6.0 獨(dú)樹一幟,是一個(gè)集程序編輯、編譯、連接和調(diào)試于一體的C語言程序開發(fā)環(huán)境。在Windows環(huán)境下,操作方便。VC環(huán)境中運(yùn)行C語言源程序的步驟1、啟動Visual C+6.0開發(fā)環(huán)境2、創(chuàng)建一個(gè)項(xiàng)目(1)在Visua

7、l C+6.0開發(fā)環(huán)境主窗口,單擊File菜單中的New選項(xiàng),顯示一個(gè)New對話框,如下: (2)單擊Projects,選擇Win32 Console Applocation,并在右側(cè)相應(yīng)的文本框中填入項(xiàng)目的路徑和名稱 (3)在彈出的Win32 Console Applocation-Step 1 of 1對話框中選擇An empty project單選項(xiàng),然后單擊Finish.(4)最后在New Project Information對話框中單擊OK。3、建立C源程序文件 (1)選擇菜單命令Project | Add to Project | New,彈出New對話框。(2)在New對話框的

8、Files中選擇C+ Source File ,并寫入文件名,單擊OK4、編輯C語言源程序 (1)在文件編輯窗口中輸入源代碼(2)選擇File | Save,保存程序 5、建立并運(yùn)行可執(zhí)行程序 (1)選擇菜單命令Build | Build Filename.ext建立可執(zhí)行文件 (2)選擇菜單命令Build | Execute Filename.exe運(yùn)行程序,觀察顯示的內(nèi)容 6、關(guān)閉工作空間 選擇菜單命令File | Close Workspace關(guān)閉工作空間。 例:從鍵盤上輸入兩個(gè)整數(shù),輸出兩者中的較大數(shù)。 1、新建一CPP文件后,在編輯窗口輸入源代碼如下: 2、編譯、連接后,從鍵盤上輸入

9、12,34 ,則可查看程序運(yùn)行結(jié)果: 第三部分:實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)一:熟悉VC+6.0運(yùn)行環(huán)境【目的與要求】 1、了解VC環(huán)境下C語言的運(yùn)行環(huán)境,熟悉編譯系統(tǒng)的操作環(huán)境。2、了解在該系統(tǒng)上如何編輯和運(yùn)行一個(gè)C程序。3、通過運(yùn)行簡單的C程序,初步了解運(yùn)行C語言程序的操作過程?!緦?shí)驗(yàn)內(nèi)容】1、題目:由鍵盤輸入兩個(gè)整數(shù),計(jì)算并輸出兩個(gè)數(shù)之和。2、程序代碼: #include “stdio.h” void main() int a,b,sum;printf(“Please input two integer numbers:n”);scanf(“%d%d”,&a,&b);sum=a+b;printf(“%d

10、+%d=%d”,a,b,sum); 3、具體操作: (1)輸入程序,按Ctrl+F9。若在運(yùn)行后有詞法或語法錯誤,則根據(jù)提示進(jìn)行修改,再進(jìn)行調(diào)試,直到?jīng)]有語法錯誤。 (2)運(yùn)行后,依下列不同的方式輸入數(shù)據(jù),查看程序執(zhí)行結(jié)果。 1234 12 34 1234 【實(shí)驗(yàn)分析與討論】 1、總結(jié)C程序的基本結(jié)構(gòu)和書寫規(guī)則。2、分析調(diào)試過程中常見的錯誤提示和解決策略。3、掌握調(diào)試過程中問題解決的方法和思路【DIY】一、 改錯:實(shí)現(xiàn)求三個(gè)數(shù)的平均值。#include void main() float a,b,c,sum; float average; a=10; b=20; c=35; average=s

11、um/3; printf(“the average is %4d”,average);二、 填空:實(shí)現(xiàn)從鍵盤中讀取兩個(gè)浮點(diǎn)型數(shù)據(jù),相乘之后輸出結(jié)果,要求結(jié)果須保留4位小數(shù)。#include“stdio.h”void main() _1_ a,b,c; printf(“please enter two numbers”); scanf(“%f%f”,&a,&b);c=_2_; printf(“c=_3_”,c);三、 編程 1、編寫程序,實(shí)現(xiàn)對兩個(gè)整數(shù)進(jìn)行求和。2、編寫程序,在屏幕上顯示如下圖案。 * * * * * * * *3、菜單制作。請?jiān)谄聊簧巷@示下列菜單信息。 =Main Menu=

12、1-Input 2-Calculate 3-Display Result實(shí)驗(yàn)二:順序結(jié)構(gòu)程序設(shè)計(jì)【目的與要求】 1、掌握三種基本數(shù)據(jù)類型(int、float、char)變量的定義。2、掌握算術(shù)運(yùn)算符、賦值運(yùn)算符及其表達(dá)式的應(yīng)用。3、掌握C語言中的語句及順序結(jié)構(gòu)程序設(shè)計(jì)【實(shí)驗(yàn)內(nèi)容】一、求出含有兩個(gè)實(shí)根(b2-4ac=0)的一元二次方程ax2+bx+c=0的解。1、程序分析:(1)定義變量:a,b,c,x1,x2,delta(2)輸入a,b,c(3)計(jì)算delta= b2-4ac (設(shè)delta=0) x1=(-b+sqrt(delta)/(2*a) x2=(-b-sqrt(delta)/(2*a

13、)2、程序代碼:#include “stdio.h” #include “math.h”void main() float a,b,c,x1,x2;float delta; printf(“Please input the three coef.:n”); scanf(“%f%f%f”,&a,&b,&c); delta=b*b-4*a*c;x1=(-b+sqrt(delta)/(2*a);x2=(-b-sqrt(delta)/(2*a);printf(“The roots are:nx1=%4.2f,x2=%4.2f”,x1,x2);3、具體操作: (1)輸入程序,按Ctrl+F9。若在運(yùn)行后

14、有詞法或語法錯誤,則根據(jù)提示進(jìn)行修改,再進(jìn)行調(diào)試,直到?jīng)]有語法錯誤。 (2)運(yùn)行后,根據(jù)提示輸入方程的三個(gè)系數(shù)值,鍵入回車,查看程序執(zhí)行結(jié)果。注:輸入浮點(diǎn)型系數(shù)方法同實(shí)驗(yàn)一。二、輸出特殊圖案,請?jiān)赾環(huán)境中運(yùn)行,看一看,Very Beautiful!1、程序分析:字符共有256個(gè)。不同字符,圖形不一樣。2、程序代碼:#include stdio.h void 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);prin

15、tf(%c%c%c%c%cn,a,b,a,b,a);printf(%c%c%c%c%cn,b,a,a,a,b); /*運(yùn)行程序,觀察結(jié)果*/【實(shí)驗(yàn)分析與討論】 1、總結(jié)C程序的順序結(jié)構(gòu)程序的編寫及調(diào)試方法。2、分析調(diào)試過程中常見的錯誤提示和解決策略。【DIY】一、改錯#include void main() int a,b,ab,ac,c;,printf(“pleasse enter 3 numbers:”)scanf(“%d,%d,%f”;&a,&b,&c);ab=a+b;ac=a*c;printf(“a+b+c=%dn”,&ab+c);printf(“a*b*c=%dn”,&ac*b);二

16、、請寫出下面程序的運(yùn)行結(jié)果 #include stdio.hvoid main() int a=10; long int b=10; float c=10.0; double d=10.0;printf(%dn%ldn%fn%lfn,a,b,c,d);printf(%dn%ldn%fn%lfn,b,a,d,c);printf(%dn%fn%lf,c,c,c);三、編程1、定義兩個(gè)float類型數(shù)據(jù),求和并將結(jié)果分別以“sum=?”和”?+?=?”形式輸出。 如:float a=3.4,b=9.0; 結(jié)果顯示: (1)sum=12.40 (2)3.4+9.0=12.402、輸入兩個(gè)數(shù)num1和n

17、um2,計(jì)算并輸出它們的和、差、積、商與余數(shù)。3、計(jì)算銀行存款的本息。輸入存款金額 money、存期 year 和年利率 rate,根據(jù)公式計(jì)算存款到期時(shí)的本息合計(jì)sum(稅前),輸出時(shí)保留2位小數(shù)。公式:sum = money ( 1 + rate)year提示:冪函數(shù)ax用庫函數(shù)pow(a,x)來計(jì)算。實(shí)驗(yàn)三:選擇結(jié)構(gòu)程序設(shè)計(jì)【目的與要求】 1、了解分支結(jié)構(gòu)的兩條語句if和switch語法。2、掌握關(guān)系運(yùn)算符和邏輯運(yùn)算符的運(yùn)用3、熟練掌握if語句和switch語句的應(yīng)用【實(shí)驗(yàn)內(nèi)容】一、 給出下列分段函數(shù)的計(jì)算程序代碼。根據(jù)輸入的x的值,計(jì)算出y的值,并輸出。 (x+5)2+3x (x0)

18、y= 0 (x=0)(x-5)2-3x (x0) y=(x+5)*(x+5)+3*x;else if(x=0) y=0; else y=(x-5)*(x-5)-3*x; printf(“x=%.2f y=%.2fn”,x,y);二、判斷方程ax2+bx+c=0有幾個(gè)解,若有,則輸出其解。 1、程序分析:對于方程ax2+bx+c=0的解,存在以下情況:a=0,不是一元二次方程;b2-4ac=0,有兩個(gè)相等的實(shí)根;b2-4ac0,有兩個(gè)不等的實(shí)根;b2-4ac0) x1=(-b+sqrt(delta)/(2*a); x2=(-b-sqrt(delta)/(2*a); else x1=(-b+sqr

19、t(-delta)i)/(2*a); x2=(-b-sqrt(-delta)i)/(2*a);2、程序代碼:#include “stdio.h” #include “math.h”void main() float a,b,c,x1,x2,d; float q,p; printf(“Please input the three coef.:n”); scanf(“%f%f%f”,&a,&b,&c); if (a=0) printf(“Error!n”); else delta=b*b-4*a*c;if (delta=0) printf(“The two equal roots are:x1,x

20、2=%4.2f”,-b/(2*a);else if(delta0) x1=(-b+sqrt(d)/(2*a);x2=(-b-sqrt(d)/(2*a);printf(“The two actual roots are: x1=%4.2f,x2=%4.2f”,x1,x2);else /* sqr(b)-4*a*cb)&(ac)if(bc) printf(“min=%dn”,b);else printf(“min=%dn”,c);if(ab)&(ac) printf(“min=%dn”,a);二、程序填空#includevoid main()int year,month,days;printf(“

21、enter year and month:”);scanf(“%d%d”,&year,&month);switch(_1_) 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(_2_) days=29;else days=_3_;_4_;default:printf(“input error!n”); days=0;if(_5_) printf(“%d,%d is %d days n”

22、,year,month,days);三、編程1、(1)輸入一個(gè)數(shù),判斷其是否為5的倍數(shù)。 (2)輸入一個(gè)數(shù),判斷它的奇偶性。 (3)輸入一個(gè)數(shù),顯示它的絕對值。2、輸入2個(gè)數(shù)(3個(gè)數(shù)),按從小到大的順序顯示到顯示器。3、輸入5個(gè)數(shù),找出其中最大的數(shù),并輸出到顯示器。4、出租車收費(fèi)。某城市普通出租車收費(fèi)標(biāo)準(zhǔn)如下:起步里程3公里,起步費(fèi)用10元;超起步里程后10公里內(nèi),每公里租費(fèi)2元;超過10公里以上的部分加50%的回空補(bǔ)貼費(fèi),即每公里租費(fèi)3元。營運(yùn)過程中,因路阻及乘客要求臨時(shí)停車的,每5分鐘按1公里租費(fèi)計(jì)收。運(yùn)價(jià)計(jì)費(fèi)尾數(shù)四舍五入,保留到元。編寫程序,輸入行駛里程(公里)與等待時(shí)間(分鐘),計(jì)算并

23、輸出乘客應(yīng)支付的車費(fèi)(元)。5、輸入學(xué)生的百分制成績score,按下列定義輸出等級。等級劃分:A(90100)、B(7089)、C(6069)、D(059)實(shí)驗(yàn)四:循環(huán)結(jié)構(gòu)程序設(shè)計(jì)【目的與要求】 1、掌握三種循環(huán)語句在編程中的使用。2、理解break語句和continue語句在循環(huán)結(jié)構(gòu)中的不同作用。3、了解循環(huán)的嵌套調(diào)用過程。4、掌握分支、循環(huán)嵌套在程序設(shè)計(jì)中的應(yīng)用。【實(shí)驗(yàn)內(nèi)容】一、 求下列表達(dá)式的值。 1/3+3/5+5/7+n/(n+2) /n為任意一個(gè)奇數(shù)1、程序分析:從上述表達(dá)式的形式看,當(dāng)n確定下來之后,我們就從1/3開始,按照式子中給出的規(guī)律,一直累加到n/(n+2)2、 程序代碼

24、:#include “stdio.h”void main()float i,n,sum=0.0; printf(“Please input an odd:n”); scanf(“%f”,&n); for(i=1;i=n;i=i+2)sum=sum+i/(i+2); printf(“%.2f”,sum);二、輸入兩個(gè)正整數(shù),求出它們的最大公約數(shù)與最小公倍數(shù)。1、算法分析: 輾轉(zhuǎn)相除法對于兩個(gè)數(shù)m和n,用n去除m,若余數(shù)為0,則n為最大公約數(shù),否則將n作為m,余數(shù)作為n,再用n去除m,直到余數(shù)為0,則n為最大公約數(shù)。2、程序代碼: #include “stdio.h” #include “math

25、.h” void main() int m,n,t,max,min;printf(“Please input two integer numbers:n”);scanf(“%d%d”,&m,&n); min=m*n;while(n!=0) t=m%n;m=n;n=t;printf(“最大公約數(shù)為:%dn”,m);printf(“最小公倍數(shù)為:%dn”,min/m);三、將一張100元錢,換成10元,20元,50元零錢,問有多少種不同的換法(假設(shè)三種零錢每種都可不出現(xiàn))。1、算法分析 運(yùn)用窮舉算法實(shí)現(xiàn):考慮到三種零錢各種可以不出現(xiàn),則各自的張數(shù)范圍如下: 10元-0張 到 10張 20元-0張

26、到 5張 50元-0張 到 2張 并且要考慮到共數(shù)只有一張100元票子。2、程序代碼: #include stdio.h void main() int Tencount,Twecount,Fifcount,i=0; for(Tencount=0;Tencount=10;Tencount+) for(Twecount=0;Twecount=5;Twecount+) for(Fifcount=0;Fifcount=2;Fifcount+) if (Tencount*10+Twecount*20+Fifcount*50=100) printf( No-%d:10%d 20%d 50%dn,+i,T

27、encount,Twecount,Fifcount); 【實(shí)驗(yàn)分析與討論】 1、分析總結(jié)for語句,while語句,do-while語句的用法。2、巧用break語句和continue語句。3、 三種結(jié)構(gòu)的程序嵌套設(shè)計(jì)。4、 多完成小綜合性實(shí)驗(yàn)?!綝IY】一、改錯#include “stdio.h”void main() int t,s,i,n; scanf(“%d”,&n); for(i=1;i=n;i+) t=1/I; s=s+t; printf(“s=%fn”,s);二、程序填空有以下程序: s=1.0; for(k=1;k=n;k+) s=s+1.0(k+1); printf(“%fn

28、”,s);填空完成下述程序,使之與上述程序的功能完全相同。s=0.0;_1_k=0;do s=s+d; _2_ d=1.0/(k*(k+1); while(_3_) printf(“%fn”,s);三、編程1、輸出2100之間的所有質(zhì)數(shù)(兩種方法)。 *2、求1100之間,能被5整除的數(shù)之和。 * * *3、輸出一有規(guī)則的圖形,如右圖。 * * * * * 4、求下列表達(dá)式的值: * * *(1) 1/2-2/3+3/5-+n/(n+1) (n為奇數(shù)) * 1/2-2/3+3/5-n/(n+1) (n為偶數(shù))(2)a+aa+aaa+aaaa+ (如:a=3,n=4 則表達(dá)式為:3+33+333

29、+3333)(3)1!+2!+3!+4!+n!5、Fibonacci數(shù)列的輸出,F(xiàn)ibonacci數(shù)列中的每項(xiàng)數(shù)據(jù)定義的規(guī)則如下: 即:1 1 2 3 5 8 13 21 請輸出前20項(xiàng)數(shù)據(jù),并每行顯示5個(gè)數(shù)。6、(1)輸入一個(gè)整數(shù),輸出它的位數(shù)。如:輸入126,輸出3。 (2)輸入一個(gè)整數(shù)(long),從高位開始逐位分割并輸出(或反序輸出)。例如:輸入123456,逐位輸出:1、2、3、4、5、6。 (3)請輸出所有三位數(shù)中的“水仙花數(shù)”,“水仙花數(shù)”為每位數(shù)字的立方和等于它的本身。如:13+53+33=153 (4)將一個(gè)正整數(shù)分解質(zhì)因數(shù)。如:輸入90,輸出90=2*3*3*5。7、一個(gè)球

30、從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地時(shí),共經(jīng)過多少米?第10次反彈多高?實(shí)驗(yàn)五:數(shù)組的定義及其應(yīng)用【目的與要求】 1、掌握一維數(shù)組與二維數(shù)組的定義。2、掌握一維數(shù)組的應(yīng)用(排序、查找、插入和刪除)3、掌握字符數(shù)組與字符串的區(qū)別與使用。4、掌握運(yùn)用數(shù)組(含菜單)編寫小系統(tǒng)【實(shí)驗(yàn)內(nèi)容】一、定義一個(gè)一維數(shù)組,可以存放10位同學(xué)的成績,對成績進(jìn)行初始化,計(jì)算出總分和平均成績,并輸出到顯示器上。1、 程序分析:定義一個(gè)長度為10的數(shù)組s10,運(yùn)行循環(huán)對其進(jìn)行初始化(輸入),定義另變量sum和ave存放總分和平均分。2、 程序代碼: #include stdio

31、.h void main()float s10,sum=0,ave; int i=0; printf(“Please input 10 studentsscore:n”); while(i10) scanf(“%f”,&si);sum+=si;i+; ave=sum/10; printf(“sum=%.2f ave=%.2fn”,sum,ave); 二、輸入一個(gè)整數(shù),將其插入一含有9個(gè)數(shù)的有序序列中,確保插入后其仍然有序,。1、 算法分析:將待插入的數(shù)與序列中的每個(gè)數(shù)進(jìn)行比較,找到其插入的具體位置i; 將從第i個(gè)數(shù)組元素開始,一直到原數(shù)組中的最后一個(gè)元素,整體往后移,空出一空間來存儲待插入的整

32、數(shù)。 2、程序代碼: #include stdio.h void main() int a10=2,5,7,11,14,19,21,33,67;int i,k,m; printf(“Array :”); for(i=0;i9;i+) printf(“%4d”,ai); printf(“nPlease input the keyword:”); scanf(“%d”,&m); for(i=0;i9;i+) if (m=i;k-) ak=ak-1; /移位,準(zhǔn)備插入新的整數(shù)ai=m; printf(“The new array:”); for(i=0;i10;i+) printf(“%4d”,ai

33、);三、編程實(shí)現(xiàn):將字符串str2連接到字符串str1 后,構(gòu)成新的字符串str1。 1、算法分析: 本程序即實(shí)現(xiàn)字符串處理函數(shù)strcat()的功能。兩字符串str1和str2進(jìn)行連接,要注意的是字符串的結(jié)束標(biāo)志。 2、程序代碼: #include stdio.h #include string.h void main() char str140,str220;int i,j,len1,len2; printf(Enter a string:n); gets(str1); len1=strlen(str1); printf(Enter the other string:n); gets(st

34、r2); len2=strlen(str2); for(i=len1,j=0;jlen2;i+,j+) str1i=str2j;str1i=0; printf(The new string:); puts(str1); 【實(shí)驗(yàn)分析與討論】1、 分析兩種基本排序算法的核心與兩者的不同之處。2、 對有序數(shù)組進(jìn)行插入、刪除、查找操作的實(shí)現(xiàn)。3、 在實(shí)現(xiàn)字符串處理函數(shù)時(shí)的一些注意事宜及其實(shí)現(xiàn)方法。4、 討論二維數(shù)組解決矩陣與行列式?!綝IY】一、改錯:往一個(gè)遞增的數(shù)列中插入一個(gè)數(shù)。#include stdio.hvoid main()int a11,i=0,key,j;printf(please en

35、ter ten numbersn);for(i=0;i10;i+)scanf(“%d”,ai);printf(“please enter a numbern”);scanf(“%f”,&key); for(i=0;iai-1|keyi;j-)aj=aj-1;ai=key;for(i=0;i11;i+)printf(“%d”,&ai);二、程序填空:下面程序的功能是將字符串s中的每個(gè)字符按升序的規(guī)則插到數(shù)組a中,字符串a(chǎn)已排好序。#include void main() char a20=“cehiknqtw”; char s10=“fbla”; int i,k,j; for(k=0;sk!=0

36、;k+) j=0; while(sk=ai&aj!=0) j+; for(_1_) _2_;puts(_3_);三、編程1、 輸入10位同學(xué)的成績,輸出其中的最高分maxscore和最低分minscore。2、 (1)輸入一行文字(含空格),統(tǒng)計(jì)其中的大寫字母、小寫字母、空格、數(shù)字以及其他字符的個(gè)數(shù)。(2)編程判斷輸入的一串字符是否為“回文”。所謂“回文”是指順讀和倒讀都一樣的字符串。如:level.(3)實(shí)現(xiàn)兩個(gè)字符串拷貝(strcopy(str1,str2)的功能。3、 運(yùn)行折半查找法,在一個(gè)有序序列中查找某一特定的數(shù)。4、 判斷一個(gè)(33)方陣是不是對稱矩陣。實(shí)驗(yàn)六:函數(shù)的定義及其應(yīng)用【

37、目的與要求】 1、掌握C中函數(shù)的定義、調(diào)用及設(shè)計(jì)。2、掌握函數(shù)嵌套調(diào)用、遞歸調(diào)用的設(shè)計(jì)。3、掌握變量、函數(shù)的作用域及存儲類?!緦?shí)驗(yàn)內(nèi)容】一、設(shè)計(jì)一個(gè)子函數(shù)對n個(gè)整數(shù)進(jìn)行排序,由主函數(shù)從鍵盤接收若干個(gè)數(shù),調(diào)用子函數(shù)進(jìn)行排序,并在主函數(shù)中進(jìn)行輸出顯示。1、算法分析: 子函數(shù)的設(shè)計(jì) 以兩個(gè)參數(shù)來實(shí)現(xiàn),一個(gè)是接收主函數(shù)傳來的數(shù)組首地址,另一個(gè)是持排序的整數(shù)個(gè)數(shù),如fun(int a,int n); 主函數(shù)的實(shí)現(xiàn) 定義一整型數(shù)組,從鍵盤上接收若干個(gè)整數(shù),調(diào)用子函數(shù)fun,再將最后的結(jié)果輸出。2、程序代碼:#include stdio.hvoid fun(int a,int n) / 選擇排序算法 int

38、 i,j,t; for(i=0;in-1;i+) for(j=i+1;jaj) t=ai;ai=aj;aj=t;void main() int a10,i; for(i=0;i10;i+) scanf(%d,&ai); printf(輸入的數(shù)值序列為:); for(i=0;i10;i+) printf(%4d,ai); printf(n); fun(a,10); printf(輸入的數(shù)值序列為:); for(i=0;i10;i+) printf(%4d,ai); 二、輸入任意兩數(shù)m,n的值,輸出下列表達(dá)式的值。S= 1、算法分析 編寫一函數(shù)fac(n), 返回n!的值。 編寫主函數(shù),從鍵盤輸入

39、m,n的值,調(diào)用上述fac()函數(shù),計(jì)算表達(dá)式的值,并將其輸出。 2、程序代碼 #include “stdio.h” long fac(int n) if (n=1) return 1; else return n*fac(n-1);void main()int m,n,t; float s;printf(“please input 2 integer numbers:”);scanf(“%d%d”,&m,&n);if(mn)return 0;else if(n=k&k=0)return 1;else return A(n-1,k)+A(n-1,k-1);void main()int n,k;

40、int A(int n,int k);printf(please enter 2 numbers!);scanf(%d%d,&n,&k);printf(%d,A);二、程序填空:用遞歸實(shí)現(xiàn)一個(gè)正整數(shù)的倒序輸出。如輸入12345,則輸出54321.#include stdio.hr(int m) printf(%d,_1_);m=_2_;if(_3_) _4_;voidmain() int n;printf(input:);scanf(%d,_5_);r(n);printf(n);三、編程1、 若正整數(shù)A恰好出現(xiàn)在其平方數(shù)的右側(cè),則稱A為一個(gè)同構(gòu)數(shù)。如:5,6,76。求100以內(nèi)的所有同構(gòu)數(shù)。要

41、求:(1)編寫一子函數(shù)int fun(int n),判斷給定正整數(shù)n是不是同構(gòu)數(shù),若是,返回1,否則,返回0。(2)編寫主函數(shù),調(diào)用函數(shù)fun(),尋找并輸出100以內(nèi)的所有同構(gòu)數(shù)。(3)在輸出同構(gòu)數(shù)的同時(shí),要輸出其平方的值。2、 運(yùn)用遞歸,求任一個(gè)字符串的長度。實(shí)驗(yàn)七:指針的定義及其應(yīng)用【目的與要求】 1、了解指針的定義與應(yīng)用。2、掌握使用指針變量的程序設(shè)計(jì)。3、 了解使用函數(shù)指針的程序設(shè)計(jì)。4、 了解使用指針數(shù)組的程序設(shè)計(jì)。【實(shí)驗(yàn)內(nèi)容】一、先輸入一個(gè)正整數(shù)n,再輸入任意n個(gè)整數(shù),計(jì)算并輸出這n個(gè)整數(shù)的和。要求使用動態(tài)內(nèi)存分配方法為這n個(gè)整數(shù)分配空間。 程序代碼: #include “std

42、io.h” #include “stdlib.h” void main() int n,sum=0,i,*p; printf(“Enter n:”); scanf(“%d”,&n); if(p=(int *)calloc(n,sizeof(int)=NULL) printf(“Not able to allocate memory.n”); exit(1); printf(“Enter %d integers:n”,n); for(i=0;i10;i+) scanf(“%d”,p+i); sum+=*(p+i); printf(“sum=%dn”,sum); free(p);二、設(shè)計(jì)一程序,將

43、兩個(gè)變量的值進(jìn)行交換。1、 算法分析:(1)編寫一個(gè)函數(shù)swap(int *p,int *q),交換兩個(gè)參數(shù)指針?biāo)傅臄?shù)據(jù)。(2)編寫主函數(shù),調(diào)用函數(shù)swap,將兩個(gè)變量的值進(jìn)行交換。2、 程序代碼:#include “stdio.h”void swap(int *p,int *q);void main()int a,b;printf(“Enter two integers:n”);scanf(“%d%d”,&a,&b);printf(“Before Swap:a=%d,b=%d”,a,b);swap(&a,&b);printf(“After Swap:a=%d,b=%d”,a,b);void swap(int *p,int *q)int t;t=*p;*p=*q;*q=t;二、編程實(shí)現(xiàn):運(yùn)用指針將字符串str2連接

溫馨提示

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

最新文檔

評論

0/150

提交評論