C語言程序設計上機指導書_第1頁
C語言程序設計上機指導書_第2頁
C語言程序設計上機指導書_第3頁
C語言程序設計上機指導書_第4頁
C語言程序設計上機指導書_第5頁
已閱讀5頁,還剩31頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、序:指導原則及VS2005環境中編譯C程序一、熟悉C語言集成開發環境二、掌握基本數據類型在程序中的正確應用三、運算符與表達式的使用四、掌握順序結構程序設計五、掌握順序結構與輸入輸出函數六、選擇結構程序七、選擇結構程序填空八、循環結構程序設計(一)九、循環結構程序設計(二)十、嵌套循環十一、一維數組十二、數組(二)十三、數組(二)十四、函數(一)十五、函數(二)十六、函數(三)和預處理十七、指針(一)十八、指針(二)指導原則促進學生針對實際問題,用所學C語言知識編寫符合規范的源程序代碼,在某一集成開發環境下盡一切調試技能調試程序,并對運行結果進行分析處理,得出正確結論,解決好實際問題。更快更好地

2、掌握所學知識,技能和軟件的一向開發方法目的:1,通過上機實驗,加深對教材內容的理解,特別是一些語法規定,熟練掌握各種語法規則。2,通過上機實驗,熟悉某個C語言集成開發環境。掌握集成開發環境下程序的編輯、編譯與連接、運行的完整過程3,通過上機實驗,要學會調試程序。能根據系統給出的“出錯信息”,判斷錯誤所在,并修改錯誤,使程序正確運行。要求:1 ,復習與本次實驗相關的教學內容2 ,了解集成開發環境的操作步驟3 ,準備好實驗內容。對于編程題,一定要自己動手,書寫工整,并人工檢查無誤后才能上機實驗,以提高上機效率。4 ,要準備好調試和運行程序時所需的數據。5 ,對運行中可能出現的問題事先作出估計,并對

3、程序中有疑問的地方作上標記,以便在運行時給予注意。并在程序調試時,把系統給出的出錯原因,解決方法等記載在源程序之后;程序運行結束后,把運行結果也記錄下來。6,每個實驗應獨立完成,對實際問題所編寫的源程序需寫出完整實驗的報告。VS2005編譯環境中編寫運行C程序TurboC發布于1989年,對歷史并不太長而發展卻神速的IT業來說,確實是古董級的軟件了。但它幾乎是最后一個專門為C語言設計的開發環境,具備學習C語言的一切條件,沒有任何非C語言的東西干擾初學者,所以一直被各大高校的C語言課堂采用。C+的發展使C+的開發環境大行其道。因為C+!乎完全兼容C語言,兩者無論編譯器還是編輯器、調試器都可以用同

