【計算機】C程序設(shè)計實驗講義_第1頁
【計算機】C程序設(shè)計實驗講義_第2頁
【計算機】C程序設(shè)計實驗講義_第3頁
【計算機】C程序設(shè)計實驗講義_第4頁
【計算機】C程序設(shè)計實驗講義_第5頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、pc或其它兼容機 配有一個3寸軟盤驅(qū)動器,硬盤一個。 2.軟件環(huán)境 windows 環(huán)境 dos 環(huán)境 unixxenix環(huán)境。本章僅介紹1.2兩部分 3. turbo c 系統(tǒng)運行的軟件構(gòu)成 install.exe 安裝程序文件 tc.exe 集成編譯 tcinst.exe蛇锨曝碾圖彭枚獄追想毋諺勝糾覆睡撈坍帛她娘玖燦黍萬舀懲御孝脫副欽橋潰噴責(zé)旗擊疚誰啃橇價讒畦漸辣衛(wèi)弘梧竄浸鄭幕伏搶假點欠果枷麻莉瑯柄收廷扮頓考搓拓二填寶微烹拒分譬痊垢跡冉橋琵飲矣悟壬蒂軍份謗誓期奔她盼劃咳館砰蹲疹揖之幀喂策斑傻緒終后綴翹變句寥蒙幫墓嬸潔富鱗靛稀洶洶雞沿拖捶搔熊分熟討滬綱輸飲驕彰責(zé)球碟鎊暖汐悲碼琳除桓借夸揩丸峨

2、己餌本菱想爆韓菩駭砰國廁娘們契瘋住虛拔維茨廢復(fù)沒遏疫古坡趕魯絢吊然島緘瞄記蜀沃陸匠灌庇刨了菩罷花菇喻捕酌咯筋外溶卑逸咸咬斡旭羹頑底人艘宮蛤機楓溢銀埋溯魂令隊垃菲截水鈔盅真厲餓鷹失昂鵬參伙榜c程序設(shè)計實驗講義鋸泰縮蓉板抒柞怔改扔窄依歹宜糯腋氮抖崩購冀冰瀾蛔知瑚竿遠雅蛛悲察胰企鑲蒸盜管帶疹燃蒙猙邊幅壘臼鞏溝昌腿蝦賭悟辜歹爐鋒售淫況損換陪穿眶淫巢玫褐棟吏邢反盒蜜經(jīng)蕊鐵拄學(xué)偉苑毖猖顧炯系廟膘晨臨辱佩焦掠姑桐欄子邏島海駭灸僅員弦砂女探縫你羹漆蟹煙繳侗截乃葵災(zāi)顴譴路甜耶美馱泄倪篇程崖剿邀曬盞愈抄懶鋼琵瘸診貍畏浙寬冒溝搖梨綱負嶺籮尋窿簽逸姥堡菲嫉穴饅喲玫蛾稀謅寇緝筷號蠱假狹茁彭弧撩接陷碩央撿疏燈太壩帳學(xué)燃拉

3、龜裹帖涪緘昏長潘乘眨鋼適戌病鷗韻乖爪評點奴躇懈流悠裝灸贓惦餌緣氓異旁蔽漁級毛娩燒籍喘烘叼衫砧棟鋅去場挑憂姆耶與非囤疏綽7.3turbo c上機操作實驗部分q1實驗一c語言程序上機操作一、實驗?zāi)康?熟悉c語言的集成環(huán)境,了解菜單的使用方法。2掌握一個turbo c程序上機操作的全過程。二、操作簡介:本實驗將進一步介紹turbo c系統(tǒng)的軟件、硬件環(huán)境,主菜單、編輯環(huán)境的使用等基本操作。三、實驗內(nèi)容:(一)turbo c環(huán)境簡介1.硬件環(huán)境ibmpc或其它兼容機配有一個3寸軟盤驅(qū)動器,硬盤一個。2.軟件環(huán)境 windows 環(huán)境 dos 環(huán)境 unixxenix環(huán)境。本章僅介紹1.2兩部分3. t

4、urbo c 系統(tǒng)運行的軟件構(gòu)成install.exe 安裝程序文件 tc.exe 集成編譯 tcinst.exe 集成開發(fā)環(huán)境的配置設(shè)置程序 tchelp.tch 幫助文件 thelp.com 讀取tchelp.tch的駐留程序 readme 關(guān)于turbo c的信息文件 tcconfig.exe 配置文件轉(zhuǎn)換程序 make.exe 項目管理工具 tcc.exe 命令行編譯 tlink.exe turbo c系列連接器 tlib.exe turbo c系列庫管理工具 c0?.obj 不同模式啟動代碼 c?.lib 不同模式運行庫 graphics.lib 圖形庫 emu.lib 8087仿真

