C語言上機(jī)實(shí)驗(yàn)研究報(bào)告_第1頁
C語言上機(jī)實(shí)驗(yàn)研究報(bào)告_第2頁
C語言上機(jī)實(shí)驗(yàn)研究報(bào)告_第3頁
C語言上機(jī)實(shí)驗(yàn)研究報(bào)告_第4頁
C語言上機(jī)實(shí)驗(yàn)研究報(bào)告_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、青島理工大學(xué)課程實(shí)驗(yàn)報(bào)告課程名稱計(jì)算機(jī)程序設(shè)計(jì)(C)班級(jí)軟件111實(shí)驗(yàn)日期2011.04.21姓名趙業(yè)東學(xué)號(hào)201107209實(shí)驗(yàn)成績實(shí)驗(yàn)名稱實(shí)驗(yàn)一 C程序的運(yùn)行環(huán)境和運(yùn)行 C程序的方法實(shí)驗(yàn)?zāi)康募耙?.熟悉 Visual C+6.0 環(huán)境。2了解建立控制臺(tái)應(yīng)用程序的基本步驟。3. 初步了解Visual C+6.0的環(huán)境設(shè)置。4. 初步學(xué)會(huì)簡單的程序調(diào)試方法。5. 學(xué)會(huì)編寫簡單的C程序。6. 初步熟悉C語言操輸入seanf函數(shù)、輸出printf函數(shù)的使用。7. 掌握C語言基本數(shù)據(jù)類型,熟悉變量的疋義及變量的初始化和賦 值操作。8. 掌握不同的類型數(shù)據(jù)之間賦值的規(guī)律。9. 掌握C語言的算術(shù)運(yùn)算符

2、的使用以及算術(shù)表達(dá)式的使用;掌握自 加自減運(yùn)算符的特點(diǎn)及使用。實(shí) 驗(yàn) 環(huán) 境Visual 6.0+Windows 7實(shí) 驗(yàn) 內(nèi) 容i按照上述步驟,創(chuàng)建一個(gè)基于控制臺(tái)的應(yīng)用程序,該程序工程中只包含一 個(gè)源程序文件。功能為求兩個(gè)整數(shù)的和,數(shù)據(jù)從鍵盤輸入。2創(chuàng)建一個(gè)基于控制臺(tái)的應(yīng)用程序,求一元二次方程的根。使得當(dāng)輸入三個(gè)實(shí)數(shù)a,b,e (滿足b*b-4*a*c0 ),能夠求出方程 a*x*x+b*x+c=0的兩個(gè)實(shí)根, 并顯示在屏幕上。分析提示:通過鍵盤輸入方程系數(shù) a,b,c的值,而后根據(jù) 求根公式計(jì)算并輸出它的兩個(gè)根。算 法 描 述 及實(shí)驗(yàn)一1、先定義兩個(gè)變量 a,b。2、鍵入a和b。3、輸出兩