4、一套程序實現,而且C+共享C的庫函數,很多軟件還是用兩者混合編程實現,所以基本所有的C+環境都同時支持C語言。美國微軟公司出品的VisualC+(以下簡稱VQ是Windows平臺上最流行的C/C+集成開發環境。從1993年發行版本開始,歷經多年錘煉,于2003年推出最新的版本(VisualC+.NET2003)。VC系列產品具有穩定而強大的IDE開發環境,以及豐富的調試功能,微軟于2005年底發布VisualStudio2005。下面將介紹在VS2005下如何開發C語言程序。1.編輯、編譯與運行下面以創建一個判斷是否是閏年的程序來演示如何使用VS2005開發C程序。1.啟動VS2005,新建一

5、個項目,新建方法有以下幾種:A:在VS2005默認的“起始頁”有創建項目一項,單擊“項目(P)”即可,如圖1所示延拓JUStudio-IBI x|cfitnnu劃、LJstudio WKA09M當前的融間輾音H堂無總&史的l.rnrtH可量小可E要史律卻岫斷道,語西文具重中,中擊'斗«定義市口 I肆涮用油由器|三1褊出開蛤MicrawftVisual Studio2005二3I圖1,3=1二4一白琳孫喟二調;1,/一! C «=1 t- Hrr. T-目王卜貓田eq:用日 J FUjSCE). 通口 El, , J Fl送CM,,B:文件>新建>

6、項目,或者使用快捷鍵“Ctrl+shift+N”中修日|.嗝St口 飄底壯 <*口 詢*試加 *l=nw 踞3SJ尋仙打用FM IWACO.CEpltSMfE-HM文件g(XriF從現有廣硼包用e m但:,領建一個 “貨目2005金幫偉在,U cmi+stirr的注目«al Stu dla并寵人 的痛打用聆.t 文 T(尸:信用市可5Bft-CrsZOOSCi-aniDlphM1月月M網玷入,”EEpj.戶】玷(w).當*g由q|函*蛀*室帕】nMrkk呼聲k ,日EflK 注碗f工口,善也上孑,wiSUilC+的新增功騁+-aJJIfjJWftW®/鈿uH;+4EE

7、正在土五匕七十曹桓,小EPI*值,T注持電星2.由步驟1可以得到以下窗口,在項目類型中選擇 程序”,然后在“輸入名稱”提示處寫項目名稱,如圖Visual C+ + ,在右側模板中單擊“ Win32控制臺應用31所示:如:LeapYear,名稱下方的"位置”可以點擊“瀏覽”按鈕來更改。然后點擊“確定”或者“回車鍵”即可。然后出現“歡迎使用Win32應用程序向導”對話框,單擊“下一步”。如圖32示:單擊“下一步”出現以下對話框,選擇“空項目”,單擊“完成”。如圖33所示:3.在窗口的左側默認出現“解決方案資源管理器,解決方案LeapYear”一欄,下面列出LeapYear,并包括頭文件和

8、源文件及資源文件三個文件夾。如圖4所示'LtdpYedr-MicrosoftVisualStudio文件編輯后視圖M項目®生成®調試工具惻戰窗口值),司圖昌。|£金1»DetugWin;4.新建一個C文件:如圖5所示:在“源文件”上點擊右鍵,在出現的“添加”欄目上單擊“新建項”,這里也可以添加現有項,即已經用別的編輯器寫好的C代碼源程序可以通過此選項添加到LeapYear解決方案來>,這里采用“新建項”。4.單擊“新建項”,出現如下的對話框,在左邊“類別”一欄選擇“代碼”,右側的“模板”中選擇“C+文件”,在下邊名稱一欄輸入:“”,這里要注

9、意:文件的后綴應該是“.C”,不能是默認的cpp文件。點擊添加即可。補充一點:如果不小心沒有寫“.C”后綴,可以這樣處理:在建女?的cpp文件右鍵單擊,重命名為“.C”文件,也可以選擇“從項目中排除(J)”這一項把該文件去掉,然后新建一個。如圖7所示。,D»t>uc解決方案資源首理器-解決方案二日Lcap¥ear.cpp 起始頁解決方至I日叩出1Tl個項目)蘭l革LeapYearLJ頭文件-;源文件,.一.,的一資稅3 口”打開打開方式(曲查者代鵑(Q編暹(建從項目中排除EttJ(D邕制M卷除M重命名(納屬性®5 .在出現的空白處編寫C代碼即可。如下圖所示:

10、F7) 也可6 .寫好代碼后單擊“編譯”,左邊那個是只編譯當前文件,右邊那個編譯全部文件(快捷鍵以在菜單欄“生成”>“生成解決方案”或者別的可選擇項目。文件編輯®視國的項目的生威調試工具潮試窗口(必社(X©幫助M/ 習信 X #;口蟲.蚤底I事事甚卜 Debug早X總-Win32解決方案資源苜理器-解決口手理刎K相flYLOG.h FiXtFte3.E 4酸由IM 匚西措I塞心口Yehjc噴臺聞二)而麗窠,與¥比力個項目)b jj LedpYear 口頭義件 一,蹴:件Leap Year, c MYLOG.hT extHleS, .c(全局箝圍)3 #ind

11、ud& Stdio.Smclude stdlib. h函數聲明ini IzLepY ear (const int);=mainO編譯TitTmGUT'7 .在編譯完成之后,我們就可以按“運行(ctrl+F5)”或者“調試運行(F5)”來運行我們的程序了。程序會提示:“此項目已過期,要生成它嗎”的對話框,單擊“是”。在以后的使用中,我們可以直接按“運行”或“調試運行”而不需要單獨進行編譯,因為當你按“運行”或“調試運行”的時候它會自動的檢測程序是否需要重新編譯,如果需要,則會彈出一個對話框詢問你是否同意重新編譯,你只需在此時點擊“Yes”,它就會自動重新編譯、連接程序后再運行,非

12、常方便。另外要注意:信息輸出窗:系統用來輸出一些信息。比如上面在執行編譯時,系統就會輸出編譯的結果,一般是編譯器在程序中發現的錯誤或者一些警告。如果編譯器沒有發現錯誤(error)及警告(warning),那么你會在最后一行看見“0error(s),0warning(s)”的字樣。注意:在寫程序時應當認真而小心的對待每一個warning,最好把它們都當作error對待。C D,e 群:5士 乳:dw/二口式?口匚 5次盯 q: tnU.Tvo'-qhuE'La qf±«r. vitt ; :4ial wnr LR41IEQ:陽生成 m志,呆存在 (b Lil

13、t J /c、"二13»edI* *nd St:ti糖Y Igqpi-nnal Eludiu £0Q£rr2jccl=''Ltaf7*rM=liif3'iiLdLoF;- Kn 15 Umtear - 2 ,、掉深,方可警告=;=:-=zz生理 ii E她動. I匕見時“ u量班.u巴桃過 ="二代硼e%方口片口胸冊器上拓出上或WR2.調試技術用VS2005進行程序的調試是非常方便的,我們可以在任一行設置一個斷點,當程序執行到斷點所在的行時就會暫時停住,此時,你可以單步執行程序(即一次只執行一條語句),并查看此時各種變量

14、的值,下面我們就來看看如何使用VS2005的調試功能。設置斷點以剛才程序為例,設置一個斷點,如下圖所示:方法有下面圖示幾種,可以參考,建議使用快捷鍵“F9”啟動調試使用“F5”。為力力力,“F7+三口后39國:窗曲13b._11倍所貳引啟動丁武丁者'F.在左辿欄為單擊鼠標左便,即可謨苣新點VW行后資.'-r斗伶:4於是2.光標該行,按嚇9了追墾慢白為輸人颼 迸引言法性檢查 a e uf&* e ar ):Ll iat f3,工具程網試一單去,切換新點”餐次請奇點:再次單擊,或者"9,if(ytarM0UyecrK.IDOI"D)11D)Stlbret

15、urn.0;調試運行現在我們點擊菜單欄上的“調試運行按鈕(F5)”,這時程序將自動編譯、連接、運行,然后停在我們所設定的斷點的行上。設置斷點后,我們可以看見當前行的最左端有一個暗紅色的大圓點,具體圖略,同學們可以單擊“菜單欄”調試。一一對照下面的介紹查看,也可以在菜單欄下面的“調試欄”查看。繼續運行:表示繼續執行程序,直到碰見下一個斷點時為止重新運行:表示重新從頭開始運行程序停止調試:表示中止現在的調試界面,返回到代碼編寫界面逐語句:單步執行命令。如果下一條即將執行的語句是一條函數調用語句,那么就進入到函數體內逐過程:單步執行命令。如果下一條即將執行的語句是一條函數調用語句,它不會進入函數體內

16、,而是直接執行整個函數,并停到函數返回后的第一條語句上快速監視:它可以允許程序員自定義想要監視的變量,并在“指定變量顯示區”顯示調試程序后,程序提示輸入值:這里輸入2000,回車,現在程序已經在設置的斷點處停住了,最左端的黃色箭頭指示著即將運行的下一條語句。這個時候可以看見左下方“自動窗口”中有year變量值為“2000”,如下圖所示。點擊工具欄”逐語句或者F11”,由于這條語句會調用函數IsLeapYear()”,因此它會進行到“IsLeapYear()”函數體內去執行,黃色光標指示到函數內。可以反復執行“單步執行命令”(即工具欄上的“逐語句(F11)”、“逐過程(F10)”按鈕)來觀察程序

17、的流程,調試中途發現問題不想再調試,可以“終止調試”,也可以在“斷點管理”處“刪除斷點”,“刪除所有斷點”,“禁用所有斷點”。請同學們實踐。快速監視通過“調試”菜單上的“快速查看”我們可以設定我們想要監視的變量,并在“監視顯示區”中顯示。我們可以在最上面的輸入框中輸入我們想查看的變量的變量名或者表達式,然后我們可以點擊“重新計算”按鈕獲到這個變量或表達式現在的值,這個值將在下面的顯示區中顯示,然后我們可以點擊“添加監視”按鈕把這個變量或表達式加入到“監視顯示區”中,如下圖所示:界面風格最后簡單說一下VS2005的一些界面風格。a)鼠標單擊“解決方案資源管理器”上方邊,不松手,便可以隨意拖動位置

18、,共有5個提示位置可以停靠,如下圖所示。s Le«ip¥ear國而茁不J=41 aiclud* &1加口 hMncludt <stiHih h>IE),«/圖數聲明3K1 1 £144pY(E4Mt tht;L mtiiL )ini yw,v mK蝌夕不卑的GE意是“速里沒直忌i耳的酸透巧俳挑E4Ei£ IMdT j ;h f l'l -= Tw J咤T* w 每。觸) ) fwiiitE1飛kl星力斗口二 ye*卬ml E也年不旱鹵年,二ii 1teonst in! yeir)i £ I I ye.sr%

19、4 - 0 fijt. ye-Er'MOO rttiBTi L:qret.um :表母型擊技勒F以任意端被不工根據“方位掙示”,杞甯口 *咕到道式或者則的四個變 、用悵,可以根振喜好“博泰 B也量可“浮喬的窗口.b)如下圖所示:建議初學者可以配置的工具欄上可以是:“標準”,“調試”本編輯器”可以方便的給多行程序添加注視,縮進,系統提示輸入信息等些功能。另外, 個文件或者在圖中標記的“單擊切換文件”均可以查看不同源文件。當然還有很多細節, 現。,“文本編輯器”,其中“文 單擊源文件下每希望大家慢慢發c)在 VS2005 中,為便于代碼的管理和查看,可以將整個的函數部分折疊起來,即只剩下函

20、數名,如果代碼比較多,這樣便于隱藏目前不用的代碼,不用占用較大的空間。單擊函數前面的”號即可隱藏,再單擊“十”又可以復原。如下圖所示:3.小結VS2005是非常強大的集成開發環境,希望同學們以此為良機,在編程的大道上更進一步第一次上機作業熟悉C語言集成開發環境實驗目的:1 ,熟悉C語言集成開發環境2 ,掌握集成開發環境下文件的編寫與調用,源程序的編譯與調試,程序運行結果的觀察與分析。3 ,掌握C語言程序的基本結構實驗要求:1 ,程序編寫完后,要對輸入的每一個符號和詞進行檢查核對,不能有錯。2 ,編寫源程序時,不要在中文輸入法下進行,也不要有首字符大寫,否則調試時,會有錯誤。實驗內容:1,在D盤

21、新建文件夾:D:CProgramxxx(自己學號如01),作為以后所做程序的存放位置。注:每次換機器須重復此操作。2 ,編輯,編譯,運行下面程序并存盤,文件名為/*輸出信息的C源程序,文件名為*/#include”voidmain()printf(“Hello,EveryonenStudyhard!n”);輸出結果為3 ,調入文件,把程序修改成下面形式,運行,存盤,文件名為/*輸出信息的C源程序,文件名為*/#include”voidmain()printf(“Hello,Everyonen”);printf(“Studyhard!n”);輸出結果為,”n”的作用是4 ,編輯,編譯,運行下面程

22、序并存盤,文件名為/*計算圓面積的程序,文件名為*/#include”voidmain()floatr,area;printf(“r=”);scanf(“%f”,&r);area=*r*r;printf(“arear=%fn”,area);第一次運行時輸入1,運行結果為再次運行時輸入10,運行結果為把語句printf(“arear=%fn”,area);修改為:printf(“arear()=%fn”,r,area);后,運行時輸入10,這時程序的運行結果為第二次上機作業掌握基本數據類型在程序中的正確應用實驗目的:1熟悉C語言集成開發環境及程序編寫、編譯、運行,觀察運行結果2 掌握基本

23、的調試技巧(缺少標點符號,函數名錯誤或不一致)3 熟悉C語言基本數據類型(int,long,unsignedint,float,double,char)的輸入,輸出格式(%d%ld,%f,%lf,%G%Q%X%U實驗內容:1, 輸入半徑,求圓的面積(要求圓周率用符號常量表示)(查錯改錯1:圓周率的定義名與使用名不一致;查錯改錯2:面積的輸出格式用%d)o作業1程序如下,調試改正兩處錯誤,正確運行后將文件保存為#definepi#include""main()floatarea,banjing;printf("pleaseenteradatan");sca

24、nf("%f",&banjing);area=2*p*banjing*banjing;/*圓周率的定義名pi與使用名p不一致*/printf("ntheareaofyuanis%dn",area);/*面積的輸出格式d改為f*/A) 調試,語法錯誤如下:出錯信息為:D:vcfileex1(7):errorC2065:'p':undeclaredidentifier中文意思為:符號'p'沒有定義。錯誤原因及更正:圓周率的定義名pi與使用名p不一致,p改為pi'運行B) 觀察及分析運行結果,邏輯錯誤分析:半徑為

25、3時,圓的面積應為:pix3X3=,不能為負數。查錯:先查面積變量area的輸出格式,再往上逆推查其運算方法,最后查其定義錯誤原因及更正:面積的輸出格式d(整數)改為%f(實數或單精度浮點數)2,調入另存為,并做如下修改后,保存調試運行程序,觀察系統出出錯信息(英文),并翻譯成中文。注:每改一次,就調試一次。1 )將語句:floatarea,banjing;改為:floatarea,banjing;則出錯信息為:中文意思為:錯誤原因及更正:2 )各語句:printf("pleaseenteran");改為:printf("pleaseenteran")則

26、出錯信息為:中文意思為:錯誤原因及更正:3 )將語句:scanf("%f',&banjing);改為:scan("%f',&banjing);則出錯信息為:中文意思為:錯誤原因及更正:4 )將語句:floatarea,banjing;中英文標點符號“;”或“,”,改為中文輸入法后,再輸入同樣標點則出錯信息為:中文意思為:錯誤原因及更正:第三次上機作業運算符與表達式的使用實驗目的:1,熟悉C語言集成開發環境和熟悉C語言程序結構2,掌握一定的調試技巧。3,熟悉運算符與表達式的正確使用。作業內容要求:1,程序填空,以下程序輸入3個整數值給a,b,c

27、,程序把b中的值給a,把c中的值給b,把a中的值給c,交換后輸出a,b,c的值,例如輸入123,輸出a=2,b=3,c=1#include""voidmain()inta,b,c,;printf("entera,b,c:");scanf("%d%d%d",);a=b;b=c;printf("a=%db=%dc=%dn",a,b,c);1, 填空后,運行程序,結果如下:2, 在程序輸出語句前插入語句:clrscr();根據運行結果,說明其作用在程序輸出語句后插入語句:getchar();根據運行結果,說明其作用2,調

28、試以下程序(有兩處語法錯誤:類型說明錯與缺少符號;),寫出運行結果并簡要回答為什么(即了解程序的運行過程)#include”main()intx,y,z;x=6;y=100;z=(+x)/(y-);printf(“x=%d,y=%d,z=%dn”,x,y,z);運行結果:z=(x+y-)*(x+)printf(“x=%d,y=%d,z=%dn”,x,y,z);運行結果:實驗目的:4,熟悉C語言集成開發環境和熟悉C語言程序結構5,掌握一定的調試技巧。6,熟悉運算符與表達式的正確使用。7,掌握語句的正確書寫,學會編寫順序結構的程序。作業內容要求:1,編寫程序求解:已知半徑r=3厘米(cm).求球的

29、體積v源程序代碼>上機調試后,源程序中需修改的對應部分程序運行結果:2,以下叁個程序,選一個做。1)輸入兩個整數,求其和,差,積,商和余數2)輸入一個三位數,依次輸出其個位數字,十位數字,百位數字。13)用公式:sa(sb)(sc)求二角形的面積(其中s-abc,a,b,c為二角形的二邊2長)要求:1,確定所需的輸入變量,輸出變量,中間變量的個數及命名,并為其選取正確的數據類型。2,根據正確的邏輯順序書寫程序。(變量先說明再賦值后使用;先輸入再處理后輸出;3,每次輸出必須有提示信息。如:printf("nx+y=%f”,x+y);其中:x+y=是提示信息。題號:源程序代碼:輸入

30、數據與運行結果:第六次上機作業分支結構程序第五次上機作業掌握順序結構與輸入輸出函數實驗目的:1,掌握順序程序設計的一般方法:2,根據算法(有的是計算公式)確定所需的輸入變量,輸出變量,中間變量的個數及命名,并為其選取正確的數據類型(有計算公式的由計算公式右邊表達式值的類型確定)。3,根據正確的邏輯順序書寫(審查)程序。(變量先說明再賦值后使用;函數先定義,后說明,再使用)4,每次輸入、輸出應有提示信息。如:printf("nx+y=%f”,x+y);其中:x+y=是提示信息。5,注意表達式的正確書寫格式。6,掌握程序的一般調試方法:上機內容:1,在調試的過程中改正如下程序的錯誤(注意

31、:每編譯一次只改正一個錯誤;同時思考錯誤提示信息中單引號中的內容與錯誤的關系)1程序:用公式求三角形面積:(sa)(sb)(sc)s,s=1(abc)程序代碼>源程序中需修改的對應部分main()inta,b,c;floats;a=3,b=4,c=5;printf("enterthreedatas"n");scanf("%d%d%d,a,b,c);area=sqrt(s-a)*(s-b)*(s-c)*s;s=1/2*(a+b+c);printf("a=%d,b=%d,c=%dnarea=%d”,a,b,c,area);1 ,2,編程求二角

32、形面積:sabsinC,(C的單位為度數,庫函數中自變量單位為弧度數)(已知:2a=5,b=3,C=30°)注意:1,表達式的正確書寫格式,2,程序的設計方法,3,檢查、核實程序的順序的正確性代碼:運行結果:實驗目的:1,熟悉輸入輸出格式的使用2,掌握邏輯運算符的特殊運算規則3,了解簡單的分支結構程序設計4,學會閱讀程序的基本技巧(參考第七講:分析程序運行過程)上機內容:1,閱讀下面程序,計算運行結果,然后上機驗證。Main()intc,d,e;floata,b,t;a=,b=;if(a>b)t=a;a=b;b=t;/*思考該復合語句的功能*/printf(“n%,%”,a,b

33、)c=1,d=1;e=-c&&d-;/*注意運算符的優先級和運算規則*/printf(“nc=%d,d=%d,e=%d”,c,d,e);e=+d|c+;pirntf(“nc=%d,d=%d,e%d”,c,d,e);2,程序填空,輸入x值,計算下面的函數值,并輸出結果xx1y2x11x103x11x10程序如下:#include""voidmain()doublex;inty;scanf(,&x);if(x<1)y=x;elseif()y=2*x-1;elsey=3*x-11;printf("y=n",y);3,編程求|x|程

34、序代碼:運行結果:第七次上機作業分支結構程序填空實驗目的:1,能靈活處理分支結構的條件,選擇相應的分支語句作程序設計2,熟練掌握分支結構的程序設計3,能閱讀程序,能根據問題說明,補充源程序中的相關內容。4,掌握動態測試技巧。上機內容:1,程序填空問題說明:輸入三個正數,若能構成三角形的三邊的邊長,則求其面積,否則,輸出出錯信息。程序:include”main()inta,b,c;floats,area;pirntf(“enterthreepositivenumbersabc(a>0,b>0,c>0):n”);scanf(“%d%d%”d,&a,&b,&

35、c);if()&&()&&()s=2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*s-c);elseprintf(“nthreedataa,b,ccantformatrianglen”);2,編程求一元二次方程ax2+bx+c=0的根根據不同的系數a,b,c有以下的幾種情況:21,a0,b-4ac>0時,方程有兩不等實根x1,x222,a0,b-4ac=0時,萬程有兩相等實根x1=x223,a0,b-4ac<0時,方程有兩共軛虛根x1,x24,a=0,b0時,方程為bxc=0,根為x=-c/b;5,a=0,b=0,c 0 時,方程

36、無解a=0,b=0,c0時,方程有無窮解(x可為任意值)源程序代碼:動態測試:數據準備,根據前面分析,應準備第一組數據:6組數據第二組數據:運行結果:運行結果:第三組數據:第四組數據:運行結果:運行結果:第五組數據:第六組數據:運行結果:運行結果:第八次上機作業循環結構程序設計(一)實驗目的:1,掌握程序的基本設計方法(能分析具體問題的算法,輸入輸出,流程)2,掌握while循環的語義、語法和它的使用。(能根據流程寫程序,根據程序寫流程)3,能正確閱讀程序,根據問題說明把程序補充完整上機內容:1,填空,使程序完整問題說明:輸出所有水仙花數。(水仙花數是三位自然數,其各位數字的立方和等于該數,例

37、:153=135333)程序:main();I=100;While()x=I/100;y=;z=I%10;if()printf("dn",I);I+;運行結果:2,編程求解2問題:一個皮球從50米高處落下,每次反彈的高度為原高度的2,求至少經過多少次反彈后,反3彈的高度才小于1米提示:先弄清皮球的運動路線。可設變量,下落高度h1,反彈高度h2,反彈次數no每次的反彈高度等于下次的下落高度。源程序代碼:上機結果反彈高度為原來的1/4時,運行結果-第九次上機作業循環結構程序設計(二)實驗目的:1,掌握程序的基本設計方法(能分析具體問題的算法,輸入輸出,流程)2,掌握for循環的

38、語義、語法和它的使用。(能根據流程寫程序,根據程序寫流程)3,能正確閱讀程序,了解程序的運行過程。根據問題說明把程序補充完整,上機內容:1)已知以下程序是求某一分數序列的前20項的和:1,填空使程序完整2,寫出該分數序列的前6項。(6個分數)程序:main()inta,b,c,I;sum,s;a=3,b=2,s=(float)a/b;sum=2/1;for(I=2;I+)sum+=s;c=a+b;b=a;a=c;s=(float)a/b;printf(“sum=%”f,sum);2)編程2010要求:用 for 循環2求:nn8!n1n1源程序代碼上機結果 第十次上機作業 嵌套循環實驗目的:1