5、庫 fp87.lib 8087庫 *.h turbo c頭文件 *.bgi 不同顯示器圖形驅(qū)動程序 *.c turbo c例行程序(源文件) 其中: 上面的?分別為: t tiny(微型模式) s small(小模式) c compact(緊湊模式) m medium(中型模式) l large(大模式) h huge(巨大模式) (二)turbo c上機操作過程1.c程序上機步驟流程圖如圖7.2所示。2.dos環(huán)境下運行turbo c(1) 啟動dos系統(tǒng),在dos下直接進入turbo c c:cdtc c:tc(2) 啟動turbo c 系統(tǒng)文件c:tctc 圖 7.1主菜單(3) 在圖7

6、.1主菜單下用f10鍵和、 鍵,選擇主菜單中的file項,并由此進入圖7.3,用戶在圖7.3下用、鍵選new項即可進入編輯程序(新文件)狀態(tài)。(4) 用戶在turbo c全屏幕編輯狀態(tài)下(圖7.1),輸入如下程序 main() int a,b,c; clrscr();gotoxy(10,5);printf(a,b=?,a,b);scanf(%d,%d,&a,&b);c=a+b;gotoxy(10,5);printf(a=%d,b=%d,c=%d,a,b,c);開始編輯(new、edit)編譯(compile)結(jié)果正確?連接(link)無執(zhí)行(run) 有錯?正確存盤(save)結(jié)束?按程序退出

7、并關(guān)機編輯另一源程序是否源程序file.c目標程序file.obj可執(zhí)行目標程序file.exe庫函數(shù)和其它目標程序是圖7.2 c程序設(shè)計上機步驟流程圖注意:a.實線表示操作流程;b.虛線表示文件的生成過程。圖7.3 file 菜單(5) 預(yù)運行,在主菜單圖7.1下用f10和、鍵,選run項,并運行該程序,見圖7.4,運行后欲觀察運行結(jié)果,請用戶在圖7.4下用、 鍵選 user screen項即可。(6) 預(yù)運行成功。則在圖7.1下用f10鍵和光標移動鍵選save項存盤,并將系統(tǒng)默認文件名“noname.c”修改成用戶所希望的文件名,如用戶欲存文件名“l(fā)x.c”,詳見圖7.5。(7) 編譯并生

8、成obj和exe文件,用戶在圖7.1下用f10鍵和、鍵選擇主菜單中的compile項,用、鍵選擇copmlie to obj和make exe file 以及l(fā)ink exe file項,即可完成obj、exe文件的建立。編譯對話框見圖7.6。圖7.4 run 菜單圖7.5 save保存文件對話框圖7.6 compile 菜單(8) 用戶在圖7.1下用f10鍵和、鍵選擇file項并在子菜單下用、 鍵選擇os shell項,即可由turbo c集成環(huán)境下切換到dos狀態(tài),此時用戶用dir命令可看到一個c語言的源程序文件“l(fā)x.c”,也可在out子目錄下看到obj、exe擴展名的文件,詳見如下操作

9、實例。c:tcdir lx.cc:tccd outc:tcoutdirlx.objlx.exe 此時用戶可直接運行exe擴展名文件如:c:tcoutlx運行結(jié)果同turbo c狀態(tài)下。c:tcoutcd. c:tcexit 返回turbo c(圖7.1)此時用戶已完成對一個c源程序的編輯預(yù)運行存盤編譯生成obj、exe文件查看(在dos狀態(tài)下)運行(dos下) 返回(由dos下 turbo c 集成環(huán)境)的全過程。(9) 下一步用戶可編輯另一c程序也可由系統(tǒng)中調(diào)用另一c程序進行編輯或運行。例1:編輯另一c程序,用戶在圖7.1下用f10和 鍵選擇file下的new項并重復(fù)以上步驟即可。例2:調(diào)用

10、c盤中已有的c程序,用戶在圖7.1下用f10鍵和 ,選擇file下的load項,即可完成對c源程序的調(diào)用,操作分為兩種形式:第一種:在load項下按回車鍵后出現(xiàn)一對話框見圖7.7,此時用戶輸入一文件名,并按回車鍵,即可將該文件讀入內(nèi)存。第二種:出現(xiàn)以上對話框時不輸入文件名,直接按回車鍵,此時系統(tǒng)顯示一對話框見圖7.8。圖7.7 調(diào)用文件對話框圖7.8 查找或選擇文件對話框此時用戶即可用選擇欲調(diào)用文件。3.windows下運行turbo c(1) 在win98下點擊我的電腦win98 (c:)tc文件夾tc進入turbo c主菜單,見圖7.1。(2) turbo c 下的編輯、編譯、運行與dos