3、個(gè)數(shù)的和。 實(shí)驗(yàn)二1、定義并輸入a b e。2、判斷d=bA2-4ae的大小。3、如果小于零則無解,等于零 有一個(gè)解,x1=(-b)/(2*a)。4、大于 零有兩 個(gè)解。實(shí) 驗(yàn) 步 驟x1=(-b+sqrt(d)/(2*a)。 x2=(-b-sqrt(d)/(2*a)。5、輸出結(jié)果。調(diào) 試 過 程 及 實(shí) 驗(yàn) 結(jié) 果14815648+156=204pH住工s jmy七o contjjiu已* b c :1 5 6 兩個(gè)解:xl=-2,x2=3Press any key to cont inuea b c :4 1 1無解Press any key to continuea h c :1 2 1

4、一個(gè)解二TPress any Jw# to cont inue掌握了掌握C語言基本數(shù)據(jù)類型,變量的定義及變量的初始化和賦值 操作,不同的類型數(shù)據(jù)之間賦值的規(guī)律。了解了 C語言的算術(shù)運(yùn)算符的使用以及算術(shù)表達(dá)式的使用, 自加自減 運(yùn)算符的特點(diǎn)及使用。實(shí)驗(yàn)一 1#i ncludevoid main()int a,b,soscanf(%d%d,&a,&b)。 printf(s=%dn,a+b)。實(shí)驗(yàn)一 2#i nclude#in cludevoid main()double a,b,c,d,x1,x2 printf(a b c :)。sca nf(%lf%lf%lf,&a,&b,&c)。 d=b*b-

5、4*a*c。if (d0) printf(無解 n)。else if (d=0)x1=(-b)/(2*a)。printf( 一個(gè)解:x=%gn,x1)。elsex1= (-b+sqrt(d)/(2*a)。 x2=(-b-sqrt(d)/(2*a)。printf(兩個(gè)解:x 1= %g,x2=%gn,x1,x2)。 青島理工大學(xué)課程實(shí)驗(yàn)報(bào)告課程名 稱計(jì)算機(jī)程序設(shè)計(jì)(C)班級(jí)軟件111實(shí)驗(yàn)日期2012428姓名趙業(yè)東學(xué)號(hào)201107209實(shí)驗(yàn)成績實(shí)驗(yàn)名 稱實(shí)驗(yàn)二選擇結(jié)構(gòu)程序設(shè)計(jì)實(shí)驗(yàn)?zāi)康募耙?掌握賦值語句的使用方法。2.掌握各種類型數(shù)據(jù)的輸入輸出方法,能正確使用各種格式轉(zhuǎn)換符。3能正確使用關(guān)系運(yùn)算

6、符及表達(dá)式、邏輯運(yùn)算符及表達(dá)式。4. 熟練掌握if語句,學(xué)會(huì)使用if-else語句設(shè)計(jì)雙分支和多分支結(jié)構(gòu) 程序。5. 熟練掌握switch語句的特點(diǎn),學(xué)會(huì)使用switch語句設(shè)計(jì)多分支結(jié) 構(gòu)程序。實(shí) 驗(yàn) 環(huán) 境Visual 6.0+Win dows 7實(shí) 驗(yàn) 內(nèi) 容3. 編寫程序,根據(jù)輸入的學(xué)生成績,給出相應(yīng)的等級(jí)。90分以上的 等級(jí)為A,60分以下的等級(jí)為E,其余每10分為一個(gè)等級(jí)。要求分 別用if語句和switch語句實(shí)現(xiàn)。4. 使用switch語句編寫簡單的四則運(yùn)算程序。算 法 描 述 及 實(shí) 驗(yàn) 步 驟實(shí)驗(yàn)3用if語句時(shí):先輸入學(xué)生成績,判斷等級(jí),然后直接輸出等 級(jí)代號(hào) A,B,C,D

7、,E。用switch語句時(shí):先輸入學(xué)生成績,除以十,取整。根據(jù)數(shù) 值6到9判斷等級(jí)。然后輸出等級(jí)代號(hào) A,B,C,D,E。實(shí)驗(yàn)4先疋義子符變量c和數(shù)值變量a,b。然后判斷子符變量為何種 運(yùn)算符號(hào)。最后輸出相應(yīng)結(jié)果。調(diào) 試 過 程 及 實(shí) 驗(yàn) 結(jié) 果3ress anu keu to continue1/5仁800000*ress Qfiy key to continue掌握了賦值語句的使用方法,各種類型數(shù)據(jù)的輸入輸出方法,能 正確使用各種格式轉(zhuǎn)換符、關(guān)系運(yùn)算符及表達(dá)式、邏輯運(yùn)算符及表達(dá) 式。掌握了 if語句,學(xué)會(huì)使用if-else 語句設(shè)計(jì)雙分支和多分支結(jié) 構(gòu)程序;掌握了 switch語句的特點(diǎn)

8、,學(xué)會(huì)使用switch語句設(shè)計(jì)多分 支結(jié)構(gòu)程序 實(shí)驗(yàn)二3 用if語句:#in cludevoid main() int a。printf(請(qǐng)輸入學(xué)生成績:n)。 scanf(%d,&a)。if (a90)prin tf(該學(xué)生成績等級(jí)是 An) else if (a80)prin tf(該學(xué)生成績等級(jí)是 Bn) else if (a70)prin tf(該學(xué)生成績等級(jí)是Cn) else if (a60)prin tf(該學(xué)生成績等級(jí)是 Dn) elseprintf(該學(xué)生成績等級(jí)是En) 用switch語句:#in clude void main()int a,m。printf(請(qǐng)輸入學(xué)生成績

9、:n)。 scan f(%d,&a)。m=a/10。 switch(m)case 9:printf(該學(xué)生的成績等級(jí)是:An) case 8:printf(該學(xué)生的成績等級(jí)是:Bn) case 7:printf(該學(xué)生的成績等級(jí)是:Cn) case 6:printf(該學(xué)生的成績等級(jí)是:Dn) default:printf(該學(xué)生的成績等級(jí)是:En) 實(shí)驗(yàn)二 4#i ncludevoid main()float a,b。char coscanf(%f%c%f,&a,&c,&b)。 switch(c)case +:printf(%fn,a+b)。break。 case -:printf(%fn,

10、a-b)。break。case *:printf(%fn,a*b)。break。 case /:printf(%fn,a/b)。break。青島理工大學(xué)課程實(shí)驗(yàn)報(bào)告課程 名稱計(jì)算機(jī)程序設(shè)計(jì)(C)班級(jí)軟件111實(shí)驗(yàn)日 期2012-5-2姓名趙業(yè)東學(xué)號(hào)201107209實(shí)驗(yàn)成 績實(shí)驗(yàn) 名稱實(shí)驗(yàn)三循環(huán)結(jié)構(gòu)程序設(shè)計(jì)實(shí)驗(yàn)?zāi)康募耙?熟練掌握while、do-while、for語句的特點(diǎn),學(xué)會(huì)設(shè)計(jì)循環(huán)結(jié)構(gòu)程序。2. 掌握break語句以及continue語句的特點(diǎn)及使用范圍。3. 學(xué)會(huì)編寫循環(huán)嵌套程序。3. 結(jié)合程序掌握一些簡單的算法。4. 進(jìn)一步學(xué)習(xí)調(diào)試程序。實(shí) 驗(yàn) 環(huán) 境Visual 6.0+Win

