



版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
?c程序案例教程》實驗招導導燈敢解答主編:陳承歡參編:趙克林北京工業大學出版社內容簡介本書是C語言程序設計課程的實驗指導書和參考用書。本書主要包括四個部分:第一部分為實驗指導部分,第二部分為習題解答部分,第三部分為補充習題部分,第四部分為附錄部分。本書具有較強的針對性與實用性,內容豐富、條理清晰,是學習c語言程序設計的ー本好的參考用書,本書可以與《C程序案例教程》配套使用,也可以作為其他C語言教材的實驗指導書和習題集,可以作為參加全國計算機等級考試二級c語言的參考用書。本書是《C程序案例教程》的配套教材,其內容緊扣C語言程序設計的教學內容與教學進度,可以作為其他C語言教材的實驗指導書和習題集,也可以作為參加全國計算機等級考試二級C語言的參考用書。本書主要包括四個部分:第一部分為實驗指導部分,為《C程序案例教程》一書中各章安排了具有針對性的實驗內容。每個實驗都給出了具體的實驗目的和實驗要求,并且根據學生每次上機操作的時間限制,精心安排了各次實驗的實驗內容,其目的是使學生通過上機實驗理解所學的內容,訓練學生編程、調試的動手能力。第二部分為習題解答部分,給出了《C程序案例教程》一書中所有習題的解題思路與參考答案,所有程序都上機調試并運行通過。第三部分為補充習題部分,給合教材內容與c語言二級等級考試的需要,補充了大量習題。第四部分為附錄部分,主要包括TurboC2.0的主菜單,TurboC編譯環境中常用的功能鍵與熱鍵,書寫實驗報告的格式與要求,C語言多文件程序的編譯與連接,C語言程序的調試方法,DOS的相關知識,UCDOS的正確使用方法,VisualC++編譯環境下C語言程序上機操作的基本方法和步驟,C程序常見的出錯信息淺析,C語言程序中常見錯誤淺析、編程規范化淺析等。本書共安排了10次上機實驗,與主教材《C程序案例教程》各章相對應,任課老師可根據課時的多少,適當地調整實驗次數。每一次實驗的內容分為三個部分:第一部分為驗證性實驗,主要根據主教材中的例題中給出的程序,進行輸入、修改、調試、輸出結果,加深對所學知識的理解。第二部分為修改性實驗,給出的程序中有意設定了幾個錯誤,要求學生通過調試程序,修改程序中的錯誤,側重于培養學生根據出錯信息提示修改錯誤、調試程序的能力。第三部分為設計性實驗,根據對應章節所學習的重點內容,給出幾個編程題,題目相對比較容易,要求學生上機編寫程序,并且調試成功,輸出正確結果,主要提高學生的程序編寫能力。每一部分給出了多個題目,讀者可以根據具體情況完成2至3個實驗題。本書第一部分、第三部分、第四部分由湖南鐵道職業技術學院陳承歡老師編寫,第二部分由四川信息職業技術學院趙克林老師編寫,全書由陳承歡老師負責組織、統稿和審核。需要補充說明的是:本書所給出的程序參考答案并非是唯一的答案,對于同一題目,其算法不一定唯一,不同的設計思路編寫的程序可能會有所區別,本書中給出只是ー種答案,可能不是最好的,只是提供一個參考答案供讀者參考,啟發讀者思維。本書給出的所有程序都在TurboC或VC環境下調試通過。由于時間倉促,作者水平有限,書中難免存在ー些疏漏和不妥之處,懇請各位專家以及廣大讀者批評指正。編者2004年8月TOC\o"1-5"\h\z\o"CurrentDocument"內容簡介 .i\o"CurrentDocument"第一部分C語言程序設計實驗指導 1\o"CurrentDocument"實驗ー 初識C語言集成編譯環境 1\o"CurrentDocument"實驗二 C程序的調試與運算符 14\o"CurrentDocument"實驗三順序結構程序設計 24\o"CurrentDocument"實驗四選擇結構程序設計 27\o"CurrentDocument"實驗五循環結構程序設計 31\o"CurrentDocument"實驗六數組與結構 36\o"CurrentDocument"實驗七指針 40\o"CurrentDocument"實驗ハ函數與變量存儲類別 44\o"CurrentDocument"實驗九文件 48\o"CurrentDocument"實驗十部分典型算法 52\o"CurrentDocument"第二部分《C程序案例教程》習題解答 57\o"CurrentDocument"習題1 57\o"CurrentDocument"習題2 58\o"CurrentDocument"習題3 61\o"CurrentDocument"習題4 64\o"CurrentDocument"習題5 69\o"CurrentDocument"習題7 92\o"CurrentDocument"習題9 109\o"CurrentDocument"第三部分補充習題 120第1早 初識C程)十 120\o"CurrentDocument"第2章 C語言基礎 120\o"CurrentDocument"第4章 選擇結W程序設計 125\o"CurrentDocument"第5章 循環結構程序設計 127\o"CurrentDocument"第6章 數組與結構 133\o"CurrentDocument"第7章指針 142\o"CurrentDocument"第8章 函數與變量存儲類別 143\o"CurrentDocument"第四部分附錄 150\o"CurrentDocument"附求!TurboC2.0的主菜單 150\o"CurrentDocument"附錄2TurboC編譯環境中常用的功能鍵與編輯熱鍵 156iiiTOC\o"1-5"\h\z\o"CurrentDocument"附錄3書寫實驗報告的格式與要求 158\o"CurrentDocument"附錄4C語言多文件程序的編譯與連接 159\o"CurrentDocument"附錄5C語言程序的調試方法 162\o"CurrentDocument"附求6DOS的相關知識 164\o"CurrentDocument"附錄7UCDOS的正確使用方法 165\o"CurrentDocument"附錄8VisualC++的使用方法 166\o"CurrentDocument"附錄9C程序常見的出錯信息淺析 170\o"CurrentDocument"附錄10C語言程序中常見錯誤淺析 176\o"CurrentDocument"附錄11編程規范化淺析 191\o"CurrentDocument"附錄12第三部分補充習題的參考答案 194\o"CurrentDocument"參考文獻 197第一部分 C語言程序設計實驗指導實驗ー初識c語言集成編譯環境—.實驗目的し了解所用的計算機系統的基本操作方法,學會獨立使用該系統。.逐步熟悉C語言集成編譯環境,學會設置合適的TurboC工作環境。.熟悉如何建立、打開、保存ー個C語言源程序。.通過編輯、編譯、連接與運行簡單的C程序,初步了解C程序的調試方法。二、實驗內容和步驟1.熟悉TurboC的集成編譯環境TurboC為C程序提供了編輯、編譯、連接、運行的集成工作環境,具有運行速度快、編譯效率高、易學易用、使用方便等特點。(1)啟動TurboC,進入工作窗口開機后,按如下步驟進入C的工作環境:在DOS環境下啟動TurboC,先鍵入:TurboC所在的盤符'TurboC所在路徑、tc(例如C:\TurboC2\tc),并回車,則會出現如圖1-1所示編輯窗口。圖1-1也可以用cd命令使TurboC程序所在的目錄成為當前目錄(例如:cdc:\TurboC2),然后在含有TurboC程序子目錄的命令行上鍵入:tc,并回車。注意如在C程序中要處理漢字,則在啟動TurboC之前,應先啟動UCDOS中文操作系統,具體方法參見附錄7。
在Windows環境下啟動TurboC.可以在如圖1-2所示的資源管理器中雙擊文件名為“TC.EXE”的應用程序,或者進入Windows的MS-DOS方式(對于Windows98,可選擇“開始”-“程序”-“MS-DOS方式”菜單,進入“DOS方式”窗口;對于Windows2000,可選擇“開始”一“程序”一“附件”一“命令提示符”菜單,進入“DOS方式”窗口),通過DOS命令(例如:cd\c:\TurboC2)進入TurboC所在目錄再鍵入tc,即出現如圖!-1所示的TurboC編輯窗口。圖1-2(2)熟悉TurboC操作界面TurboC集成環境的操作界面主要分成五個部分:主菜單、編輯窗口、狀態欄、信息窗口和功能鍵提示行。主菜單位于窗口屏幕的頂部,它包括8個菜單:File(文件)、Edit(編輯)、Run(運行)、Compile(編譯)、Project(項目)、Options(選項)、Debug(調試)、Break/watch(中斷/監視),每一個主菜單還有其子菜單,分別用來實現各種操作。各個菜單項的名稱及其功能詳見附錄1。編輯窗ロ:在主菜單的下面,正上方有Edit字樣作為標志,主要用于TurboC源程序的輸入和編輯。狀態欄:在編輯窗u的上部有一行英文,這一行英文提供正在編輯操作的信息,其中Line!和Col1表示當前光標位置在第1行第1歹リ,標識光標當前所在的位置。當光標移動時,Line和Col后面的數字也隨之改變。!nsert表示當前處于插入狀態。右端顯示當前正在編輯的文件名,對于新文件自動命名為:NONAME.C,對于調入ー個已存在的文件,該位置上將顯示調入文件的文件名。試_試在編輯窗口中輸入"#include<stdio.h>",然后按回車鍵,觀察窗口頂部左端Line和Col后面數字的變化。按一下"Insert"鍵,觀察窗口的變化。信息窗口:在屏幕的下部,用來顯示編譯和連接時的有關信息,在信息窗口上方有"Message”字樣作為標志,但不能向信息窗口輸入源程序。試ー試按功能鍵F5,觀察它有什么作用,再按一次F5,再觀察它有什么作用。然后按功能鍵F6,觀察它有什么作用:再按一次F6,再觀察它有什么作用。?功能鍵提示行:在信息窗口的下面,顯示一些功能鍵的作用。常見的功能鍵的功能如下所示。Fl-Help:按Fl鍵系統將會根據光標當前位置為線索給出幫助信息。F5-Zoom:擴大當前活動窗口(編輯窗口或信息窗口)。F6-Switeh:編輯窗口和信息窗口之間的切換。F7-Trace:用于跟蹤程序的運行情況。F8-Step:按一次F8鍵執行一個語句。F9-Make:進行編輯和連接,生成目標文件,但不運行程序。F10-Menu:激活第一個菜單File,進入主菜單選擇狀態。(3)熟悉TurboC主菜單的操作主菜單可以提供集成環境下的各種功能,主菜單的選擇有兩種方法:ー是按F10鍵進入主菜單的選擇狀態,此時主菜單中某ー項上呈高亮度顯示,用左右光標移動鍵"一”或"一”將亮條移動到要選用的項目上,回車后出現對應的子菜單,再用上下光標移動鍵"或"t”選擇菜単項,確認后回車。二是按AIt+各個菜單欄的第一個字母,例如選中"File”菜單,可按Alt+F.彈出該菜單欄的下拉子菜單,用上下光標移動鍵"I"或"t"將亮條移到所需的子菜単項,按回車鍵即可。試_試按功能鍵F10,并按回車鍵,觀察"File”菜單,了解該菜單欄的下拉子菜單。用鍵盤上的"一”鍵,分別選中Edit、Run、Compile,Project,Option、Debug、Break/watch,觀察它們的下拉子菜單,大致上了解它們的作用。了解TurboC的工作環境,學會改變其工作目錄建立工作目錄工作目錄指用戶文件所在的目錄,用戶進入TurboC的目錄后,可以在這個目錄下再建立一個用戶專用的子目錄,如圖1-2所示,用戶建立了兩個子目錄:exercise和ExOutput,其中exercise用于存儲所編寫的源程序,擴展名為.C;ExOutput用于存儲目標文件和可執行文件,擴展名分別為,obj和.exe。在啟動TC之前,先應建立用戶所需的工作目錄,因為TurboC系統中改變工作目錄時,該工作目錄必須事先存在,否則會出錯。改變當前工作目錄可以在進入TurboC系統以前,在DOS狀態下用CD命令設置,也可以在進入TurboC系統以后改變工作目錄。進入TurboC系統以后改變工作目錄的方法如下:先按“Alt+F”選擇File菜單,然后使用光標移動鍵“f”或“I”,將亮條移動到“Changedir”處并按回車鍵或直接按“C”鍵,出現ー個“NewDirectory”即“新目錄輸入框”,輸入已存在的目錄路徑再按回車即可,例如:C:\TurboC2\exerciseo如圖1-3所示。圖1-3當前工作目錄的作用:新建的源文件和輸出文件(.obj文件.exe文件),如不另外指定存放位置,將自動保存在該子目錄中。(5)學會設置合適的TurboC工作環境改變TurboC系統默認工作環境的方法:按Alt+O選擇Options菜單,然后按D鍵(也可以用光標移動鍵將亮條移到“DirectoriesM處,再按回車鍵)后彈出ー個窗口,如圖1-4所示。窗口中的各項的含義如下:第一行:Includedirectories指“頭文件”所在的目錄,系統顯示出默認的子目錄為:C:\TURB0C2\INCLUDEo如要改變該子目錄,則將亮條移到“Includedirectories”處并按回車鍵,然后輸入“包含文件”所在的盤符和路徑。具體位置應與安裝TurboC實際位置一致。第二行:Librarydirectories指庫文件所在的H錄,系統顯示出默認的子目錄為:C:\TURBOC2\LIBo如要改變該子目錄,5!リ將亮條移到“Librarydirectories”處并按回車鍵,然后輸入“庫文件”所在的盤符和路徑。具體位置應與安裝TurboC實際位置一致。圖1-4第三行:Outputdirectories指定編譯、連接生成的目標文件和可執行文件(.obj文件和.exe文件)存放的目錄,如果不改變則保存在當前工作目錄中。系統允許輸出文件保存在與源文件不同的子目錄中,改變輸岀文件的目錄后,新建的源文件仍然存放在用戶的當前工作目錄中,而輸出文件保存在另外的子目錄中。如圖1-4所示,將Outputdirectories設置為C:\TurboC2\ExOutput。這樣設置完成后,源程序仍保存在C:\Turboc2\exereise了H錄下,而目標文件和可執行文件將保存在C:\Turboc2\ExOutput子目錄下。修改該子目錄的方法:用上下移動光標鍵在目錄窗口中選中所需更改的目錄,按回車鍵,彈出ー個“輸出文件目錄對話框”,在此框內輸入正確的子目錄,按回車鍵確認后,對話框消失,則顯示新的目錄位置。第四行:TurboCdirectoワ指TurboC系統文件所在的目錄,系統顯示的是安裝時的默認目錄C:\TURBOC2,一一般可不修改它。特別提示:以上設置ー定要根據所用計算機的具體情況進行設置。根據TurboC安裝的位置不同,目錄名不一定是“TURBOC2”,可能為其他的目錄名,總之要與實際情況ー致。試ー試以自己的姓名為子目錄名,在適當的位置建立一個子目錄,然后將源程序的存放目錄和輸出文件的存放目錄改為所建立的新子目錄。保存TurboC的工作環境信息按上述方法設置好工作環境后,按ESC鍵返回Options菜單,然后選擇SaveOption菜單項,并按回車鍵,彈出ー個“ConfigFile”對話框,在框中默認的路徑下輸入TCCONFIGTC,并按回車鍵,系統在當前工作目錄下建立一個配置文件TCCONFIG.TC,《C語言案例教程》實驗指導與習題解答如圖1-5所示。FileEditRunCompileProject TTTCTTiWDebugFileEditRunCompileProject TTTCTTiWDebugBreak/watchLine1EditCol1InsertIndentTaCompilei*LinkerEnvironmentDirectoriesArgumentsIONAME.C ConfigFileC:\TURBOC2\TCCONFIG.TCMessageFl-HeIpF5-ZoomFb-SwitchF7-TraceF8-StepF9Fl-HeIpF5-ZoomFb-SwitchF7-TraceF8-StepF9-MakeJ-nenuNUM圖!-5啟動TurboC時,系統會從當前工作目錄和TurboC系統文件所在的目錄中尋找文件TCCONFIGTC,如果找到了就把它調入內存,且不再顯示TC的版本信息。(6)熟悉如何建立、打開、保存ー個C語言源程序源程序的輸入輸入源程序并建立源程序文件的過程,一般要調用編輯程序。能編輯源程序的軟件較多,例如Windows自帶的記事本、TurboC、VisualC++等,但記事本不具有編譯、連接功能,使用較多的是TurboC,TurboC自帶編譯器和調試器,有了它就可以建立、修改、調試和運行C語言程序,此外可以利用集成環境各個菜單、熱鍵進行程序調試。文件菜單File通過功能鍵F10選擇File菜單或按住Alt+F鍵將彈出文件File的下拉子菜單。如圖1-6所示。新建C源程序LoadF3PickAlt-F3NewSaueF2WritetoDirectoryChangedirOSshellQuitAlt-X圖1-6新建一個源程序步驟如下:File-New一LoadF3PickAlt-F3NewSaueF2WritetoDirectoryChangedirOSshellQuitAlt-X圖1-6先選擇File菜單的New菜單項,然后按回車鍵,編輯窗口被清空,光標自動定位在左上角(第1行,第1列),此時可以開始輸入和編輯源程序了。將源程序逐行輸入,如發現錯誤可隨時修改,在編輯過程中除用到鍵盤上的各個字符鍵外,還會用到各個編輯熱鍵(詳見附錄2所示),其中Del鍵和Insert鍵又用得較多。源程序輸入完成后應對程序認真檢查,并改正所發現的錯誤。這時應及時將源程序存盤,選中File菜單下的Save菜單項,按回車鍵后,彈出ー個如圖1-7所示對話框,要求指定新的文件名。由圖1-7可知對話框中有一個默認的文件NONAME.C,此時可以指定新的文件存放路徑和新的文件名。小技巧:如果路徑不變,只改變文件名,可以先按一下左右光標移動鍵“一”或“一”,然后刪除NONAME.C,輸入新的文件名,這要可以避免重新輸入路徑。圖1-7試ー試編寫程序:求半徑為2.0的圓面積。源程序如下:#include<stdio.h>main()(floats,r;r=2.0;s=3.14*r*r;printfTs=%f\iT,s);}源程序輸入后,按上述方法進行存盤,文件名為“Exl」.c”。為了便于管理C文件,C文件的名稱可按統ー的規范化方法命名,“Exl」.c”中的“Ex”表示“上機練習”,“1」”表示“第一次實驗ー第一個程序”,后面各次實驗テ文件名都是按此方法命名的。?編輯ー個已有的源程序重新編輯ー個已有的C源程序,選擇菜單File中的菜單項Load,彈出“LoadFileName"對話框,選擇默認的“*.C”,則列出所有當前目錄下的擴展名是“.C”的文件。利用光標移動鍵將亮條移到需要編輯的文件名處,按回車后,對應文件的內容將顯示在屏幕ヒ,供用戶編輯、修改。如果要打開的文件不在當前目錄下,則需要輸入盤符、路徑和文件名。編輯完成后保存文件,避免由于程序死循環或者其他意外情況而造成無法存盤。保存文件可選擇菜單File中的菜單項Save(將亮條移到Save處回車),也可以直接按F2鍵,將文件存盤。對于修改的源程序,如果耍改用其他的文件名保存,則可選擇菜單File中的菜單項"Writeto",按回車鍵后彈出ー個“NewName”對話框。在框中輸入新的文件名或文件新的存放位置,然后按回車鍵,文件就會以新名存盤或在新的位置保存(原來的文件仍存在),編輯窗口中右上角便會顯示新的文件名。(7)熟悉如何編譯、連接和運行C程序?程序編譯程序全部輸入完畢或修改后,需要進行編譯,生成目標文件(擴展名為.obj),然后將目標文件再連接生成可執行文件(擴展名為.exe)。說明:為什么源程序不能直接執行而還要進行編譯呢?這是因為計算機不能識別高級語言程序,而只能識別用機器語言編寫的程序,所以用高級語言編寫的源程序,必須將它翻譯成機器語言后,計算機才能執行。這種將高級語言源程序翻譯成目標程序的過程稱為編譯過程,這種翻譯程序稱為編譯程序。編譯過程很復雜,編譯程序一方面要對源程序中的各語句進行識別和分析,最后翻譯成與之對應的機器語言指令;另一方面還要找出源程序中的錯誤。如果在編譯過程中發現源程序中有語法錯誤,則要顯示相應的錯誤信息,在這種情況下,必須重新調用編譯程序對源程序進行編輯修改,而修改后的源程序也必須重新進行編譯。這個過程可能要重復多次,直到編譯過程中沒有錯誤發生為止。編譯通過后,即生成相應的目標程序,它是由計算機能識別的機器代碼組成的。ー個完整的C程序可以由若干個函數模塊組成,而這些模塊可以存放在ー個文件中,也可以分別存放在不同的文件中,C編譯程序允許各模塊的文件分別編譯,具體內容參見附錄4,下面將介紹在TurboC集成編譯環境中如何編譯C程序。方法一:先編譯(選擇Compile/CompiletoOBJ)得到目標程序?.obj,后連接(選擇Compile/LinkEXEfile)得到可執行文件?.exe。方法二:一次完成編譯和連接(選擇Compile/MakeEXEfile)或按F9圖1-8中表示編譯后生成Exl」.OBJ。圖1-8如果沒有錯誤,將會提示編譯成功“Success”,生成目標程序,如圖1-9所示。若程序有錯,則在屏幕底部的“Message”窗口顯示出錯及警告信息,這時可進行修改,改完后,再重新進行編譯。屏幕上的編譯信息窗口包含以下信息:①最上方的Compiling表示是編譯階段的信息。
②第1行表示主文件名是EX1」.C。③第2行表示正在編輯的是文件EX1」.C。④以后幾行分別表示編譯的行數為7行,“警告"為〇個,“錯誤"為〇個。⑤倒數第二行表示占用的有效存儲空間為249KB。@最后一行表示編譯成功(Success),請用戶按任ー鍵以便繼續。圖1-9F7001700圖1-9F7001700?程序連接用戶編寫的程序一般都要調用ー些庫函數,例如數學函數、字符串函數、輸入輸出函數等,有時還要調用用戶自編的函數,但在源程序中調用這些函數時只給出函數名和有關參數,在編譯過程中不可能自動生成實現這些被調用函數的代碼。所以源程序文件經編譯后生成的目標程序還不能真正執行,還需要將被調用函數的代碼進行連接操作。所謂“連接”,是指將編譯生成的目標文件與被調用函數的目標模塊進行連接,最后生成計算機真正能執行的可執行文件。在連接的過程中,也要進行查錯,主要是檢查調用、各模塊之間的聯系,參數的傳遞以及存儲空間分配等方面的錯誤。如果發現連接錯誤,則要對有關源程序進行編輯修改,然后重新進行編譯和連接。在TurboC集成環境中進行連接的方法是:選擇菜單“Compile”中的菜單項“LinkEXEfile”,如圖1-10所示。如果沒有錯誤,將會提示連接成功“Success”,生成可執行程序,如圖1-11所示。屏幕上的連接信息窗口包含以下信息:①最上方的Linking表示是連接階段的信息。②第1行表示連接后生成的可執行文件名為EX1_1.EXE,③第2行表示將H標文件與LIB子目錄中的庫文件CS.LIB進行連接。
其他幾行與編譯信息窗U相似。圖1-10圖1-11程序連接還可以采用菜単“Compile”中的菜單項“MakeEXEfile”或菜單項“Buildair'o前者先判斷是否編譯過,如果未編譯,則先編譯后連接。后者無論程序編譯與否,都要先編譯再連接。程序運行源程序經過編輯、編譯和連接過程,并且無錯誤發生,最后生成可執行文件,且可以運行該可執行文件,得到所需要的結果。運行可執行程序有多種方法:ー是在DOS環境直接鍵入C程序的可執行文件名;二是在Windows的資源管理器內雙擊該可執行文件名;三是在C的集成環境下運行。這里只介紹第三種方法:在C的集成環境的操作界面下,選擇菜單Run中的菜單項Run且按回車鍵,如圖!-12所示,或者直接按Ctrl+F9組合鍵。如果源程序沒有編譯或連接,將先編譯、連接再運行,否則程序直接執行,程序運行結束后,系統又自動回到原狀態。
圖1-12雖然在C的集成環境下,對于ー個未編譯的程序,我們只要選擇運行“Run”命令,就可以完成編譯、連接、運行三個步驟,但是對于初學者,我們建議還是按照上述內容先選擇編譯,成功后再連接,最后選擇運行。這樣操作便于理解C程序的開發過程。此時如果發現運行結果不對,要進入編輯狀態,可按Alt+E使亮塊移到'‘Edit”處,也可以直接按F6,或者直接按回車鍵(對于連接錯誤不可行)。說明:在編譯過程中,雖然可以發現源程序中的大部分語法錯誤、連接錯誤,但不能保證發現程序中的全部錯誤,特別是不能發現程序中的邏輯錯誤,有時雖然沒有顯示錯誤信息,但運行結果仍然不正確或運行過程中出現異常情況,此時還需要對源程序進行編輯修改,然后再進行編譯、連接,直到運行結果正確為止。查看結果在TurboC2.0的集成環境下觀看運行結果的方法是:選擇菜單“Run”中的的菜單項"Userscreen"I如圖1-13所示,或者直接Alt+F5組合鍵,轉到用戶屏幕,程序運行的結果將顯示在用戶屏幕上,如圖1-14所示。按任一鍵返回TurboC集成環境的編輯窗口。圖!-13圖1-14?退出TurboC退出TurboC的集成環境,選擇菜單File中的菜單項Quit,或者直接按Alt+X組合鍵,退出TurboC的集成環境,返回到DOS提示符狀態。試ー試輸入以下源程序,然后進行編譯、連接、運行,最后查看運行結果。練習一:已知長方形的長為5,寬為3,求該長方形的周長1。(文件名為:exl_2.c)源程序如下:#include"stdio.h"main()(inta,b,1;a=5;b=3;l=2*(a+b);printfCl=%d",l);}注意:“ド即”じ,與“ビ的區別,不要輸錯。練習ニ:打印樓梯,同時在樓梯上方打印兩個笑臉。(文件名為:exl_3.c)源程序如下:#include<stdio.h>main()(intij;printf("\l\l\n"); /?輸岀兩個笑臉?/forti=l;i<n;i++){fbr(j=lア=ij++)prin氓"%c%c”,219,219);printf("\n");2.根據本次實驗所做的操作,編寫C程序的步驟總結如下:(1)輸入C語言源程序。(2)將輸入的程序保存在自己的子目錄中。(3)檢查已輸入的程序有無錯誤(包括語法錯誤和邏輯錯誤),如果有錯,及時改正。(4)進行編譯和連接(按F9),如果在編譯和連接過程中發現錯誤,屏幕上會出現“出錯信息”,仔細分析錯誤提示信息,根據出錯提示找到出錯位置和原因,加以改正,再進行編譯……如此反復,直到順利通過編譯和連接為止。(5)編譯和連接成功后,運行程序,并分析運行結果是否合理和正確。在運行時要注意輸入不同的數據時所得到的結果是否正確。(6)查看程序運行結果。三.實驗總結與書寫實驗報告(1)總結本次實驗完成情況,相關知識的掌握情況。(2)總結本次實驗編輯、編譯、連接、運行所取得的經驗。(3)分析本次實驗事現的主要錯誤最直接的原因,提出改進措施。(4)按附錄3的格式和要求書寫實驗報告。。實驗二C程序的調試與運算符--實驗目的.了解C程序的常見錯誤及其修改方法。.掌握C語言的基本數據類型,熟悉如何定義ー個變量,以及它們賦值的方法。.學會使用C語言的運算符以及包含運算符的表達式。.鞏固第1次實驗所學習的操作方法,進ー步熟悉C程序的編輯、編譯、連接和運行的步驟和方法。--實驗準備.檢查所用計算機的完好情況,發現問題及時報告。.啟動計算機,進入自己的工作子目錄,查看工作子目錄中的內容。.啟動TurboC,進入TurboC集成工作環境。三.實驗內容和步驟1.了解C程序的常見錯誤及其修改方法啟動TurboC后,選擇FilefLoad,找到第1次實驗曾編寫的程序exl」.c,加載該程序。exl」.c的程序代碼如下:main()/*①*/(/*②*/floats,r;/*③*/r=2.0;/*④*/s=3.14*r*r;/*⑤*/printfi(,,s=%f\nH,s);/*⑥*/I/*⑦*/按F10鍵,將亮條移至Compile處后回車,在下拉菜單中選擇CompiletoOBJ,此時系統顯示出默認的冃標文件名:exl_l.obj,按回車犍進行編譯,接著再進行連接。以上程序能順利地通過編譯和連接。下面有意地給程序設置?些常見的錯誤,觀察其編譯或連接出現的錯誤提示信息,以提高觀察能力和調試能力。(1)去掉第4行結尾的“;”,再一次編譯該程序,出現如圖2-1所示的編譯信息窗口。圖2-1所示窗口中間小窗口的信息的含義說明如下:①窗口最上方的“Compiling”表示當前是編譯階段的信息。②第1行表示主文件名是:EX1_1.C。③第2行表示正在編譯的文件是:EXl_l.Co由于只有一個主文件,所以與主文件名相同。④下面幾行表示編譯時行數為7行,“警告”為2個,“錯誤”為1個。所謂“Warnings(警告)”是指較輕微的錯誤,TurboC系統對此能夠容忍,仍然把有警告的程序生成目標文件和可執行文件,即程序編譯可通過,但不保證程序的運行結果正確。所謂“Errors(錯誤)”是指嚴重的錯誤,系統不能容忍,編譯不能通過。編譯系統對有錯誤的程序不生成目標文件和可執行文件,必須改正后重新編譯和連接。⑤倒數第2行表示占用的有效存儲空間為:249KB。⑥最后一行表示編譯存在錯誤,請用戶按任ー鍵繼續。圖2-1按任何一個鍵后,中間的編譯信息窗口消失,在屏幕下部的Message窗口中,顯示了具體的出錯信息和錯誤的位置,如圖2-2所示。圖2-2中Message窗口中出錯信息的含義說明如下:①第1行顯示正編譯的文件名:EX1_1.C?②第2行是出錯信息,指出源程核的第5行出現了一個錯誤,錯誤的內容是:uStatementmissing;infunctionmain"(主函數中的語句漏了一?個分號),從圖2-2中可以看到該行是以高亮度顯示的,同時在上部Edit窗口中源程序的第5行也是以高亮度顯示,這樣便于用戶對照檢查。我們可以發現該源程序中第4行的末尾漏了一個“;”,而此時高亮度標識卻在第5行,Message窗口中提示也是第5行,為什么兩者不一致呢?這是由于編譯系統在檢査第4行時,發現語句末尾沒有分號,但這時還不能判定該語句有錯,因為C語言允許把ー個語句分寫在兩行上。于是,編譯系統接著檢查第5行,看第5行的開頭有無分號,當發現第5行的開頭沒有分號時オ判定出錯,但此時的位置已是第5行了,所以報錯的行數為第5行。請注意,在看到出錯信息時,不能只簡單地從系統顯示的岀錯行數去找錯,應該連同《C語言案例教程》實驗指導與習題解答上下行ー起檢查。圖2-2③第3行是警告信息,錯誤的內容是:"Possibleuseof's'beforedefinition(在定義s之前可能已使用)”,出現這個警告信息的原因是:由于源程序中第4行漏了分號,造成變量r沒有被賦值。由于變量r沒有確定的值,第5行表達式“3.14*r*r"也就不能計算出確定的值,所以s也就沒有被賦值。第6行輸出語句中輸出s的值,沒有確定的值輸出,也就出現了警告信息。④第4行也是警告信息,錯誤的內容是:"‘r'isassignedavaluewhichisneverused(r被賦的值從未使用過)”。原因是該變量r出現在ー個賦值語句中,但直到函數結束都未使用過,所以警告信息出現在第7行。此時,高亮度仍然停在Message區的第2行,按回車鍵,激活上面的編輯窗口,光標停在第5行上,以便用戶修改。兩個窗口中的高亮度顯示行已恢復為正常顯示。在編輯窗ロ頂部用紅色顯示剛オ觀察的出錯信息,以便用戶對照修改,ー開始進行修改,頂部的紅色顯示即消失。修改錯誤:在源程序第4行末尾加一個”。再?次進行編譯,發現編譯成功,1個錯誤消失了,兩個警告也同時被排除,如圖2-3所示。按任何ー個鍵后,發現Message窗口中原有錯誤信息和警告信息消失了。(2)將源程序中第6行prin日語句內的雙引號去掉右邊的一半,再一次編譯,出現如圖2d所示的編譯提示信息,有1個警告,2個錯誤。按任ー?鍵后出現如圖2-5所示的出錯提示信息。圖2-5中Message窗口中出錯提示信息的含義說明如下:出現在第6行的第1個錯誤:"Unterminatestringorcharacterconstant(未終結的串或字符常量)”,編譯程序發現串或字符常量開始后沒有終結。由于printf語句括號內的字符串雙引號只有一半,也是沒有終結。圖2-3命令提示符ーtc圖2-4出現在第6行的第2個錯誤:"Functioncallmissing)infunctionmain(在主函數中函數調用缺少‘)')”,造成該錯誤的原因仍然是由于printf語句括號內的字符串雙引號缺少右半部分,所以調用輸出函數printf時,參數形式與函數原形不符。③出現在第6行的的警告也是表示‘s‘被賦以ー個從未使用的值。其實后面的1個錯誤和1個警告都是伴隨第1個錯誤而出現的。將printf語句括號內的字符串雙引號加上右半部分,,,,”后,再次編譯,系統沒有發現編譯錯誤,表示編譯成功。(3)將源程序主函數的結束標志“}”去掉,再次進行編譯,出現如圖2-6所示的編譯信息。按任一鍵后,出現如圖2-7所示的錯誤提示信息。圖2?5File EditLineRun_Compile ProjectOptions_File EditLineRun_Compile ProjectOptions_DebugColInsertIndentTabFillUnindent*”也星1以星EX1_1.Citch且旦至floats,r;r=2.0;s=3.14*r*rfloats,r;r=2.0;s=3.14*r*r;printf<Ms=zf\n0,sCompilingMainfile:EXERCISEヽEX1」.CCompiling:EDITOR->EX1_L.CTotalLinescompiled:7Warnings:0Errors:1e?1F701Availablememory:249KAvailablememory:249KErrors : Pressanyke圖2-6圖2-7中Message窗口中出錯信息的含義說明如下:出現在源程序第7行的錯誤:"Compoundstatementmissing}infunctionmain",其義是在主函數復合語句中漏掉了“ド。編譯程序掃描到源程序結束處,未發現結束標記“ド,很明顯是由于花括號不配對造成的,加上結束標記“ド,再次編譯,系統沒有發現編譯錯誤,表示編譯成功。(4)將源程序中“r*r”改為“「2",再次編譯,出現如圖2-8所示的編譯信息。按任ー鍵后,出現如圖2-9所示的錯誤提示信息。圖2-7命令提示符ーtct Run CompileProjectak/watchLine5mainO 二Edit Col13InsertIndentTabFillUnindent*C:EX1_1.Cfloats,r;r=2.0;s=3?14*r人2;printぐ’s=Nf",s〉CompilingMainfile:EXERCISE\EX1_1-CCompiling:EDITOR->EX1J.CTotalLinescompiled:7Warnings:2Errors:1.1F721Availablememory:249KErrors :Pressanuke圖2-8出現在源程序中第5行的錯誤:"Illegaluseoffloatingpointinfunctionmain(在主函數出現非法的浮點運算)”,產生這個錯誤的原因是由于將“r*r”寫成了“己2”,在C語言中“人”表示“按位異或”運算符,而不是表示求平方的運算符,只要將“「2”改為“r*r”,再次編譯便不會出現錯誤了。另外兩個警告與前面的相同,在此不再重述。(5)將源程序中printf改為print,再次編譯,系統沒有發現編譯錯誤,表示編譯成功。為什么將正確的函數名printf改為錯誤的函數名print,編譯過程卻沒有出現錯誤呢?原因是編譯時只檢査源程序中各語句的語法錯誤,函數名print符合C語言的命名規則,所以沒有出現錯誤。但由于輸出函數是標準的庫函數,其函數名是預定義的,必須與TurboC頭文件中函數說明的函數名?致,否則在連接階段仍然會出現錯誤,具體分析見下ー步的連接。圖2-9下面進行連接操作,連接時仍然保留錯誤的輸出函數名print,其他錯誤全部修改成正確的。程序編譯后,進行連接。方法是選擇菜單“Compile”中的菜單項“LinkEXEfile”,如果沒有錯誤,將會提示連接成功“Success”,生成可執行程序。程序連接還可以采用“Compile”菜單項目中的“MakeEXEfile”命令或“Buildah”命令。前者先判斷是否編譯過,如果未編譯,則先編譯后連接。后者無論程序編譯與否,都要先編譯再連接。按F10鍵后選擇Compile-LinkEXEfile,然后按回車鍵,進行連接,出現如圖2-10所示的連接信息,按任一鍵后,出現如圖2-11所示的錯誤提示信息。從圖2-11可知出現了一個連接錯誤,錯誤的內容是:“Undefinedsymbol'jrint'inmoduleEX1JC”(在EX1J.C模塊中符號'_print,沒有定義)”,原因是標準輸加函數名printf寫成了printo對于這類錯誤,首先需要查找該符號,如果是變量,需要判定是否定義或者書寫是否有誤,如果是庫函數,則要判定書寫是否正確(注意大小寫不同)或者是否在程序中包含了(即include)該庫函數所在的頭文件。把函數名print改成printf,再次連接便成功了。注意:連接之前一定要先進行編譯,如果沒有編譯就連接會出現以下錯誤:“Unabletoopeninputfile:EXlJobj”。特別說明:如果連接時,出現如圖2-12所示的錯誤信息,則說明需要修改TurboC的環境設置。修改方法參見第1次實驗的操作說明,在此不再重述。
圖2-10圖2-11接下來運行程序,生成可執行文件后,就可以運行了。在C集成編譯環境的操作界面下,選擇菜單"Run”中的菜單項“Run”運行程序,或者直接按Ctrl+F9組合鍵運行程序。程序運行結束后,系統又自動回到原狀態。程序運行過程中,如有鍵盤輸入語句(scanf語句),屏幕顯示會切換到用戶屏幕,等待用戶輸入數據,輸完數據后,按回車鍵,屏幕顯示切換到TurboC編輯窗口。運行時如果不符合要求,可以采用單步執行(使用功能鍵F7或F8)的方法。如果需要在整個程序執行過程中觀察變量值的變化情況,可以利用“Break/Watch”中的“Addwatch”鍵入需要的變量名。如果只是在程序運行的某ー個位置觀察某個變量的值時,可以選擇“Debug”中的“Evaluate”命令輸入變量名。以上這些方法,有助于用戶了解程序流程和變量的變化,從而找到算法或程序的錯誤或漏洞。圖2-12特別提示:使用scanfO函數時,如果變量名前遺忘了取地址符“&”,編譯將會通過,但是最后輸出的結果將會不正確。所以如果結果與期望不符,首先要檢查scanf()函數的地址表列是否正確、scan")和printf()中的格式符是否匹配、從鍵盤中輸入數據是否與scan")輸入格式一致。最后查看程序運行結果,選擇菜単“Run”中的菜單項“Userscreen”,按回車鍵,屏幕顯示切換到用戶屏,顯示程序運行結果。看完結果,按任ー鍵返回TurboC編輯窗口。試ー試(1)將程序exl」.c中的第3行的単精度數據類型名float改為int,進行編譯觀察提示信息,改正后再次編譯,觀察提示信息。(2)在主函數名main()后加上一個“;”,進行編譯觀察提示信息,改正后再次編譯,觀察提示信息。(3)去掉第3行末尾的分號“;”,進行編譯觀察提示信息,改正后再次編譯,觀察提不信息。(4)將第6行輸出語句括號內的“%f”改成“%d”,進行編譯觀察提示信息,改正后再次編譯,觀察提示信息。(5)將第3行變量s的名稱改為大寫字母“S”,進行編譯觀察提示信息,改正后再次編譯,觀察提示信息。2.學會使用C語言的運算符以及包含運算符的表達式先輸入以下源程序,然后進行編譯、連接與運行。(文件名為ex2」.c)main()(inti,j,m,n;i=8;j=10;m=++i;n=j++;printR"i=%dj=%d,m=%d,n=%d\n”,i,j,m,n); /*i=9,j=l1,m=9,n=10*/(1)運行程序,觀察輸出的結果,注意i、j、m、n各變量的值。(2)將第6、7行改為:m=i++;n=++j;運行程序,觀察輸出的結果,注意i、j、m、n各變量的值,輸出結果應為:“i=9,j=ll,m=8,n=ll(3)將程序改為:(文件名為ex2_2.c)main()(inti,j;i=8;j=10;printf(6ti=%d,j=%d\n”,i++,j++);/*i=8,j=10*/i=8;j=10;printfCi=%d,j=%d\n",++i,++j);/*i=9,j=ll*/運行程序,觀察輸出的結果,注意兩次輸出的值。四.實驗總結與書寫實驗報告(1)總結本次實驗完成情況,相關知識的掌握情況。(2)總結本次實驗編輯、編譯、連接、運行所取得的經驗。(3)分析本次實驗出現的主要錯誤最直接的原因,提出改進措施。(4)按附錄3的格式和要求書寫實驗報告。
實驗三順序結構程序設計—.實驗目的.掌握C語言中賦值語句的使用方法。.掌握鍵盤輸入輸出語句。.掌握各種類型數據的輸入輸出方法,能正確使用各種格式符。.注意不同數據類型所對應的格式符及其特點。實驗前的準備.檢查所用計算機的完好情況,發現問題及時報告。.啟動計算機,進入自己的工作子目錄,查看工作子目錄中的內容。.啟動TurboC,進入TurboC集成工作環境。三.實驗內容和步驟.驗證性實驗輸入已編好的源程序,然后進行編輯、編譯、連接和運行,觀察運行結果。(1)隨機產生兩個三位自然數,并求其平均值。(文件名為ex3」.c)源程序如下:#includeconio.h"ttinclude"math,h”main(){intx,y;源程序如下:#includeconio.h"ttinclude"math,h”main(){intx,y;floataver;clrscr0;x=rand()%900+100;y二rand()%900+100;aver=(x+y)/2.0;/?掛頭文件?//?定義變量?//*連續3行:處理數據?/printf("\nx=%d,y二%d,aver二%f”,x,y,aver); /?輸出結果?/(2)從鍵盤輸入ー個字母,如果是大寫字母,則輸出它對應的小寫字母;如果是小寫字母,則輸出它對應的大寫字母。(文件名為ex3一2.c)源程序如下:#includeconio.h"main(){charchi,ch2;clrscr0;scanf("就",&chl);ch2=chl>=A'&&chl<=Z>?chl+32:chl-32;printf(*\n%c*,ch2);).改錯性實驗輸入已編好的源程序,源程序中包含有錯誤,先對源程序進行編譯和連接,然后根據提示信息,修改程序中的錯誤,經過多次反復修改ー編譯ー連接,直到編譯、連接成功。最后運行程序,輸出正確結果。(1)輸入兩個整數給變量x和y,然后輸出x和y,在交換x和y中的值后,再輸出。程序如下:(文件名為ex3-3.C)include"stdio.h" /?提示:有3處錯誤?/main()(intx,y;printf("輸入x和y:\n");scanf("%d%d",x,y);printfi["x=%dy=%d\n",x,y);t=x,x=y,y=t;print("x=%dy=%d\n",x,y);}(2)求兩數平方根之和。例如:輸入12和20,輸出結果為:產7.936238。(文件名為ex3_4.c)#include<stdio.h> /?有6處錯誤?/main()|doublea,b,y;scanf,&a,&b);y=sqr(a)+sqr(b);printff'尸%f\n",y);}.設計性實驗學習編寫程序,根據要求編寫正確的程序并調試成功。(1)設圓柱的半徑X1.5,圓柱高h=3,求圓柱的體積。要求用scanf函數輸入數據,用printf函數輸出結果。輸出時要有文字說明,取小數點后兩位數字。(文件名為ex3一5.C)(2)編寫程序,用getchar函數讀入兩個字符給cl、c2,然后分別用putchar函數和printf函數分別輸出這兩個字符。(文件名為ex3_6.c)四.實驗總結與書寫實驗報告(1)總結本次實驗完成情況,相關知識的掌握情況。(2)總結本次實驗編輯、編譯、連接、運行所取得的經驗。(3)分析本次實驗出現的主要錯誤最直接的原因,提出改進措施。(4)按附錄3的格式和要求書寫實驗報告。實驗四選擇結構程序設計—.實驗目的.了解C語言表示邏輯量的方法。.學會正確使用邏輯運算符和邏輯表達式。.熟練掌握if語句和switch語句。.結合程序掌握ー些簡單的算法。實驗前的準備.檢查所用計算機的完好情況,發現問題及時報告。.啟動計算機,進入自己的工作子目錄,查看工作子目錄中的內容。.啟動TurboC,進入TurboC集成工作環境。三.實驗內容和步驟1.驗證性實驗輸入已編好的源程序,然后進行編輯、編譯、連接和運行,觀察運行結果。(1)輸入x,按下列公式求分段函數g(x)的值。(文件名為ex4_l.c)"0.75*x (x<-40)g(x尸イ046*x+3.7 (lOWxく20)、1.5*x-6 (x>20)程序如下:voidmain()(floatx,y;scanf(K%f*,&x);if(x<-40)y=0.75*x;elseif(x<=20)y=0.46*x+3.7;elsey=1.5*x-6;printfC'g(%f)=%f\nM,x,y);}(2)有3個整數a、b、c,由鍵盤輸入,輸出其中最大的數。(文件名為ex4_2.c)main()inta,b,c,temp,max;printf(”請輸入3個整數:M);scanfi(,,%d%d%d",&a,&b,&c);temp=(a>b)?a:b;max=(temp>c)?temp:c;printf("3個整數中最大數是:%d\nH,max);}(3)輸入學生某科成績,輸出其等級。成績[90,100]為A等,成績[80,89]為B等,成績[60,79]為C等,60分以下為D等。程序!:用if語句(文件名為ex4_3.c)^include“conio.h"main(){intscore,x;chargrade;clrscr();printf("\nPleaseinputscore[0,100]:");scanf("籾”,&score);if(score>=90)printf("A");elseif(score>=80)printf("B");elseif(score>=60)printf("C");elseprintf("D");}程序2:用switch語句(文件名為ex4_4.c)#include"conio.h"main()(intscore,x;chargrade;clrscr();printf("\nPleaseinputscore[0,100]:");scanf("%d",&score);x=score/10;switch(x){case10:case9:printf("A");break;case8:printf("B");break;case7:case6:printf("C");break;case5:case4:case3:case2:case1:case0:printf(MDn);break;default:printf(zzInputError!");.改錯性實驗輸入已編好的源程序,源程序中包含有錯誤,先對源程序進行編譯和連接,然后根據提示信息,修改程序中的錯誤,經過多次反復修改ー編譯一連接,直到編譯、連接成功。最后運行程序,輸出正確結果。(1)編寫程序,輸入一位學生的生日(年:y0>月:m0、日:d0),并輸入當前的日期(年:yK月:ml、日:dl),輸出該生的實足年齡。請填空(文件名為ex4_5.c)#include<stdio.h>main()(intyO,mO,dO;intyl,ml,dl,age;scanf(M%d%d%dM,&y0,&m0,&d0);scan出"%d%d%d",&yl,&ml,&dl);age=yl-yO;if(ml<m0)age—;printf(”age=%d\n",age);}(2)下面這個程序要求用戶輸入兩個整數和一個字符。字符必須是屮、ビ、陽、ア其中的ー個。然后程序輸出兩數作相應運算的結果。例如:輸入123,34,+程序輸出123+34=157。(文件名為ex4_6.c)#include<stdio.h>/?提示:有3處錯誤ッmain()(floatdl,d2,result;charop;scanfi(,,%f%f%c,,,&dl,&d2,&op);switchopcase屮:result=dl+d2;break;caseresult=dl-d2;break;case???.result=dl*d2;break;case7fresult=dl/d2;break;defaulterror=l;if(error)printf("運算操作符輸入有錯!ッ;elseprintfl["%.2f%c%.2f=%.2f\n",d1,op,d2,result);.設計性實驗學習編寫程序,根據要求編寫正確的程序并調試成功。(1)火車站托運行李,從甲地到乙地,按規定,每張客票托運行李不超過50千克,按每千克1.35元計算運費。如果超過50千克,超過部分按每千克2.65元計算運費。編寫程序計算托運費。(文件名為ex4_7.c)(2)個人所得稅問題。規定:1000元以下不收所得稅,1000到1500元之間部分收5%,1500到2000元之間部分收10%,2000到2500元之間的部分收!5%,2500元以上收20%〇月收入由鍵盤輸入,輸出個人收入所得稅。(文件名為ex4一8.c)四.實驗總結與書寫實驗報告(1)總結本次實驗完成情況,相關知識的掌握情況。(2)總結本次實驗編輯、編譯、連接、運行所取得的經驗。(3)分析本次實驗出現的主要錯誤最直接的原因,提出改進措施。(4)按附錄3的格式和要求書寫實驗報告。實驗五循環結構程序設計--實驗目的.熟練掌握用while語句,do-while語句和fbr語句實現循環的方法。.掌握在程序設計中用循環的方法實現ー些常用算法。.對循環語句的三種形式進行分析、比較,以掌握各種形式的共同之處及其特點。實驗前的準備.檢查所用計算機的完好情況,發現問題及時報告。.啟動計算機,進入自已的工作子目錄,查看工作子目錄中的內容。.啟動TurboC,進入TurboC集成工作環境。三.實驗內容和步驟.驗證性實驗輸入已編好的源程序,然后進行編輯、編譯、連接和運行,觀察運行結果。(1)求100?200間的全部素數(文件名為ex5_l.c)include"stdio.h"include"math.h"voidmain()(intm,k,i,n=0;for(m=101;m<=200;m=m+2)(if(n%10=0)printf("\n");k=sqrt(m);fbr(i=2;i<=k;i++)if(m%i==0)break;if(i>=k+l)(printf(H%d",m);n-H-;(2)程序功能是分別計算1至10之間奇數之和及偶數之和,分析程序執行結果。(文件名為ex5_2.c)includenstdio.hM
mainOintx,y,z,k;x=z=O;for(k=l;k<10;k+=2){x+=k;y=k+l;z+=y;/*k取奇數:1mainOintx,y,z,k;x=z=O;for(k=l;k<10;k+=2){x+=k;y=k+l;z+=y;/?奇數k之和放于x變量中?//*y比x大1,故取偶數:2、4、6、8、10*//?偶數y之和放于z變量中?/printf("\nx=%d,z=%d”,x,z);)(3)求自然對數的底e的值,直到某項值小于104為止。(文件名為ex5-3.c)計算公式是:e=ld 1 1 P 1!2!3!#includeconio.h*mainO{longt=l;intn=l,i;floate=l;clrscr();whiled.0/t>=le-6){t=l;for(i=l;iく=n;i++)t?二i;e+=l.0/t;n++;printf("e=%f",e);}(4)鍵盤輸入的任意正整數,求其逆數。所謂“逆數”是指將原來的數顛倒順序后形成的數。如輸入1986時,輸岀6891。(文件名為ex5_4.c)ttinclude'conio.h"mainO(intdigit,n=0;longx,y=0;clrscr0;scanf("%ld",&x);do{digit=x%10; /*取出低位數字?/y=y*10+digit; /? 合并數字 ?/n++; /*統計位數*/x=x/10; /?移動數字?/}while(x);printfy);).改錯性實驗輸入已編好的源程序,源程序中包含有錯誤,先對源程序進行編譯和連接,然后根據提示信息,修改程序中的錯誤,經過多次反復修改ー編譯ー連接,直到編譯、連接成功。最后運行程序,輸出正確結果。(1)函數ftinr功能是:統計不超過ー個整數m(包括m且m23)的素數個數。(文件名為ex5_5.c)#include<stdio.h> /?提示:有3處錯誤?/#include<conio.h>intfun(m){inti,k,num=0;for(i=3;i<=m;i+=2){k=2;while(k<=i&&(i%k)==0) k++;if(i=k)num++;}returnnum;}main(){intn;scanf("%d",&n);printf("\nResult=%d",fun(n));)(2)下述程序中,函數firn的功能是:判斷ー個整數是否是素數,若是返回1,否則返回〇。(文件名為ex5_6.為#include<conio.h> /?提示:有3處錯誤?/#include<stdio.h>intfun(m)intk=2;while(k<=m&&(m/k)) k++;if(k=m)return1;else return0;}main()(intn;scanf('*%d",&n);if(ftin(n)) printffYES\n");else printfT'NO!\n");}(3)下列程序中,fun函數的功能是:讀入ー個整數,計算如下公式:t=l?l/2?l/3?l/4?……-1/m的值。(文件名為ex5_7.c)例如,若輸入5,則輸出?0.28333。#include<conio.h>/?提示:有4處錯誤?/#include<stdio.h>doublefun(intm)(doublet;inti;for(i=2,i<=m,i卄)t=1.0-1.0/i;return(t);}main()(intm;scanf(H%dH,&m);printf(H\ntheresultis%If*,fun(m));}3.設計性實驗學習編寫程序,根據要求編寫正確的程序并調試成功。(1)假設有36塊磚,36人搬,男搬4,女搬3,小孩2人搬ー塊。要求一次全部搬完,問男、女、小孩各多少人?(文件名為ex5_8.c)(2)斐波那數列的前幾項是:1、1、2、3、5、8、13、21、34……。編程輸出該數列的前13項。每行給出5個數。(文件名為ex5_9.c)(3)編寫程序,ー張100元鈔票換成面值分別為5元、1元、0.5元的三種鈔票共100張,每種鈔票至少1張,則每種面值的鈔票各多少張?有哪幾種可能的兌換方案?(文件名為ex5_10.c)四.實驗總結與書寫實驗報告(1)總結本次實驗完成情況,相關知識的掌握情況。(2)總結本次實驗編輯、編譯、連接、運行所取得的經驗。(3)分析本次實驗出現的主要錯誤最直接的原因,提出改進措施。(4)按附錄3的格式和要求書寫實驗報告。《C語言案例教程》實驗指導與習題解答實驗六數組與結構--實驗目的.掌握ー維數組和二維數組的定義、賦值和輸入輸出方法。.掌握字符數組的使用。.掌握與數組有關的算法。.掌握結構體類型變量的定義和使用。二.實驗前的準備.檢查所用計算機的完好情況,發現問題及時報告。.啟動計算機,進入自己的工作子目錄,査看工作子目錄中的內容。.啟動TurboC,進入TurboC集成工作環境。三.實驗內容和步驟.驗證性實驗輸入已編好的源程序,然后進行編輯、編譯、連接和運行,觀察運行結果。(1)某數列前兩項為0、1,以后各項均為前相鄰兩項之和,輸出該數列前20項。(文件名為ex6_l.c)^include"conio.h"main()(longi,x[20];clrscr();x[〇]=0;x[l]=l;for(i=2;i<20;i++) /?尚剩18項?/x[i]=x[i-l]+x[i-2]: /?產生各項?/for(i=0;i〈20;i++) /*輸岀數列*/printf(*%ld\t*,x[i]);}(2)從鍵盤輸入N個自然數,然后按升序進行排列。程序1:用“比較法”(文件名為ex6_2.c)^include"conio.h"#defineN10main()inta[N],t,i,j;clrscr();for(i=0;i<N;i++) /*本循環輸入N個原始數據?/scanf&a[i]);for(i=0;i<N-l;i++) /*本循環完成排序*1for(j=i+l;j<N;j++)/*x[i]與它后邊所有元素逐一比較,大則交換?/if(a[j]<a[i]){t=a[j];a[j]=a[i];a[i]=t;}for(i=0;i<N;i++) /?輸出排序后的數組?/printf(*%d*,a[i]);)程序2:用“冒泡法”(文件名為ex6_3.c)#include'conio.h"#defineN10mainO(inta[N],t,i,j;clrscr();for(i=0;iくN;i++)scanf(線d”,a+i);for(j=0;j<N-l;j++)for(i=0;i<N-j;i++)if(a[i]>a[i+l]){t=a[i];a[i]=a[i+l];a[i+l]=t;}for(i=0;i<N;i++)printf(*%d”,a[i]);)(3)輸入一個字符串,判斷它是否是回文(對稱)。如abcdcba是回文。(文件名為ex6_4.c)源程序如ド:ftinclude"conio.h"^include"string,h”mai
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 負載姜黃素的膠原蛋白肽-海藻酸鈉緩釋凝膠的構建及性能研究
- 體育場館承包合同
- 內鏡室人才引進與培養計劃
- 《語文閱讀理解技巧指導:文言文閱讀教學設計》
- 書法文化體驗活動計劃
- 2025年無人機駕駛員職業技能考核試卷(無人機電力巡檢)
- 2025年攝影師職業技能鑒定試卷:攝影器材租賃合同風險防范試題
- 2025年監理工程師職業能力測試卷:監理工程師職業道德試題卷
- 網絡廣告位投放使用合同
- 建筑工程材料供應進度保障措施
- DB33-1036-2021《公共建筑節能設計標準》
- 巖芯鑒定手冊
- 快速排序算法高校試講PPT
- 甘肅歷史與甘肅文化
- 工程勘察設計收費標準
- 高邊坡施工危險源辨識及分析
- SAP航空行業數字化轉型解決方案(優秀方案集)
- 江蘇工業企業較大以上風險目錄
- 《村衛生室管理辦法(試行)》課件(PPT 49頁)
- 監理質量評估報告(主體分部)
- 鍋爐爆炸事故演練方案(模板)
評論
0/150
提交評論