39、,掌握嵌套循環程序的基本設計方法(難度分解,化為單層循環)2,掌握for循環,while循環的語義、語法和它的使用。(能根據流程寫程序,根據程序寫流程)3,能正確閱讀程序,了解程序的運行過程。根據問題說明把程序補充完整,上機內容:1,程序填空,問題說明:求100到1000之間的所有素數和程序:main()intI,j,sum=0;for(I=101;I<=1000;)j=2;while()if(I%j=0)break;j+;if()sum+=I;printf(“sumofprimesofis%dn”);2,編程求Sn=a+aa+aaa+aaa(該項有n個a)之值,其中a為一個數字。例如:

40、222222222222222(此時n=5),n由鍵盤輸入。源程序代碼:上機結果第十一次上機作業一維數組實驗目的:1,掌握一維數組的定義,賦值,使用。2,能用一維數組這個新的數據結構簡化原有程序。3,根據問題說明,能正確閱讀程序。上機內容:1,問題說明:求數列的前20項和:2/1,3/2,5/3,8/5,13/8,21/13,程序:main()intN=20;int;floats;for(I=1;I<N;I+)aI=aI-1+bI-1;s=0;for(I=0;I<N;I+)s+=aI/bI;printf(“sum=%f”,s);運行結果:N的值改為3時,運行結果:2,編程:按下列數