11、dows 7實(shí) 驗(yàn) 內(nèi) 容4. 編程練習(xí)。求xx2xn的部分和。直到最后一項(xiàng)的值小于1.0e-4oe 一1 + x+. +.2!n! *提示:第 n 項(xiàng) un=xn/n!,第 n+1 項(xiàng) un+i= xn+1/(n+1)!及 un+1 = un(x/( n+1)5. 編程練習(xí)。有1、2、3、4四個(gè)數(shù)字,能組成多少個(gè)互不相同且無重復(fù)數(shù)字的三位數(shù)?分 別是多少?算法描述及實(shí)驗(yàn)步驟頭驗(yàn)四1、調(diào)用函數(shù)。2、疋義x s i j。輸入x。3、直到n大于10000。4、 i=i*(x/(j+1)。s=s+i。5、輸出 s實(shí)驗(yàn)五 1、定義 i j k fre=0。2、利用三重 for 語句。for(i=1。i

12、=4。i+)for(j=1。j=4 o j+) ; for(k=1。k=4。k+)。3、if(i!=k&i!=j&k!=j),輸出 i*100+j*10+k。4、最后輸出(總數(shù)為:%dn,fre)調(diào) 試 過 程 及3、4*=8103-083910Ppess anyto (:on t in ue、實(shí)驗(yàn)結(jié)果總 結(jié) 附錄12312413213414214321321423123424124331231432132434L3424124134214234312肚數(shù)為創(chuàng)IFress any key to continue(對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析,問題回答,實(shí)驗(yàn)心得體會(huì)及改進(jìn)意見)實(shí)驗(yàn)三3#in clude#

13、in cludevoid mai n()int x odouble s,i,joscanf(%d,&x)。s=1,j=O。for(i=1 o i=pow(10,-4)。j+)i=i*(x/(j+1) os=s+ioprintf(s=%fn,s) o實(shí)驗(yàn)三4#in clude void mai n() int i,j,k,fre=0 ofor(i=1 o i=4 o i+)for(j=1 o j=4 o j+) for(k=1 o k=4 o k+) if(i!=k&i!=j&k!=j)printf(%5d,i*100+j*10+k) o fre=fre+1 oprintf(n) oprintf

14、(總數(shù)為:%dn,fre) o青島理工大學(xué)課程實(shí)驗(yàn)報(bào)告課程 名稱計(jì)算機(jī)程序設(shè)計(jì)(C)班級(jí)軟件111實(shí)驗(yàn)日 期2012-5-2姓名趙業(yè)東學(xué)號(hào)201107209實(shí)驗(yàn)成 績實(shí)驗(yàn) 名稱實(shí)驗(yàn)四數(shù)組程序設(shè)計(jì)實(shí) 驗(yàn) 目 的 及 要 求1掌握一維數(shù)組、二維數(shù)組的定義、引用及其存儲(chǔ)方式。 2掌握字符數(shù)組、字符串以及字符串?dāng)?shù)組的含義及區(qū)別。 3掌握常用字符函數(shù)及字符串函數(shù)的使用。4掌握常用數(shù)組的排序、查找等算法。實(shí) 驗(yàn) 環(huán) 境Visual C+6.0Windows XP實(shí) 驗(yàn) 內(nèi) 容2編寫程序,定義一個(gè)含有30個(gè)兀素的int類型數(shù)組依次給數(shù)組兀素賦奇數(shù)1、3、5、7;然后按每行十個(gè)數(shù)順序輸出,最后再按每行十個(gè)數(shù)逆

15、序輸出。3.已知數(shù)組中的值在 0-9的范圍內(nèi),統(tǒng)計(jì)每個(gè)整數(shù)的個(gè)數(shù)。算法描述及實(shí)驗(yàn)步驟實(shí)驗(yàn)21、定義一個(gè)一維數(shù)組a30,i,j=1。2、利用for循環(huán)輸出,ai+1=ai+2。printf(%6d,ai)。3、輸出數(shù)組,定義初始值1或者59。確定順、逆序。實(shí)驗(yàn)31、定義一個(gè)一維隨機(jī)數(shù)組含 20個(gè)數(shù)。2、輸出該一維數(shù)組。3、利用 for 循環(huán) int m,n,k。for(m=0。m=9。m+)for(n=0。n20。n+) if(m=an)。4、輸出每個(gè)數(shù)各有幾個(gè)。調(diào) 試 過 程 及 實(shí) 驗(yàn) 結(jié) 果2、1321234143595739371917Press any key i57911252729

16、31454749515E53514?353331291513119to continueH1315171933353739S3555759474543412?25232175314551711S27G7個(gè)個(gè)個(gè)個(gè)*個(gè)個(gè)個(gè)個(gè)有有有有有有有有有cont inue掌握常用字符函數(shù)及字符串函數(shù)的使用,掌握常用數(shù)組的排 序、查找等算法。實(shí)驗(yàn)2附#i nclude錄void mai n()int a30,i,j=1。for(i=1 o i31 o i+) a1=1 o ai+1=ai+2。printf(%6d,ai)。 if(i%10=0)printf(n) oprintf(n)

17、o for(i=1 o i31 o i+) a1=59 o ai+1=ai-2。 printf(%6d,ai) o if(i%10=0)printf(n) o實(shí)驗(yàn)4#include #include void main()int i,a20。for(i=Oo i20o i+)ai=rand()%10 o printf(%3d,ai)。printf(n) 0 int m,n,ko for(m=0 o m=9o m+) k=0ofor(n=Oo n20o n+) if(m=an) k+ o printf(%d 有(1 個(gè)n,m,k) 0 青島理工大學(xué)課程實(shí)驗(yàn)報(bào)告課程名稱計(jì)算機(jī)程序設(shè)計(jì)(C)班級(jí)軟件

18、111實(shí)驗(yàn)日期2012-5-7姓名趙業(yè)東學(xué)號(hào)201107209實(shí)驗(yàn)成績實(shí)驗(yàn)五函數(shù)實(shí)驗(yàn)名稱1 掌握函數(shù)定義的各個(gè)要素。如函數(shù)返回值的類型、形式參數(shù)與實(shí)際參數(shù)等。實(shí)2掌握變量的作用域和生存期的概念。驗(yàn)3掌握局部變量與全局變量的區(qū)別、靜態(tài)局部變量和局部變量的區(qū)別、靜態(tài)目全局變量和全局變量的區(qū)別;理解外部變量和外部函數(shù)的概念。的4理解數(shù)組作為函數(shù)的參數(shù)的含義。及5 理解函數(shù)的嵌套調(diào)用。要 求6掌握函數(shù)的遞歸調(diào)用。實(shí) 驗(yàn)Visual C+6.0window7環(huán)境3.求100200之間的素?cái)?shù)。要求:每行10個(gè)數(shù)輸出;定義子函數(shù)isprime ,函數(shù)原型為 int isprime( int n)。實(shí)3223