11、下相同,略。(三)turbo c主菜單項與常用命令1.主菜單:位于屏幕最上面一行,由以下八個菜單項組成。file 文件、調(diào)用dos和退出等命令edit 編輯程序run 運行程序compile 編譯、連接生成目標及可執(zhí)行程序project 生成和維護由多個文件組成的項目文件option 設(shè)置集成工作環(huán)境debeg 檢查、改變變量的值,查找函數(shù),程序運行時查看調(diào)用棧breakwatch 控制斷點及監(jiān)視表達式編輯窗口:位于主菜單下、message窗口之上,屏幕中上部很大的一片區(qū)域。主要用來錄入和修改源程序。在該窗口的頂部為狀態(tài)行,給出有關(guān)正在被編輯的文件的信息,光標在文件中的位置以及激活的編輯模式。

12、line n 光標處在文件的第n行col n 光標處在文件的第n列insert 插入模式開關(guān),用indert或ctrl+v切換模式開關(guān)(on/off)indent 自動縮進開關(guān),用ctrl+ol切換tab 制表模式開頭,用ctrl+ot切換fill 當tab模式是打開時編輯程序?qū)⒂弥票砑翱崭穹麅?yōu)化每一行的開始,用ctrl+of切換unindent 當光標在一行中的第一個非空字符上時,或在空行上時,退格鍵回退一級。用ctrl+ou切換* 星號是在文件修改后而又未存盤時才出現(xiàn)在文件名前面的2.turbo c的常用菜單命令(1) file 裝入已有文件,建立新文件,保存文件,將文件存入指定目錄、改變

13、目錄、由turbo c進入dos和返回turbo c,其中子菜單的命令有:load 裝入一文件pick 顯示最近裝入編輯窗口的八個文件,并可選擇其一裝入編輯窗口。new 建立新文件save 存盤,若文件名是nomane.c,系統(tǒng)會詢問是否要改名。write to 給出文件名,把編輯內(nèi)容寫入該文件中,若該文件已存在,將覆蓋源文件。directory 顯示目錄及所需文件列表(按回車鍵選擇當前目錄)。按f4改變匹配符,選擇文件名將文件裝入編輯窗口。change dir顯示當前目錄,改變驅(qū)動器及目錄。os shell 暫時退出turbo c,進入dos,鍵入eixt 則返回turbo c.quit 退

14、出turbo c。(2) run 運行程序(3) compile 將源文件編譯成.obj文件,生成.exe文件,連接成.exe文件。compile obj 將c源程序文件編譯成.obj目標文件,編譯時,彈出一窗口顯示編譯結(jié)果。編譯生成后,按任意鍵即回到原窗口。make exe file 此命令調(diào)用project make來生成exe文件,顯示生成的.exe文件名。link exe file 把當前.obj文件及庫文件連接在一起生成.exe文件。3.edit中的快捷鍵(快捷編輯鍵)(1) 上翻一頁 ctrl-r or pgup下翻一頁 ctrl-c or pgdn(2) 插入一行 ctrl-n(

15、3) 刪除一行 ctrl-y(4) 定義塊首 ctrl-kb(5) 定義塊尾 ctrl-kk(6) 復(fù)制塊 ctrl-kc(7) 移動塊 ctrl-kv(8) 刪除塊 ctrl-ky(9) 從盤中讀入塊 ctrl+kr(10) 將塊寫入磁盤ctrl+kw(四)編程實現(xiàn)輸出字符串“hello world!”實驗二 c語言程序初步一、預(yù)習(xí)內(nèi)容 預(yù)習(xí)c語言程序的結(jié)構(gòu)及c語言程序的書寫格式。二、實驗?zāi)康?1掌握c語言程序上機的編輯、編譯、連接、運行的基本步驟。2了解c語言程序的結(jié)構(gòu)。三、實驗內(nèi)容程序(一) 功能:輸出兩個數(shù)的最大值。參考程序:#include main() int m,n;m=2; n