41、據的原來順序和它的相反順序輸出下列各數:1,2,3,4,5,6,7,8(要求使用數組)注意:數組的定義:數組元素的個數。數組的兩種賦值方式。數據類型的轉換。源程序代碼:上機結果第十二次上機作業數組(二)實驗目的:1,熟練掌握一維數組,二維數組的正確使用。2,熟悉字符串數組的用法。3,能正確閱讀程序,理解程序的含義。4,能根據問題說明,觀察其隱含的規律,把程序補充完整。1,問題說明:按下列格式輸出6行楊輝三角形11112113311464115101051要求:先根據已有條件猜測空的內容,再運行程序,再根據運行結果修改空的內容。直至符合要求。程序:include”main()inty77,n,m

42、;for(n=1;n<7;n+)ynn=1;=1;/*第一列元素為1*/for(n=3;n<7;n+)for(m=2;m<=n-1;m+)ynm=;for(n=1;n<7;n+)for(m=1;m<=n;m+)printf(“%4d”,ynm);2,編程,用冒泡法或選擇法把一列數據排序后輸出:23,145,65,73,12,74,91,5。要求先輸出原數據,依次輸出每一輪排序后的數據。源程序代碼:上機結果:3,難度題(可選):一個班的學生的學號與成績如下,請按成績從高分到低分輸出。學生的學號與對應的成績應同時輸出。學號:1,2,3,4,5,6,7,8,9,10,1