19、24.設(shè) f(x)=(2x 3+3x2-4x+1(10x 2+3),q(x)=3f(x) 3+2f(x) 2+f(x),編程實(shí)現(xiàn)輸入 x 的值,驗(yàn)計(jì)算輸出q(x)的值,要求有q(x)和f(x)的定義。內(nèi)5 求菲波那契數(shù)列1, 1,2, 3,5, 8, 13, 21,34的前20項(xiàng)。容要求:使用遞歸;每行輸出5個(gè)數(shù)。算實(shí)驗(yàn) 31、定義函數(shù) isprime(int n)。2、當(dāng)(n%i=0)時(shí),返回0.否則法返回1。3、定義main函數(shù)。確定范圍100200. 4當(dāng)isprime函數(shù)成描立,每五個(gè)一行輸出。述實(shí)驗(yàn)41、定義函數(shù)及f= (2*pow(x,3)+3*pow(x,2)-4*x+1)/(1

20、0*pow(x,2)+3)。實(shí)q=3*pow(f(x),3)+2*pow(f(x),2)+f(x)。2、定義 main 函數(shù)。3、輸出 q驗(yàn)函數(shù)。步實(shí)驗(yàn)51、定義fib函數(shù)。前兩項(xiàng)為1.2、利用遞歸函。驟Fib(x)=fib(x-1)+fib(x-2)。3、每五項(xiàng)一行輸出。調(diào)101103107109113127131137139149試HM 151157163167173179181191193197過程3 any Key tncontinue及3、實(shí)驗(yàn)結(jié)果 總 結(jié) 附錄 L65050ress 點(diǎn)門朋 keV to con tin ue1123581321345569144233377610W

21、871557258441816765Pressanyto continue1, 掌握了函數(shù)定義的各個(gè)要素。2, 如函數(shù)返回值的類型、形式參數(shù)與實(shí)際參數(shù)等3, 需要進(jìn)一步掌握函數(shù)。實(shí)驗(yàn)3#in cludeint isprime(i nt n)int i。for(i=2。 in。 i+)if(n %i=0) return 0。 return 1。mai n()int n,m=0。for(n=100。*=200。n+)if(isprime( n)printf(%5d,n)。 m+。if(m%10=0) printf(n)。printf(n)。實(shí)驗(yàn)4#in clude#in cludedouble f

22、(float x)double c。c=(2*pow(x,3)+3*pow(x,2)-4*x+1)/(10*pow(x,2)+3)。 return c。double q(float x)double c。c=3*pow(f(x),3)+2*pow(f(x),2)+f(x)。 return c。mai n()float x。double y。scanf(%f,&x)。y=q(x)。printf(%lfn,y)。實(shí)驗(yàn)5#i ncludeint fib(i nt x)if(x=1|x=2) return 1。elsereturn fib(x-1)+fib(x-2)。mai n()int n ,s。f

23、or(n=1。 n =20。 n+)s=fib(n)。printf(%-5d,s)。if(n %5=0)printf(n)。printf(%n)。青島理工大學(xué)課程實(shí)驗(yàn)報(bào)告課程名稱計(jì)算機(jī)程序設(shè)計(jì)(C)班級(jí)軟件111實(shí)驗(yàn)日期2012-5-16姓名趙業(yè)東學(xué)號(hào)201107209實(shí)驗(yàn)成績實(shí)驗(yàn)名稱實(shí)驗(yàn)六指針實(shí)驗(yàn)?zāi)康募耙?理解指針的定義,學(xué)會(huì)指針變量的初始化以及指針可以參與的運(yùn) 算。2. 掌握指針和一維數(shù)組的關(guān)系。3. 理解指針和二維數(shù)組的關(guān)系、理解行指針(或數(shù)組指針)的概念。 4理解指針數(shù)組和數(shù)組指針的區(qū)別。5理解指針和函數(shù)的關(guān)系以及指針函數(shù)和函數(shù)指針的含義。6.了解指針的指針(即二級(jí)指針)。實(shí) 驗(yàn) 環(huán)