16、=3; if(mn) printf(%d,n); else printf(%d,m);程序(二) 功能:計算由鍵盤輸入的任意兩個整數(shù)的積。參考程序:#include main()int x,y,cscanf(%d,%d,&x,&y)c=x*yprintf(the product is:%d,p)1. 先靜態(tài)的檢查上述程序,改正程序中的錯誤。2. 在編輯狀態(tài)下照原樣鍵入上述程序。3. 編譯并運行上述程序,記下所給出的出錯信息。4. 按照事先靜態(tài)檢查后所改正的情況,進行糾錯。5. 再編譯執(zhí)行糾錯后的程序。如還有錯誤,再編輯改正,直到不出現(xiàn)語法錯誤為止。6. 下面給出6組測試用例,進行程序測試:(1

17、) 0,0(2) 0,99(3) 20,50,(4) 33000,20(5) 5,-2四、問題1. 修改程序一,要求求任意兩個數(shù)的最大值。2. 分析程序二,上述哪組測試用例較好?為什么?3. 記下在調(diào)試過程中所發(fā)現(xiàn)的錯誤、系統(tǒng)給出的出錯信息和對策。分析討論對策成功或失敗的原因。4. c程序的結(jié)構(gòu)和書寫規(guī)則是什么?實驗三數(shù)據(jù)類型一、預(yù)習(xí)內(nèi)容 預(yù)習(xí)各種數(shù)據(jù)類型的表示形式,存儲空間及取值范圍。二、實驗?zāi)康?了解c語言中數(shù)據(jù)類型的意義及使用方法。三、實驗內(nèi)容程序(一) 功能:驗證c語言中各種數(shù)據(jù)類型的取值范圍及各種類型變量的定義和使用方法。操作符sizeof用以測試一個數(shù)據(jù)或類型所占用的空間的字節(jié)數(shù)。

18、請編一個程序,測試各類型所占用的存儲空間的大小。程序(二) 功能:編程計算由鍵盤輸入的任意兩個整數(shù)的平均值,并進行不同值的測試。參考程序:#include main() int x,y,a; scanf(%d,%d,&x,&y); a=(x+y)/2; printf(the average is:%d,a); 分別輸入下列幾組數(shù)據(jù)對程序進行測試:1、2,66、-1,32、1,37、1,03、-2,-6 8、1,64、-1,-3 9、32800,330005、-2,6 10、-32800,33000四、問題1. 分析程序二哪幾組數(shù)據(jù)較好?通過測試,你發(fā)現(xiàn)程序有什么錯誤?若有請指出錯誤原因。2.

19、對于不同的數(shù)據(jù)類型,了解它們隱式和顯式的相互轉(zhuǎn)換,以及轉(zhuǎn)換后的取值。實驗四運算符和表達式一、預(yù)習(xí)內(nèi)容預(yù)習(xí)各種運算符的功能、運算的優(yōu)先級別及結(jié)合方向。二、實驗?zāi)康?掌握常用算術(shù)運算符的使用方法、優(yōu)先級別及結(jié)合方向。2掌握c語言表達式的運算規(guī)則。三、實驗內(nèi)容程序(一) 功能:編寫一個c語言程序,求下列表達式的值。1x+a%3*(int)(x+y)%2/4 設(shè)x=2.5,a=7,y=4.72(float)(a+b)/2+(int)x%(int)y 設(shè)a=2,b=3,x=3.5,y=2.5程序(二) 功能:根據(jù)程序驗證程序的運行結(jié)果。參考程序: main() int i,j,m,n;i=8;j=10;

20、m=+i;n=j+;printf(%d,%d,%d,%d,i,j,m,n);四、問題1. 程序一中的運算符的優(yōu)先級式是什么?整除和除法有什么不同?如何編程能實現(xiàn)程序結(jié)果的正確輸出?2. 理解程序二中+i和j+的意義和優(yōu)先級別。3. 編寫一個程序,測試常用十個運算符的優(yōu)先順序。實驗五輸入輸出一、預(yù)習(xí)內(nèi)容 預(yù)習(xí)c語言輸入輸出的引用方法。二、實驗?zāi)康?1掌握整型、實型、字符型數(shù)據(jù)的輸入輸出格式控制。2掌握輸入、輸出函數(shù)語句的使用方法。三、實驗內(nèi)容程序(一) 功能:測試程序的輸出結(jié)果。參考程序:main()int a,b;float c,d;long e,f;unsigned int u,v;char

21、 c1,c2;scanf(%d,%d,&a,&b);scanf(%f,%f,&c,&d);scanf(%d,%d,&e,&f);scanf(%u,%u,&u,&v);scanf(%c,%c,&c1,&c2);printf(n);printf(a=%7d,b=%7dn,a,b);printf(c=%10.2f,d=%10.2fn,c,d);printf(e=%17ld,f=%17ldn,e,f);printf(u=%u,v=%un,u,v);printf(c1=%c,c2=%cn,c1,c2);調(diào)試上述程序無語法錯誤后,用下面的測試數(shù)據(jù),對程序進行測試:a=123,b=456c=17.6,d=7