43、1成績:40,63,81,80,98,72,91,65,70,68,79提示:最好用選擇法排序;增加一數組放學號,排序交換位置時,同時交換學號數組與成績數組的對應元素。注:在上題的右邊作適當修改第十三次上機作業數組(二)實驗目的:1,熟練掌握一維數組,二維數組的正確使用。2,熟悉字符串數組的用法。3,能正確閱讀程序,理解程序的含義。4,能根據問題說明,觀察其隱含的規律,把程序補充完整。5,能根據多次不同的輸入與對應的輸出結果,推算程序功能。上機內容:1,下列程序是求給定字符串的字符個數。要求:不修改程序已寫部分,在空缺部分把程序補充完整程序一:include”main()chars40;int

44、m=0;printf(“Enterastring:n”);scanf(“%s”,s);while(sm!=);printf(“Thestringlength:%dn”,m);2,閱讀下列程序要求:能根據多次不同的輸入(多次修改字符串S1的初值)與對應的輸出結果,以及源程序,推算程序功能。include”chars=”printf”;main()charc=f;printf(“%sn”,s);squeeze(s,c);printf("%sn",s);squeeze(s,c)chars,c;intI,j;for(I=j=0;sI!='0'+I)if(sI!=c)

45、sj+=sI;sj='0';問:1,字符串的初值:printf改為findafactor時,程序輸出結果2,函數squeeze()的主要功能是。第十四次上機作業(函數)實驗目的:1 ,熟悉自定義函數定義的基本格式,說明格式,調用過程。2 ,能把一般的程序或程序的部分功能改寫為自定義函數上機內容:1,用自定義函數形式改寫以下源程序。功能是求兩個數(num1,num2)的最大公約數(a)注意:該自定義函數應有二個形式參數源程序:#include”自定義函數(函數名f):n動族是求兩個數(num1,num2的最大公約數(a) int f() if(num1<num2) temp