24、 境Visual C+6.0window7實(shí) 驗(yàn) 內(nèi) 容6編寫程序。讀入三個(gè)浮點(diǎn)數(shù),將整數(shù)部分和小數(shù)部分分別輸出。 要求使用指針作形參。7編寫一個(gè)函數(shù),返回?cái)?shù)組元素中最大值的地址,并在主函數(shù)中輸 出該兀素。算法描述及實(shí) 驗(yàn) 步 驟實(shí)驗(yàn)6 1、定義函數(shù),指針做形參。2、定義a為整數(shù)部分,*p-a既 是小數(shù)部分。然后輸出。3、主函數(shù)中,鍵入三個(gè)浮點(diǎn)型數(shù)。并使用 fu函數(shù)。實(shí)驗(yàn)71、定義dizhi函數(shù),指針做形參。返回地址。2、定義主函數(shù), 以及一個(gè)數(shù)組。3、調(diào)用dizhi函數(shù),輸出數(shù)組和最大值。調(diào)試過程及實(shí)驗(yàn)結(jié)果6、1 .5 2.3 6-7產(chǎn)數(shù)第分是1冷數(shù)部分是0-500000 整數(shù)帝分是2八數(shù)部

25、分是0 - 300000 整數(shù)帝分是石 小數(shù)帝分是D - 700000Ppcsg any key to contII7.L7409最大數(shù)是;9地址是1244912Press an屮 kev to488:cont24總1運(yùn)用指針時(shí)應(yīng)時(shí)刻注意指針指向的改變,避免邏輯上的錯(cuò)誤,加大 編程時(shí)的難度。2.通過指針變量可以提高程序質(zhì)量,編寫程序方便靈結(jié)活,可以實(shí)現(xiàn)多個(gè)值的返回附 錄實(shí)驗(yàn)6#i ncludevoid fu(float *p)int a。a=(int)*p。printf(整數(shù)部分是%d 小數(shù)部分是%fn,a,*p-a)。mai n()float a3。int i。for(i=0 o i3。i+

26、)scanf(%f,&ai)。fu(&ai) o實(shí)驗(yàn)7#i ncludeint dizhi (int *p)int Sop=&s。printf(地址是:%dn,p)。return p。mai n()int i,s,a10,*p。for(i=0。i10。i+)ai=rand()%10。printf(%d,ai)。printf(n)。s=a0 ofor(i=0 o i10o i+)if(sai+1)s=ai。printf(最大數(shù)是;%dn,s)odizhi(&s)。青島理工大學(xué)課程實(shí)驗(yàn)報(bào)告課程名稱計(jì)算機(jī)程序設(shè)計(jì)(C)班級(jí)軟件111實(shí)驗(yàn)日期2012-5-16姓名趙業(yè)東學(xué)號(hào)201107209實(shí)驗(yàn)成績實(shí)

27、驗(yàn)名稱指針實(shí)驗(yàn)?zāi)康募耙?理解指針的定義,學(xué)會(huì)指針變量的初始化以及指針可以參與的運(yùn) 算。2. 掌握指針和一維數(shù)組的關(guān)系。3. 理解指針和二維數(shù)組的關(guān)系、理解行指針(或數(shù)組指針)的概念。 4理解指針數(shù)組和數(shù)組指針的區(qū)別。5理解指針和函數(shù)的關(guān)系以及指針函數(shù)和函數(shù)指針的含義。6.了解指針的指針(即二級(jí)指針)。實(shí) 驗(yàn) 環(huán) 境Visual C+6.0window7實(shí) 驗(yàn) 內(nèi) 容6編寫程序。讀入三個(gè)浮點(diǎn)數(shù),將整數(shù)部分和小數(shù)部分分別輸出。 要求使用指針作形參。7編寫一個(gè)函數(shù),返回?cái)?shù)組元素中最大值的地址,并在主函數(shù)中輸 出該兀素。算法描述及實(shí) 驗(yàn) 步 驟實(shí)驗(yàn)6 1、定義函數(shù),指針做形參。2、定義a為整數(shù)部分,

28、*p-a既 是小數(shù)部分。然后輸出。3、主函數(shù)中,鍵入三個(gè)浮點(diǎn)型數(shù)。并使用 fu函數(shù)。實(shí)驗(yàn)71、定義dizhi函數(shù),指針做形參。返回地址。2、定義主函數(shù), 以及一個(gè)數(shù)組。3、調(diào)用dizhi函數(shù),輸出數(shù)組和最大值。調(diào)試過程及實(shí)驗(yàn)結(jié)果6、1 .5 2.3 6-7產(chǎn)數(shù)第分是1冷數(shù)部分是0-500000 整數(shù)帝分是2八數(shù)部分是0 - 300000 整數(shù)帝分是石 小數(shù)帝分是D - 700000Ppcsg any key to contII7.L7409最大數(shù)是;9地址是1244912Press an屮 kev to488:cont24總1運(yùn)用指針時(shí)應(yīng)時(shí)刻注意指針指向的改變,避免邏輯上的錯(cuò)誤,加大 編程時(shí)的