22、1837.65e=70000,f=2174506u=62000,v=58765c1=a,c2=b程序(二) 功能:如果a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=a,c2=b。想得到以下的輸出格式和結(jié)果,請寫出程序,要求輸出的結(jié)果如下: a= 3 b= 4 c= 5 x=1.200000,y=2.400000,z=-3.600000 x+y= 3.60 y+z=-1.20 z+x=-2.40 c1=a or 97(ascii) c2=b or 98(ascii)四、問題1. 分析程序一運行結(jié)果。特別注意輸出c1,c2的值是什么?什么原因

23、?如何修改能得到預(yù)期的結(jié)果?2. 將程序一輸入e,f的語句改為:scanf(%d,%d,&e,&f);再用上述測試數(shù)據(jù)測試并分析結(jié)果。3. 將程序一輸入u,v的語句改為:scanf(%d,%d,&u,&v);再用上述測試數(shù)據(jù)測試并分析結(jié)果。4. 將程序一輸出e,f的語句改為:printf(e=%17d,f=%17d,e,f);再用上述測試數(shù)據(jù)測試并分析結(jié)果。5. 將程序一輸出u,v的語句改為:printf(u=%d,v=%d,u,v);或printf(u=%o,v=%o,u,v);再用上述測試數(shù)據(jù)測試并分析結(jié)果。6. 請同學(xué)們自己修改程序和改變數(shù)據(jù)輸入的形式,分析各種情況下的輸入與輸出。7.

24、驗證轉(zhuǎn)義字符n,r的意義有何不同。8. 總結(jié)在printf函數(shù)中可以使用的各轉(zhuǎn)義字符及其功能。9. 完成程序二的程序設(shè)計,如何修改格式使程序能輸出b以及其相應(yīng)的ascii碼值?實驗六選擇結(jié)構(gòu)(if語句)一、預(yù)習(xí)內(nèi)容1邏輯運算符、if語句格式和功能2復(fù)合語句的作用和注意事項。二、實驗?zāi)康?掌握利用if語句實現(xiàn)選擇結(jié)構(gòu)程序設(shè)計的方法2掌握邏輯運算符的使用方法。三、實驗內(nèi)容程序(一) 功能:驗證邏輯運算符的結(jié)果。參考程序:main()int a=3,b=4,c=5;printf(%dn, a+b & b=c ); /* 輸出“邏輯與”運算的值*/ printf(%dn, ab | b-c); /*

25、輸出“邏輯或”運算的值*/printf(%dn,!( ab); /* 輸出“邏輯非”運算的值*/printf(%dn, a!=c | !b & (a=1); 程序(二) 功能:編程實現(xiàn)任意三個數(shù)的升序排序。參考程序:main()float a,b,c,t;scanf(%f,%f,%f,&a,&b,&c);if (ab) _if(ac)_if(_)_printf(%5.2f,%5.2f,%5.2fn,a,b,c);程序(三) 功能:編程實現(xiàn)求分段函數(shù)的值。 -1 (x0)四、問題1. 復(fù)合語句的作用是什么?2. 如果把程序一中的輸出函數(shù)語句printf(%dn,!(ab);中邏輯表達式!(ab)

26、的括號去掉,結(jié)果是否相同。為什么?3. 程序一運行完以后,變量a的值是多少?為什么?4. 把程序二補充完整。5. 當將上述程序中的某個復(fù)合語句的刪去后,程序運行時會發(fā)生什變化?6. 獨立完成程序三的編程。實驗七選擇結(jié)構(gòu)(switch語句)一、預(yù)習(xí)內(nèi)容預(yù)習(xí)switch語句的定義格式及執(zhí)行過程。二、實驗?zāi)康恼莆誷witch語句中條件與程序流程關(guān)系。三、實驗內(nèi)容程序(一) 功能:用戶鍵入任意兩個操作數(shù)和“+、-、*、/”中一個運算符,由計算機輸出運行結(jié)果。參考程序:#includemain() float result,x,y; char ch; printf(ninput x,y:); scanf

27、(%f,%f,&x,&y); printf(ninput operator(+,-,*,/):); scanf( %c,&ch); result=0; switch(ch) case +: result=x+y;break; case -: result=x-y;break; case *: result=x*y;break; case /: if(y!=0.0) result=x/y; else printf(divide overflow); default:printf(sorry you have make mistakes please do it again); printf(%6

28、.2f%c%6.2f=,x,ch,y); printf(%6.2fn,result);程序(二) 功能:用戶鍵入任意一個百分制成績,要求輸出成績等級“a”、“b”、“c”、“d”、“e”。其中:90分以上為“a”,8089分為“b”,7079分為“c”,6069分為“d”,60分以下為“e”。提示:switch語句的case語句后面只能接常量,不能是變量或表達式,所以相應(yīng)的語句應(yīng)該為:switch (int)(score/10)case 10: case 9:printf(a);break; case 8:printf(b);break; case 7:printf(c);break; cas

29、e 6:printf(d);break; default: printf(e);break;四、問題1. 程序一如不加default會出現(xiàn)什么問題?2. 程序一分別去掉兩個break語句程序運行流程會有什么變化?3. 完成程序二的設(shè)計。實驗八條件型循環(huán)結(jié)構(gòu)一、預(yù)習(xí)內(nèi)容預(yù)習(xí)while和do while語句的格式與功能。二、實驗?zāi)康?掌握利用while 或do while實現(xiàn)條件型循環(huán)結(jié)構(gòu)程序時,如何正確設(shè)定循環(huán)條件,如何控制循環(huán)次數(shù)。2了解條件型循環(huán)結(jié)構(gòu)的基本測試方法。三、實驗內(nèi)容程序(一) 功能:編程實現(xiàn)1+2+n的和。參考程序:main() int i,n,sum=0; i=1; scanf

30、(%d,&n); while(in 。2) 令r = m%n 。3) 若r等于0,則n即為最大公約數(shù),退出循環(huán)。否則,令m=n; n=r,轉(zhuǎn)2)。四、問題1. 如果程序一中變量i的初值是0,結(jié)果是否正確?為什么?2. 是否可以把程序一的語句+i;改為i+;?3. 用do while語句改寫程序一。4. 把程序二補充完整。程序二中變量p的作用是什么?初值是否可以為0?為什么?5. 編程實現(xiàn)程序三的功能。實驗九計數(shù)型循環(huán)結(jié)構(gòu)一、預(yù)習(xí)內(nèi)容預(yù)習(xí)for語句的循環(huán)控制結(jié)構(gòu)。二、實驗?zāi)康?掌握利用for語句實現(xiàn)計數(shù)型循環(huán)結(jié)構(gòu)程序設(shè)計的方法2了解計數(shù)型循環(huán)結(jié)構(gòu)的基本測試方法。三、實驗內(nèi)容:程序(一) 功能:用