46、=num1;num1=num2;num2=temp; a=num1;b=num2;while(b) temp=a%b;a=b;b=temp; (a);main()inta,b,num1,num2,temp;printf("entertwopostivenumbersscanf("%d%d,&num1,&num2);if(num1<num2)temp=num1;num1=num2;num2=temp;a=num1;b=num2;while(b)temp=a%b;a=b;b=temp;printf("最大公約數is%d”,a);2,程序功能:求三

47、個數的最大值。把下列程序補充完整,不能修改程序的其它部分。#include”Main()inta,b,c;intmax(),maxabc;scanf(“%d%d%”d,&a,&b,&c);maxabc=max(a,b,c);printf(“thelargestnumberof%d,%dand%dis%d”,a,b,c,maxabc);intmax(inta,intb,intc)第十五次上機作業函數(二)實驗目的:1,能正確理解和閱讀帶自定義函數的程序。2,進一步熟練掌握自定義函數的定義、說明和調用。3,能熟練使用定義函數編程上機內容:1,程序填空:說明:求一個數組中各元

48、素的最大元并輸出。程序:#include”#defineN6main()intaN,I,max;int;for(I=0;I<N;I+)scanf(“%d”,&aI);max=;printf(“/nmaxoftheaNis%dn”,max);intmaxvalue(a,m);int;intmax,m;max=a0;for(k=1;k<m;k+)if()max=ak;程序運行結果2,用自定義函數編程:輸入三角形的三邊的邊長,求其面積。面積計算公式:sqrt(p(p-a)(p-b)(p-c),p為周長的一半。主函數應包含輸入無效數據的情況(即a,b,c不能構成三角形的三邊或它們有一個負數)源程序代碼:運行結果:第十六次上機作業函數(三)和預處理實驗目的:1,能熟練使用定義函數編程,理解函數的參數傳遞過程。2,能正確閱讀帶宏定義的程序,掌握宏定義的正確替換。3,掌握宏定義和帶參數宏定義的簡單使用。上機內容:1,閱讀程序,寫出程序運行結果并分析原因:程序1:#include”#definePOW1(x)x*x#definePOW2(x)(x)*(x)main()intx=7,y=8;printf("pow1=%dn"

溫馨提示

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

評論

0/150

提交評論