29、難度。2.通過指針變量可以提高程序質(zhì)量,編寫程序方便靈結(jié)活,可以實(shí)現(xiàn)多個(gè)值的返回附 錄實(shí)驗(yàn)6#i ncludevoid fu(float *p) int a。 a=(int)*p。 printf(整數(shù)部分是%d 小數(shù)部分是%fn,a,*p-a)。mai n()float a3。int i。for(i=0 o i3。i+)scanf(%f,&ai)。fu(&ai) o實(shí)驗(yàn)7#i ncludeint dizhi (int *p)int Sop=&s。printf(地址是:%dn,p)。return p。mai n()int i,s,a10,*p。for(i=0。i10。i+)ai=rand()%1

30、0。printf(%d,ai)。printf(n)。s=a0 ofor(i=0 o i10o i+)if(sai+1)s=ai。printf(最大數(shù)是;%dn,s)o dizhi(&s)。青島理工大學(xué)課程實(shí)驗(yàn)報(bào)告課程名稱計(jì)算機(jī)程序設(shè)計(jì)(C)班級(jí)軟件111實(shí)驗(yàn)日期2011-5-30姓名趙業(yè)東學(xué)號(hào)201107209實(shí)驗(yàn)成績實(shí)驗(yàn)名稱實(shí)驗(yàn)七鏈表實(shí)驗(yàn)?zāi)康募耙? 掌握結(jié)構(gòu)體類型變量的定義和使用。2 掌握結(jié)構(gòu)體類型數(shù)組的概念和應(yīng)用。3掌握鏈表的概念,初步學(xué)會(huì)對(duì)鏈表進(jìn)行操作。實(shí) 驗(yàn) 環(huán) 境VC+6.0實(shí) 驗(yàn) 內(nèi) 容1 編寫程序。有5個(gè)學(xué)生,每個(gè)學(xué)生的數(shù)據(jù)包括學(xué)號(hào)、姓名、3門課的成績,從鍵盤輸入5個(gè)學(xué)生數(shù)據(jù),

31、要求輸出 3門課總平均成績,以及最高分的學(xué)生的 數(shù)據(jù)(包括學(xué)號(hào)、姓名、3門課的成績、平均分?jǐn)?shù))。2.建立一個(gè)學(xué)生鏈表,每個(gè)結(jié)點(diǎn)包括:學(xué)號(hào)、姓名、性別、年齡。輸入一個(gè) 年齡,如果鏈表中的結(jié)點(diǎn)所包含的年齡等于此年齡,則將此結(jié)點(diǎn)刪去。算第一題定義一個(gè)結(jié)構(gòu)體變量,包含學(xué)號(hào)、姓名、3門課的成績 定義一個(gè)可以輸入學(xué)生信息的函數(shù)。法 描 述 及 實(shí) 驗(yàn) 步 驟定義一個(gè)函數(shù)可以求平均分并返回。輸出3門課總平均成績,以及最高分的學(xué)生的數(shù)據(jù)(包括學(xué)號(hào)、姓名、3門課的成績、平均分?jǐn)?shù))。第二題定義一個(gè)結(jié)構(gòu)體變量,包括 學(xué)號(hào)、姓名、性別、年齡和指向下一個(gè)節(jié)點(diǎn)的 指針。創(chuàng)建鏈表,輸入學(xué)生信息。定義一個(gè)可以輸出學(xué)生信息函數(shù)

32、。調(diào) 試 過 程 及 實(shí) 驗(yàn) 結(jié) 果$學(xué)號(hào).姓名、分開輸入三門分?jǐn)?shù)88101 napy 86 63俞入第2個(gè)學(xué)生信息:M2 hob 7? 54 99俞入第M個(gè)學(xué)生信息=103 alice 99 98 97肅入第4個(gè)學(xué)牛信息,104 fi*ink E5 65前入第個(gè)學(xué)生彳105 ellor 86 588自:8 677.60階數(shù)最高的學(xué)生信息如下=3alice 99.0098.0097_009S-33Press Anv key to cont inue翻自211?示做表刪除相同年齡詡-退出操作2xiaohin第2個(gè)學(xué)生信息;3dapeng一創(chuàng)建錯(cuò)表-顯示鏈表詔-刪除相同年齡.0-退岀操作學(xué)號(hào)、姓名

33、氣性別氣年齡001 adonf m 20 輸入第2個(gè)學(xué)生信息002 xiaahin w 21輸入第3個(gè)學(xué)生信息003 dapengf m 19-創(chuàng)建錯(cuò)表顯示鏈表刪除相同年齡上-退出操作3輸入要?jiǎng)h除的年齡20定義一個(gè)可以刪除節(jié)點(diǎn)的函數(shù), 當(dāng)輸入一個(gè)年齡時(shí),如果鏈表中的結(jié)點(diǎn)所 包含的年齡等于此年齡,則將此結(jié)點(diǎn)刪去。總結(jié)熟練地掌握共用體;在寫程序時(shí)可以熟練地使用鏈表進(jìn)行數(shù)據(jù)操作。附 錄/第一題代碼如下:#i nclude#defi ne N 5void input(struct student stud)。double av1(struct stude nt stud。double av2(stru