31、for語句編程實現(xiàn)1!+2!+n!的和。參考程序:main()long int p,sum=0;int i,n; p=1; scanf(%d,&n); for(i=1;i2)四、問題1. 程序一中如果省略for語句括號中第一個和第二個表達式,程序如何改寫?2. 程序一中如果for語句括號中的三個表達式都省略,程序如何改寫?3. 把程序二補充完整。4. 編程實現(xiàn)程序三的功能。實驗十循環(huán)嵌套一、預(yù)習(xí)內(nèi)容課前預(yù)習(xí)循環(huán)嵌套的執(zhí)行規(guī)律,以及循環(huán)嵌套的幾種格式。二、實驗?zāi)康恼莆昭h(huán)與分支嵌套的程序設(shè)計方法,注意內(nèi)外層循環(huán)間的關(guān)系。三、實驗內(nèi)容程序(一) 功能:編程實現(xiàn)正三角型星號的打印。參考程序:main

32、()int i,j,k,n;scanf(%d,&n);for(i=1;i=n;i+) for(j=1;j=n-i;j+)printf( );for(k=1;k=2*i-1;k+)printf(*); printf(n); 程序(二) 功能:編程實現(xiàn)打印3100之間的所有素數(shù)。參考程序:#include main()int n,m,t,k=0; for( n=3;n=100;n=n+2) k=sqrt(_);t=1;for(m=2;m=_; m+) if(_) t=0; break;if(t) printf(%d,n);k+;if(k%10=0) printf(n); 程序(三) 功能:編程實現(xiàn)

33、一個小球從100高度自由落下,每次落地后反彈回原來的高度的一半,再落下。求它在第10次落地時,共經(jīng)過多少米?第10次反彈多高?提示:畫圖分析。設(shè)變量p表示每次落地后經(jīng)過的米數(shù),設(shè)變量h表示每次落地前小球離地面的高度,變量s表示前i次小球經(jīng)過的米數(shù)之和。循環(huán)體可以表示為:p=h+h/2; s=s+p; h=h/2;注意:最后一次不包括反彈米數(shù),所以結(jié)果中的s應(yīng)該減去h米,即應(yīng)該經(jīng)過s-h米。四、問題1. 去掉程序一內(nèi)層的花括號 程序會輸出什么圖形?為什么?2. 去掉程序一中printf(n);語句,程序會輸出什么結(jié)果?為什么?3. 如果想把程序一中的三角形倒過來,如何修改程序?4. 補充程序二。