34、ct stude nt stud。double av3(struct stude nt stud。int max(struct student stud)。struct stude ntint no。char n ame10。double degree!double degree2double degree3。void mai n()struct stude nt studN。double aver3,avg。int a,i。in put(stud)。aver0=av1(stud)。aver1=av2(stud)。aver2=av3(stud)。a=max(stud)oavg=(studa.d

35、egree1+studa.degree2+studa.degree3)/30for(i=0 o i3。i+)printf(第%d 門平均分:t,i+1)。printf(%.2lfn,averi)。printf(分?jǐn)?shù)最高的學(xué)生信息如下:n)。prin tf(%dt%st%.2lf%.2lf %.2lf %.2lfn,studa. no,studa. name,studa.degree1,studa.degree2,studa.degree3,avg)void input(struct student stud)輸入 N 個(gè)學(xué)生的信息int i。printf(學(xué)生信息輸入格式:學(xué)號(hào)、姓名、分開輸入

36、三門分?jǐn)?shù)n)。for(i=0 o iN。i+)printf(輸入第%d個(gè)學(xué)生信息:n,i+1)。sea nf(%d%s%lf%lf%lf,&studi. no,studi. name,&studi.degree1,&stu di.degree2,&studi.degree3)。double av1(struct stude nt stud)/計(jì)算第一門課的平均分int i o double a=0.0,bb for(i=0 o iN。i+) a+=studi.degree1。 b=a/No return b。double av2(struct stude nt stud)/計(jì)算第二門課的平均分

37、int i。double a=0.0,bb for(i=0 o iN。i+) a+=studi.degree2 b=a/No return b。double av3(struct stude nt stud)/計(jì)算第三門課的平均分int i。double a=0.0,bb for(i=0 o iN。i+) a+=studi.degree3b b=a/No return b。int max(struct stude nt stud)查找分?jǐn)?shù)最大的學(xué)生下標(biāo)double m=0,aN。int i,k=0 ofor(i=0 o iN。i+)ai=studi.degree1+studi.degree2+

38、studi.degree3 if(mai)m=ai。 k=i。return k。/第二題代碼如下:#i nclude#i nclude#defi ne N 3typedef struct studint no。char n ame10。char sex10。int ageostruct stud *n ext。Stud。Stud *create()。void show(Stud *head)。void delet(Stud *head)。Stud *get no de(Stud *head, int n。void sha n( Stud *headvoid ma in ()/ 主函數(shù)Stud

39、*head。int n。doprintf(1-創(chuàng)建鏈表,2-顯示鏈表,3-刪除相同年齡,0-退出操作n)。scanf(%d,&n)。switch( n)case 1:head=create0 break。case 2:show(head。break。case 3:delet(head。break。default:breakowhile(n!=0)。Stud *create()/創(chuàng)建鏈表儲(chǔ)存學(xué)生信息Stud *p,*head,*r。int i。head=(Stud *)malloc(sizeof(Stud)r=heac。printf(輸入學(xué)生信息格式:學(xué)號(hào)、姓名、性別、年齡n)。for(i=1

40、o in o,p-n ame,p-sex,&p-age)b r-n ext=p。r=p。r-next=NULL。return headvoid show(Stud *head)顯示學(xué)生信息int i=0。Stud *p=head-n extprintf(學(xué)生信息如下:n)。while(p!=NULL)printf(第%d 個(gè)學(xué)生信息:nn,i+1)。prin tf(%dt%st%st%dn ,p-no ,p-n ame,p-sex,p-age)。 p=p-n exto i+。Stud *getnode(Stud *head,int n)int i=1。Stud *p=head。if(n1)re

41、turn NULL owhile(p!=NULL&in extoi+。if(p!=NULL)return p。elsereturn NULL ovoid delet(Stud *head)/刪除與輸入年齡相同的學(xué)生信息int year,i=1,k=1。Stud *p=head-n ext,*q。printf(輸入要?jiǎng)h除的年齡n)。 sea nf(%d, &year)。while(p!=NULL) if(year=p-age)if(k=1) head-n ext=p-n ext。 free(p)。p=heacLelseq=get no de(head,k。 q-n ext=p-n ext。 fr

42、ee(p)。p=q。 else k+。p=p-n exto printf(相同年齡已刪除n)。青島理工大學(xué)課程實(shí)驗(yàn)報(bào)告課程名稱計(jì)算機(jī)程序設(shè)計(jì)(C)班級(jí)軟件111實(shí)驗(yàn)日期2012-6-8姓名趙業(yè)東學(xué)號(hào)201107209實(shí)驗(yàn)成績實(shí)驗(yàn)名稱實(shí)驗(yàn)八綜合程序設(shè)計(jì)實(shí)驗(yàn)?zāi)康募耙?掌握文件以及緩沖文件系統(tǒng)、文件指針的概念。2學(xué)會(huì)使用文件打開、關(guān)閉、讀、寫等文件操作函數(shù)。3.通過一個(gè)綜合程序,使學(xué)生對(duì)綜合運(yùn)用C語言程序設(shè)計(jì)語言有初步的認(rèn)識(shí)。實(shí) 驗(yàn) 環(huán) 境VC+6.0實(shí) 驗(yàn) 內(nèi) 容一、學(xué)生管理系統(tǒng)1、學(xué)生基本信息的管理,包括添加、修改、刪除、查找、全刪等 操作;2、課程數(shù)據(jù)的管理,包括添加、修改、刪除、查找、全刪

43、等操作;3、學(xué)習(xí)成績數(shù)據(jù)的管理,包括添加、修改、刪除、查找、全刪等 操作;4、學(xué)生成績查詢系統(tǒng),包括按學(xué)號(hào)、按課程號(hào)、按班號(hào)統(tǒng)計(jì)學(xué)生 的成績。算法 描首先自定義學(xué)生信息、課程數(shù)據(jù)、學(xué)生成績的結(jié)構(gòu)體,定義這些變量 的鏈表,一邊對(duì)這些數(shù)據(jù)進(jìn)行操作。一、在寫主函數(shù)時(shí),先把數(shù)據(jù)從文件中提取到鏈表中,操作后再寫入 文件中進(jìn)行保存。述 及 實(shí) 驗(yàn) 步 驟二、在學(xué)生信息管理系統(tǒng)中,添加,即是判斷是否存在相同學(xué)號(hào),沒有通過鏈表進(jìn)行添加操作,有的話進(jìn)行提示,修改時(shí)只改對(duì)應(yīng)學(xué)號(hào)的信息,學(xué)號(hào)不需要修改,但需要同時(shí)修改成績管理系統(tǒng)中的對(duì)應(yīng) 學(xué) 號(hào)的學(xué)生姓名,在進(jìn)行刪除操作時(shí),先查找是否有和需要修改的學(xué)號(hào) 相對(duì)應(yīng)的學(xué)生

44、信息,有的話則按照鏈表刪除操作進(jìn)行刪除,查找時(shí)判 斷是否有需要查找的學(xué)號(hào),若有,輸出對(duì)應(yīng)的學(xué)生信息,進(jìn)行全刪操 作時(shí),和鏈表的釋放操作差不多,但是要注意的是不能釋放頭結(jié)點(diǎn)的 地址,它是一個(gè)全局變量,釋放后不能進(jìn)行其他操作。在課程數(shù)據(jù)、學(xué)習(xí)成績數(shù)據(jù)的處理時(shí),采取同樣的處理方式;調(diào) 試 過 程 及 實(shí) 驗(yàn) 結(jié) 果三、學(xué)生成績查詢系統(tǒng)分按學(xué)號(hào)、按課程號(hào)、 按班號(hào)三種方式來統(tǒng)計(jì) 學(xué)生的成績。void deleallstu()。exter n StudNode *stude ntheadexter n ScoreNode *scoreheadvoid stude nt()int x。doprintf(1

45、-添加,2-修改,3-顯示,4-查找,5-刪除,6-全刪,0-返回n)。 scanf(%d,&x)。switch(x)case 1:addstudent。break。case 2:alterstudent() break。case 3:displaystudent() break。case 4:findstudent() break。case 5:deletstudent() break。case 6:deleallstu() break。case 0:break default :printf(選擇錯(cuò)誤 n)。 break。while(x!=0)。void addstude nt()/添加一

46、個(gè)學(xué)生信息StudNode *p=stude nthead-n ext,*s,*q=stude nthead int no。StudType st printf(輸入添加的學(xué)生學(xué)號(hào)n)。scanf(%d,&no)。 while(p!=NULL & p-data.no!=no) q=p。p=p-n extoif(p=NULL)/學(xué)號(hào)不重復(fù) s=(StudNode *)malloc(sizeof(StudNode) printf(輸入學(xué)生信息格式:姓名、年齡、班號(hào)n)。sca nf(%s%d%s,st. name,&st.age,st.class no)st .no=nob s-data=s。 s

47、-n ext=q-n ext。 q-n ext=s。elseprintf(學(xué)號(hào)重復(fù) n)。void displaystude nt()StudNode *p=stude nthead-nex。if(p!=NULL)printf(學(xué)生信息如下:n)。printf(學(xué)號(hào)姓名年齡 班號(hào)n)。while(p!=NULL)prin tf(%3d%8s%5d%8sn,p-data. no,p-data. name,p-data.age,p-dat a.class no。p=p-n ext。printf(學(xué)生信息輸出完畢n)。elseprintf(無學(xué)生信息n)。void alterstude nt()修改一個(gè)學(xué)生的信息,但是學(xué)號(hào)不改變,同時(shí)改變成績管理文件的姓 名StudNode *p=stude nthead-nex。int no。StudType stif(p!=NULL)printf(輸入要修改的學(xué)生學(xué)號(hào)n)。scanf(%d,&no)。while(p!=NULL& p-data. no!=no)p=p-n extoif(

溫馨提示

  • 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)論