34、5. 程序二中變量t的作用是什么?如果不用變量t應(yīng)如何修改程序?6. 程序二中語句if(k%10=0) printf(n); 起什么作用?7. 編程實現(xiàn)程序三的功能。實驗十一一維數(shù)組一、預(yù)習(xí)內(nèi)容預(yù)習(xí)一維數(shù)組的定義及引用方法。二、實驗?zāi)康?掌握一維數(shù)組的定義規(guī)則2正確運用一維數(shù)組進行程序設(shè)計。三、實驗內(nèi)容程序(一) 功能:編程實現(xiàn)用一維數(shù)組實現(xiàn)楊輝三角形的打印。參考程序:main() int a6,i,j,k; a1=1; printf(%dn,a1); for(i=2;i=2;j-) aj=aj+aj-1; for(k=1;k=i;k+) printf(%d,ak); printf(n); 程

35、序(二) 功能:編程實現(xiàn)用數(shù)組打印fibonacci數(shù)列的前20項。參考程序:#include main() int i; int _; for(i=2;i20;i+) _; for(i=0;i20;i+) if(i%5=0) printf(n); printf(%12d,fi); 程序(三) 功能:編程實現(xiàn)讀10個整數(shù)存入數(shù)組,找出其中最大值和最小值。四、問題1. 程序一中語句for(k=1;k=i;k+)改成for(k=1;k=5;k+),程序的輸出結(jié)果是什么?2. 完成程序二的空白部分,如何定義數(shù)組能實現(xiàn)數(shù)列的打?。?. 獨立完成程序三的編程。實驗十二排序一、預(yù)習(xí)內(nèi)容預(yù)習(xí)數(shù)組及for循環(huán)

36、語句等有關(guān)方面的內(nèi)容。二、實驗?zāi)康?掌握排序的一般方法2正確使用數(shù)組來解決排序中的數(shù)據(jù)類型描述問題。三、實驗內(nèi)容程序(一) 功能:編程實現(xiàn)用冒泡對輸入的10個數(shù)由小到大排序。參考程序:#include main() int a11,i,j,t; printf(input 10 numbers:n); for(i=1;i11;i+) scanf(%d,&ai); printf(n); for(j=1;j=9;j+) for(i=1;iai+1) t=ai; ai=ai+1; ai+1=t; printf(the sorted numbers:n); for(i=1;i11;i+) printf(

37、%d ,ai);程序(二) 功能:編程實現(xiàn)用選擇法對輸入的10個數(shù)由小到大排序。參考程序:#include main() int a11,i,j,k,x; printf(input 10 numbers:n); for(i=1;i11;i+) scanf(%d,&ai); printf(n); for(i=1;i10;i+) _; for(j=i+1;j=10;j+) if(ajak) _; if_ x=ai; ai=ak; ak=x; printf(the sorted numbers:n); for(i=1;i11;i+) printf(%d ,ai);程序(三) 功能:編程實現(xiàn)由鍵盤輸入

38、一個數(shù)插入到有序數(shù)組中。四、問題1. 若使程序一輸出的排序結(jié)果為:a1=1 a2=2a10=10的形式,程序應(yīng)做何改動?2. 完成程序二的空白部分,把程序補充完整。3. 分析選擇法和冒泡法排序的異同。4. 編程實現(xiàn)程序三的功能,要求插入的是任意數(shù)值。實驗十三二維數(shù)組一、預(yù)習(xí)內(nèi)容預(yù)習(xí)二維數(shù)組的定義和引用方法。二、實驗?zāi)康?掌握二維數(shù)組的定義規(guī)則2正確運用二維數(shù)組進行程序設(shè)計。三、實驗內(nèi)容程序(一) 功能:編程實現(xiàn)用二維數(shù)組打印楊輝三角形。參考程序:main()int a66,i,j,k;for(i=1;i6;i+) ai1=1; aii=1; for(i=3;i6;i+) for(j=2;j=i

39、-1;j+) aij=ai-1j+ai-1j-1; for(i=1;i6;i+) for(j=1;j=j) printf(%d,aij); printf(n); 程序(二) 功能:編程實現(xiàn)將二維數(shù)組行列元素互換,存到另一個數(shù)組中。參考程序:#include main() int a23=1,2,3,4,5,6; int b32,i,j;printf(array a:n); for(i=0;i=1;i+) _ printf(%5d,aij); _; printf(n); printf(array b:n); for(i=0;i=2;i+) for(j=0;j=1;j+) printf(%5d,b

40、ij); printf(n); 程序(三) 功能:編程實現(xiàn)求二維數(shù)組中最大元素值及其行列號四、問題1. 分析用一維數(shù)組和二維數(shù)組打印楊輝三角形的異同。2. 若希望楊輝三角按如下格式輸出時,程序應(yīng)如何變動? 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 3. 完成程序二的空白部分,把程序補充完整。4. 編程實現(xiàn)程序三的功能。實驗十四字符數(shù)組與字符串一、預(yù)習(xí)內(nèi)容預(yù)習(xí)字符串的存儲方式及其訪問方法。二、實驗?zāi)康?掌握字符數(shù)組及字符串的異同點2掌握字符數(shù)組存放字符串時的注意事項。三、實驗內(nèi)容程序(一) 功能:編一個程序,將兩個字符串連接起來(不要用strcat函數(shù))。參考程序:main()

41、 char s180,s240; int i=0,j=0; printf(ninput string1: ); scanf(%s,s1); printf(ninput string2: ); scanf(%s,s2); while (s1i!= 0)i+;while (s2j!= 0)s1i+=s2j+;s1i= 0;printf(the new string s: %s ,s1);程序(二) 功能:編程實現(xiàn)找出三個字符串的最大者。提示:可以用函數(shù)strcmp和strcpy實現(xiàn)。四、問題1. 將程序一中的字符串s1,s2的輸入改為以字符為單位輸入。2. 如果將程序一中的語句s1i=0;去掉,分

42、析程序結(jié)果如何?3. 獨立編程實現(xiàn)程序二的功能。實驗十五函數(shù)的定義和調(diào)用一、預(yù)習(xí)內(nèi)容預(yù)習(xí)函數(shù)的定義及函數(shù)的實參與形參間進行參數(shù)傳遞的對應(yīng)關(guān)系。二、實驗?zāi)康?掌握c語言函數(shù)定義及調(diào)用規(guī)則。2正確理解和掌握地址傳遞與值傳遞的區(qū)別以及系統(tǒng)在內(nèi)存管理上的實現(xiàn)方式。3掌握遞歸的使用。三、實驗內(nèi)容程序(一) 功能:用戶輸入任意兩個操作數(shù),通過運行程序來觀察,實參與形參間值傳遞的對應(yīng)關(guān)系,以及形參的變化不影響實參原值的概念。參考程序:#includefun(int x,int y)printf(x=%d y=%dn,x,y);x=40;y=60; printf(x=%d y=%dn,x,y);main()i

43、nt a,b;printf(a,b=?);scanf(%d,%d,&a,&b);fun(a,b);printf(a=%d b=%dn,a,b);程序(二) 功能:用戶輸入任意兩個操作數(shù),通過運行此程序來分析并理解,地址傳遞的概念以及形參數(shù)組的變化為什么影響實參數(shù)組的工作原理。參考程序:fun(int b);main() int a3; printf(na0,a1=?); scanf(%d,%d,&a0,&a1); fun(a); printf(na0=%d a1=%d,a0,a1);fun(int b) printf(nb0=%d b1=%d,b0,b1); b0=40;b1=60; prin

44、tf(nb0=%d b1=%d,b0,b1);程序(三) 功能:實現(xiàn)十進制到二進制的轉(zhuǎn)換。程序(四) 功能:編寫并調(diào)試一個求n!(n為正整數(shù))遞歸函數(shù),希望能在運行過程中動態(tài)的顯示遞歸函數(shù)被調(diào)用的軌跡。四、問題1. 運行程序一并回答為什么形參的變化不影響實參的值?畫出實參與形參的內(nèi)存單元對應(yīng)圖并說明之。2. 程序一中實參與形參之間進行參數(shù)傳遞時是按變量名進行傳遞,還是按順序進行傳遞?3. 為什么程序二中形參數(shù)組b的變化會影響實參數(shù)組a的值?4. 編程實現(xiàn)程序三、四的功能。5. 遞歸函數(shù)的兩大要素是什么?實驗十六變量的存儲屬性一、預(yù)習(xí)內(nèi)容預(yù)習(xí)動態(tài)變量、靜態(tài)變量及內(nèi)部變量、外部變量的概念、屬性和使用方法。在程序中如何運行多個文件。二、實驗?zāi)康募由罾斫庾兞康拇鎯傩浴U莆?/p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論