




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、姓 名:_學(xué) 號(hào):_專 業(yè):_ 日 期:_目 錄序:指導(dǎo)原則及VS2005環(huán)境中編譯C程序一、熟悉C語言集成開發(fā)環(huán)境二、掌握基本數(shù)據(jù)類型在程序中的正確應(yīng)用三、運(yùn)算符與表達(dá)式的使用四、掌握順序結(jié)構(gòu)程序設(shè)計(jì)五、掌握順序結(jié)構(gòu)與輸入輸出函數(shù)六、選擇結(jié)構(gòu)程序七、選擇結(jié)構(gòu)程序填空八、循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(一)九、循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(二)十、嵌套循環(huán)十一、一維數(shù)組十二、數(shù)組(二)十三、數(shù)組(二)十四、函數(shù)(一)十五、函數(shù)(二)十六、函數(shù)(三)和預(yù)處理十七、指針(一)十八、指針(二)指導(dǎo)原則促進(jìn)學(xué)生針對(duì)實(shí)際問題,用所學(xué)C語言知識(shí)編寫符合規(guī)范的源程序代碼,在某一集成開發(fā)環(huán)境下盡一切調(diào)試技能調(diào)試程序,并對(duì)運(yùn)行結(jié)果進(jìn)行分
2、析處理,得出正確結(jié)論,解決好實(shí)際問題。更快更好地掌握所學(xué)知識(shí),技能和軟件的一向開發(fā)方法目的:1, 通過上機(jī)實(shí)驗(yàn),加深對(duì)教材內(nèi)容的理解,特別是一些語法規(guī)定,熟練掌握各種語法規(guī)則。2, 通過上機(jī)實(shí)驗(yàn),熟悉某個(gè)C語言集成開發(fā)環(huán)境。掌握集成開發(fā)環(huán)境下程序的編輯、編譯與連接、運(yùn)行的完整過程3, 通過上機(jī)實(shí)驗(yàn),要學(xué)會(huì)調(diào)試程序。能根據(jù)系統(tǒng)給出的“出錯(cuò)信息”,判斷錯(cuò)誤所在,并修改錯(cuò)誤,使程序正確運(yùn)行。要求:1, 復(fù)習(xí)與本次實(shí)驗(yàn)相關(guān)的教學(xué)內(nèi)容2, 了解集成開發(fā)環(huán)境的操作步驟3, 準(zhǔn)備好實(shí)驗(yàn)內(nèi)容。對(duì)于編程題,一定要自己動(dòng)手,書寫工整,并人工檢查無誤后才能上機(jī)實(shí)驗(yàn),以提高上機(jī)效率。4, 要準(zhǔn)備好調(diào)試和運(yùn)行程序時(shí)所需
3、的數(shù)據(jù)。5, 對(duì)運(yùn)行中可能出現(xiàn)的問題事先作出估計(jì),并對(duì)程序中有疑問的地方作上標(biāo)記,以便在運(yùn)行時(shí)給予注意。并在程序調(diào)試時(shí),把系統(tǒng)給出的出錯(cuò)原因,解決方法等記載在源程序之后;程序運(yùn)行結(jié)束后,把運(yùn)行結(jié)果也記錄下來。6,每個(gè)實(shí)驗(yàn)應(yīng)獨(dú)立完成,對(duì)實(shí)際問題所編寫的源程序需寫出完整實(shí)驗(yàn)的報(bào)告。 VS2005編譯環(huán)境中編寫運(yùn)行C程序Turbo C 2.0發(fā)布于1989年,對(duì)歷史并不太長(zhǎng)而發(fā)展卻神速的IT業(yè)來說,確實(shí)是古董級(jí)的軟件了。但它幾乎是最后一個(gè)專門為C語言設(shè)計(jì)的開發(fā)環(huán)境,具備學(xué)習(xí)C語言的一切條件,沒有任何非C語言的東西干擾初學(xué)者,所以一直被各大高校的C語言課堂采用。C+的發(fā)展使C+的開發(fā)環(huán)境大行其道。因?yàn)?/p>
4、C+幾乎完全兼容C語言,兩者無論編譯器還是編輯器、調(diào)試器都可以用同一套程序?qū)崿F(xiàn),而且C+共享C的庫(kù)函數(shù),很多軟件還是用兩者混合編程實(shí)現(xiàn),所以基本所有的C+環(huán)境都同時(shí)支持C語言。美國(guó)微軟公司出品的Visual C+(以下簡(jiǎn)稱VC)是Windows平臺(tái)上最流行的C/C+集成開發(fā)環(huán)境。從1993年發(fā)行1.0版本開始,歷經(jīng)多年錘煉,于2003年推出最新的7.0版本(Visual C+ .NET 2003)。VC系列產(chǎn)品具有穩(wěn)定而強(qiáng)大的IDE開發(fā)環(huán)境,以及豐富的調(diào)試功能,微軟于2005年底發(fā)布Visual Studio 2005。下面將介紹在VS2005下如何開發(fā)C語言程序。1編輯、編譯與運(yùn)行下面以創(chuàng)建
5、一個(gè)判斷是否是閏年的程序來演示如何使用VS2005開發(fā)C程序。1 啟動(dòng)VS2005,新建一個(gè)項(xiàng)目,新建方法有以下幾種:A:在VS2005默認(rèn)的“起始頁”有創(chuàng)建項(xiàng)目一項(xiàng),單擊“項(xiàng)目(P)”即可,如圖1所示B:文件 新建 項(xiàng)目,或者使用快捷鍵“CtrlshiftN”2由步驟1可以得到以下窗口,在項(xiàng)目類型中選擇Visual C,在右側(cè)模板中單擊“Win32控制臺(tái)應(yīng)用程序”,然后在“輸入名稱”提示處寫項(xiàng)目名稱,如圖31 所示:如:LeapYear,名稱下方的“位置”可以點(diǎn)擊“瀏覽”按鈕來更改。然后點(diǎn)擊“確定”或者“回車鍵”即可。然后出現(xiàn)“歡迎使用Win32應(yīng)用程序向?qū)А睂?duì)話框,單擊“下一步”。如圖32
6、示:?jiǎn)螕簟跋乱徊健背霈F(xiàn)以下對(duì)話框,選擇“空項(xiàng)目”,單擊“完成”。如圖33所示:3 在窗口的左側(cè)默認(rèn)出現(xiàn)“解決方案資源管理器,解決方案LeapYear”一欄,下面列出LeapYear,并包括頭文件和源文件及資源文件三個(gè)文件夾。如圖4所示4 新建一個(gè)C文件:如圖5 所示:在“源文件”上點(diǎn)擊右鍵,在出現(xiàn)的“添加”欄目上單擊“新建項(xiàng)”,這里采用“新建項(xiàng)”。4單擊“新建項(xiàng)”,出現(xiàn)如下的對(duì)話框,在左邊“類別”一欄選擇“代碼”,右側(cè)的“模板”中選擇“C文件”,在下邊名稱一欄輸入:“LeapYear.c”,這里要注意:文件的后綴應(yīng)該是“.C”,不能是默認(rèn)的cpp文件。點(diǎn)擊添加即可。補(bǔ)充一點(diǎn):如果不小心沒有寫“
7、.C”后綴,可以這樣處理:在建好的cpp文件右鍵單擊,重命名為“.C”文件,也可以選擇“從項(xiàng)目中排除(J)”這一項(xiàng)把該文件去掉,然后新建一個(gè)。如圖7所示。5 在出現(xiàn)的LeapYear.C空白處編寫C代碼即可。如下圖所示:6寫好代碼后單擊“編譯”,左邊那個(gè)是只編譯當(dāng)前文件,右邊那個(gè)編譯全部文件(快捷鍵F7) 也可以在 菜單欄“生成”“生成解決方案”或者別的可選擇項(xiàng)目。7. 在編譯完成之后,我們就可以按“運(yùn)行(ctrl+F5)”或者“調(diào)試運(yùn)行(F5)”來運(yùn)行我們的程序了。程序會(huì)提示:“此項(xiàng)目已過期,要生成它嗎?”的對(duì)話框,單擊“是”。在以后的使用中,我們可以直接按“運(yùn)行”或“調(diào)試運(yùn)行”而不需要單獨(dú)
8、進(jìn)行編譯,因?yàn)楫?dāng)你按“運(yùn)行”或“調(diào)試運(yùn)行”的時(shí)候它會(huì)自動(dòng)的檢測(cè)程序是否需要重新編譯,如果需要,則會(huì)彈出一個(gè)對(duì)話框詢問你是否同意重新編譯,你只需在此時(shí)點(diǎn)擊“Yes”,它就會(huì)自動(dòng)重新編譯、連接程序后再運(yùn)行,非常方便。 另外要注意:信息輸出窗:系統(tǒng)用來輸出一些信息。比如上面在執(zhí)行編譯時(shí),系統(tǒng)就會(huì)輸出編譯的結(jié)果,一般是編譯器在程序中發(fā)現(xiàn)的錯(cuò)誤或者一些警告。如果編譯器沒有發(fā)現(xiàn)錯(cuò)誤(error)及警告(warning),那么你會(huì)在最后一行看見“0 error(s), 0 warning(s)”的字樣。注意:在寫程序時(shí)應(yīng)當(dāng)認(rèn)真而小心的對(duì)待每一個(gè)warning,最好把它們都當(dāng)作error對(duì)待。 2調(diào)試技術(shù)用V
9、S2005進(jìn)行程序的調(diào)試是非常方便的,我們可以在任一行設(shè)置一個(gè)斷點(diǎn),當(dāng)程序執(zhí)行到斷點(diǎn)所在的行時(shí)就會(huì)暫時(shí)停住,此時(shí),你可以單步執(zhí)行程序(即一次只執(zhí)行一條語句),并查看此時(shí)各種變量的值,下面我們就來看看如何使用VS2005的調(diào)試功能。 設(shè)置斷點(diǎn)以剛才程序?yàn)槔O(shè)置一個(gè)斷點(diǎn),如下圖所示:方法有下面圖示幾種,可以參考,建議使用快捷鍵“F9”啟動(dòng)調(diào)試使用“F5”。 調(diào)試運(yùn)行現(xiàn)在我們點(diǎn)擊菜單欄上的“調(diào)試運(yùn)行按鈕(F5)”,這時(shí)程序?qū)⒆詣?dòng)編譯、連接、運(yùn)行,然后停在我們所設(shè)定的斷點(diǎn)的行上。設(shè)置斷點(diǎn)后,我們可以看見當(dāng)前行的最左端有一個(gè)暗紅色的大圓點(diǎn),具體圖略,同學(xué)們可以單擊“菜單欄”調(diào)試。一一對(duì)照下面的介紹查看
10、,也可以在菜單欄下面的“調(diào)試欄”查看。l 繼續(xù)運(yùn)行:表示繼續(xù)執(zhí)行程序,直到碰見下一個(gè)斷點(diǎn)時(shí)為止l 重新運(yùn)行:表示重新從頭開始運(yùn)行程序l 停止調(diào)試:表示中止現(xiàn)在的調(diào)試界面,返回到代碼編寫界面l 逐語句: 單步執(zhí)行命令。如果下一條即將執(zhí)行的語句是一條函數(shù)調(diào)用語句,那么就進(jìn)入到函數(shù)體內(nèi)l 逐過程: 單步執(zhí)行命令。如果下一條即將執(zhí)行的語句是一條函數(shù)調(diào)用語句,它不會(huì)進(jìn)入函數(shù)體內(nèi),而是直接執(zhí)行整個(gè)函數(shù),并停到函數(shù)返回后的第一條語句上l 快速監(jiān)視:它可以允許程序員自定義想要監(jiān)視的變量,并在“指定變量顯示區(qū)”顯示調(diào)試程序后, 程序提示輸入值:這里輸入2000,回車,現(xiàn)在程序已經(jīng)在設(shè)置的斷點(diǎn)處停住了,最左端的黃
11、色箭頭指示著即將運(yùn)行的下一條語句。這個(gè)時(shí)候可以看見左下方“自動(dòng)窗口”中有year變量值為“2000”,如下圖所示。點(diǎn)擊工具欄“逐語句或者F11”,由于這條語句會(huì)調(diào)用函數(shù)IsLeapYear()”,因此它會(huì)進(jìn)行到“IsLeapYear ()”函數(shù)體內(nèi)去執(zhí)行,黃色光標(biāo)指示到函數(shù)內(nèi)??梢苑磸?fù)執(zhí)行“單步執(zhí)行命令”(即工具欄上的“逐語句(F11)”、“逐過程(F10)”按鈕)來觀察程序的流程,調(diào)試中途發(fā)現(xiàn)問題不想再調(diào)試,可以“終止調(diào)試”,也可以在“斷點(diǎn)管理”處“刪除斷點(diǎn)”,“刪除所有斷點(diǎn)”,“禁用所有斷點(diǎn)”。請(qǐng)同學(xué)們實(shí)踐??焖俦O(jiān)視通過“調(diào)試”菜單上的“快速查看”我們可以設(shè)定我們想要監(jiān)視的變量,并在“監(jiān)視
12、顯示區(qū)”中顯示。我們可以在最上面的輸入框中輸入我們想查看的變量的變量名或者表達(dá)式,然后我們可以點(diǎn)擊“重新計(jì)算”按鈕獲到這個(gè)變量或表達(dá)式現(xiàn)在的值,這個(gè)值將在下面的顯示區(qū)中顯示,然后我們可以點(diǎn)擊“添加監(jiān)視”按鈕把這個(gè)變量或表達(dá)式加入到“監(jiān)視顯示區(qū)”中,如下圖所示: 界面風(fēng)格最后簡(jiǎn)單說一下VS2005的一些界面風(fēng)格。a)鼠標(biāo)單擊“解決方案資源管理器”上方邊,不松手,便可以隨意拖動(dòng)位置,共有5個(gè)提示位置可以停靠,如下圖所示。b)如下圖所示:建議初學(xué)者可以配置的工具欄上可以是:“標(biāo)準(zhǔn)”,“調(diào)試”,“文本編輯器”,其中“文本編輯器”可以方便的給多行程序添加注視,縮進(jìn),系統(tǒng)提示輸入信息等些功能。另外,單擊源
13、文件下每個(gè)文件或者在圖中標(biāo)記的“單擊切換文件”均可以查看不同源文件。當(dāng)然還有很多細(xì)節(jié),希望大家慢慢發(fā)現(xiàn)。c)在VS2005中,為便于代碼的管理和查看,可以將整個(gè)的函數(shù)部分折疊起來,即只剩下函數(shù)名,如果代碼比較多,這樣便于隱藏目前不用的代碼,不用占用較大的空間。單擊函數(shù)前面的“”號(hào)即可隱藏,再單擊“”又可以復(fù)原。如下圖所示:3小結(jié)VS2005是非常強(qiáng)大的集成開發(fā)環(huán)境,希望同學(xué)們以此為良機(jī),在編程的大道上更進(jìn)一步。第一次上機(jī)作業(yè) 熟悉C語言集成開發(fā)環(huán)境實(shí)驗(yàn)?zāi)康模?, 熟悉C語言集成開發(fā)環(huán)境2, 掌握集成開發(fā)環(huán)境下文件的編寫與調(diào)用,源程序的編譯與調(diào)試,程序運(yùn)行結(jié)果的觀察與分析。3, 掌握C語言程序的
14、基本結(jié)構(gòu)實(shí)驗(yàn)要求: 1, 程序編寫完后,要對(duì)輸入的每一個(gè)符號(hào)和詞進(jìn)行檢查核對(duì),不能有錯(cuò)。 2,編寫源程序時(shí),不要在中文輸入法下進(jìn)行,也不要有首字符大寫,否則調(diào)試時(shí),會(huì)有錯(cuò)誤。實(shí)驗(yàn)內(nèi)容: 1, 在D盤新建文件夾:D:C Program Test(自己學(xué)號(hào)如01),作為以后所做程序的存放位置。注:每次換機(jī)器須重復(fù)此操作。2, 編輯,編譯,運(yùn)行下面程序并存盤,文件名為ex1_1.c/* 輸出信息的C源程序,文件名為ex1_1.c */#include”stdio.h”void main() printf(“Hello, Everyone n Study hard!n”); 輸出結(jié)果為_3, 調(diào)入文件
15、ex1_1.c,把程序修改成下面形式,運(yùn)行,存盤,文件名為ex1_2.c/* 輸出信息的C源程序,文件名為ex1_2.c */#include”stdio.h”void main() printf(“Hello, Everyone n ”); printf(“ Study hard!n”);輸出結(jié)果為_, ”n”的作用是_4, 編輯,編譯,運(yùn)行下面程序并存盤,文件名為ex1_3.c/* 計(jì)算圓面積的程序,文件名為ex1_3.c */#include”stdio.h”void main() float r,area; printf(“r=?”); scanf(“%f”,&r); area=3.1
16、415926*r*r; printf(“arear=%fn”,area);第一次運(yùn)行時(shí)輸入1,運(yùn)行結(jié)果為_再次運(yùn)行時(shí)輸入10,運(yùn)行結(jié)果為_把語句printf(“arear=%fn”,area);修改為:printf(“arear(0.1f)=%fn”,r,area);后,運(yùn)行時(shí)輸入10,這時(shí)程序的運(yùn)行結(jié)果為_第二次上機(jī)作業(yè) 掌握基本數(shù)據(jù)類型在程序中的正確應(yīng)用實(shí)驗(yàn)?zāi)康模? 熟悉C語言集成開發(fā)環(huán)境及程序編寫、編譯、運(yùn)行,觀察運(yùn)行結(jié)果2 掌握基本的調(diào)試技巧(缺少標(biāo)點(diǎn)符號(hào),函數(shù)名錯(cuò)誤或不一致)3 熟悉C語言基本數(shù)據(jù)類型(int,long,unsigned int,float,double,char)的
17、輸入,輸出格式(%d,%ld,%f,%lf,%c,%o,%x,%u)實(shí)驗(yàn)內(nèi)容:1, 輸入半徑,求圓的面積(要求圓周率用符號(hào)常量表示)(查錯(cuò)改錯(cuò)1: 圓周率的定義名與使用名不一致; 查錯(cuò)改錯(cuò)2: 面積的輸出格式用%d)。作業(yè)1程序如下,調(diào)試改正兩處錯(cuò)誤 ,正確運(yùn)行后將文件保存為ex2_1.c#define pi 3.1415927#includestdio.hmain() float area,banjing; printf(please enter a datan); scanf(%f,&banjing); area=2*p*banjing*banjing; /* 圓周率的定義名pi與使用名p
18、不一致*/ printf(n the area of yuan is %dn,area); /* 面積的輸出格式%d改為%f */ A)調(diào)試,語法錯(cuò)誤如下: 出錯(cuò)信息為: D:vcfileex1ex.cpp(7) : error C2065: p : undeclared identifier 中文意思為:符號(hào)p沒有定義。 錯(cuò)誤原因及更正:圓周率的定義名pi與使用名p不一致,p改為pi運(yùn)行 B)觀察及分析運(yùn)行結(jié)果,邏輯錯(cuò)誤 分析:半徑為3時(shí),圓的面積應(yīng)為:pi3328.2743343,不能為負(fù)數(shù)。 查錯(cuò):先查面積變量area的輸出格式,再往上逆推查其運(yùn)算方法,最后查其定義 錯(cuò)誤原因及更正:面積
19、的輸出格式%d(整數(shù))改為%f (實(shí)數(shù)或單精度浮點(diǎn)數(shù)) 2,調(diào)入ex2_1.c 另存為ex2_2.c,并做如下修改后,保存調(diào)試運(yùn)行程序,觀察系統(tǒng)出出錯(cuò)信息(英文),并翻譯成中文。注:每改一次,就調(diào)試一次。 1)將語句:float area,banjing;改為:floatarea,banjing;則出錯(cuò)信息為:_中文意思為:_錯(cuò)誤原因及更正:_ 2) 將語句:printf(”please enter a datan”); 改為:printf(”please enter a datan”)則出錯(cuò)信息為:_中文意思為:_錯(cuò)誤原因及更正:_ 3) 將語句:scanf(“%f”,&banjing);
20、改為:scan(“%f”,&banjing);則出錯(cuò)信息為:_中文意思為:_錯(cuò)誤原因及更正:_ 4) 將語句: float area,banjing;中英文標(biāo)點(diǎn)符號(hào)“;”或“,”,改為中文輸入法后,再輸入同樣標(biāo)點(diǎn) 則出錯(cuò)信息為:_中文意思為:_錯(cuò)誤原因及更正:_ 第三次上機(jī)作業(yè) 運(yùn)算符與表達(dá)式的使用實(shí)驗(yàn)?zāi)康模?, 熟悉C語言集成開發(fā)環(huán)境和熟悉C語言程序結(jié)構(gòu)2, 掌握一定的調(diào)試技巧。3, 熟悉運(yùn)算符與表達(dá)式的正確使用。作業(yè)內(nèi)容要求:1, 程序填空,以下程序輸入3個(gè)整數(shù)值 給a,b,c,程序把b中的值給a,把c中的值給b,把a(bǔ)中的值給c,交換后輸出a,b,c的值,例如輸入123,輸出a=2,b=3
21、,c=1 #includestdio.hvoid main() int a,b,c, _; printf(enter a,b,c:); scanf(%d%d%d,_); _; a=b;b=c; printf(a=%d b=%d c=%dn,a,b,c); 1,填空后,運(yùn)行程序,結(jié)果如下:_ 2,在程序輸出語句前插入語句:clrscr(); 根據(jù)運(yùn)行結(jié)果,說明其作用_ 在程序輸出語句后插入語句:getchar();根據(jù)運(yùn)行結(jié)果,說明其作用_ 2, 調(diào)試以下程序(有兩處語法錯(cuò)誤:類型說明錯(cuò)與缺少符號(hào);),寫出運(yùn)行結(jié)果并簡(jiǎn)要回答為什么(即了解程序的運(yùn)行過程)#include”stdio.h”main
22、() intx,y,z;x=6;y=100;z=(+x)/(y-);printf(“x=%d,y=%d,z=%dn”,x,y,z); 運(yùn)行結(jié)果:_z=(x+y-)*(x+)printf(“x=%d,y=%d,z=%dn”,x,y,z); 運(yùn)行結(jié)果:_ 第四次上機(jī)作業(yè) 掌握順序結(jié)構(gòu)程序設(shè)計(jì)實(shí)驗(yàn)?zāi)康模?, 熟悉C語言集成開發(fā)環(huán)境和熟悉C語言程序結(jié)構(gòu)5, 掌握一定的調(diào)試技巧。6, 熟悉運(yùn)算符與表達(dá)式的正確使用。7, 掌握語句的正確書寫,學(xué)會(huì)編寫順序結(jié)構(gòu)的程序。作業(yè)內(nèi)容要求:1, 編寫程序求解:已知半徑r=3厘米(cm).求球的體積v;源程序代碼 上機(jī)調(diào)試后,源程序中需修改的對(duì)應(yīng)部分 程序運(yùn)行結(jié)果:2
23、, 以下叁個(gè)程序,選一個(gè)做。1) 輸入兩個(gè)整數(shù),求其和,差,積,商和余數(shù)2) 輸入一個(gè)三位數(shù),依次輸出其個(gè)位數(shù)字,十位數(shù)字,百位數(shù)字。3) 用公式求三角形的面積(其中,a,b,c為三角形的三邊長(zhǎng))要求:1, 確定所需的輸入變量,輸出變量,中間變量的個(gè)數(shù)及命名,并為其選取正確的數(shù)據(jù)類型。2, 根據(jù)正確的邏輯順序書寫程序。(變量先說明再賦值后使用;先輸入再處理后輸出;3, 每次輸出必須有提示信息。如:printf(“n x+y=%f”,x+y);其中:x+y= 是提示信息。 題號(hào): 源程序代碼: 輸入數(shù)據(jù)與運(yùn)行結(jié)果:第五次上機(jī)作業(yè) 掌握順序結(jié)構(gòu)與輸入輸出函數(shù)實(shí)驗(yàn)?zāi)康模?,掌握順序程序設(shè)計(jì)的一般方法
24、:2,根據(jù)算法(有的是計(jì)算公式)確定所需的輸入變量,輸出變量,中間變量的個(gè)數(shù)及命名,并為其選取正確的數(shù)據(jù)類型(有計(jì)算公式的由計(jì)算公式右邊表達(dá)式值的類型確定)。3,根據(jù)正確的邏輯順序書寫(審查)程序。(變量先說明再賦值后使用;函數(shù)先定義,后說明,再使用)4, 每次輸入、輸出應(yīng)有提示信息。如:printf(“n x+y=%f”,x+y);其中:x+y= 是提示信息。5, 注意表達(dá)式的正確書寫格式。 6, 掌握程序的一般調(diào)試方法:上機(jī)內(nèi)容:1, 在調(diào)試的過程中改正如下程序的錯(cuò)誤(注意:每編譯一次只改正一個(gè)錯(cuò)誤;同時(shí)思考錯(cuò)誤提示信息中單引號(hào)中的內(nèi)容與錯(cuò)誤的關(guān)系)程序:用公式求三角形面積:,s= 程序代
25、碼 源程序中需修改的對(duì)應(yīng)部分main() int a,b,c;float s;a=3,b=4,c=5;printf(“enter three datas”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);2, 編程求三角形面積:,(C的單位為度數(shù),庫(kù)函數(shù)中自變量單位為弧度數(shù))(已知:a=5, b=3, C=30o)注意:1,表達(dá)式的正確書寫格式,2,程序的設(shè)計(jì)方法,3,檢查、核實(shí)程序的順序的正確性 代碼:運(yùn)行結(jié)果:第六次
26、上機(jī)作業(yè) 分支結(jié)構(gòu)程序?qū)嶒?yàn)?zāi)康模?, 熟悉輸入輸出格式的使用2, 掌握邏輯運(yùn)算符的特殊運(yùn)算規(guī)則3, 了解簡(jiǎn)單的分支結(jié)構(gòu)程序設(shè)計(jì)4, 學(xué)會(huì)閱讀程序的基本技巧(參考第七講:分析程序運(yùn)行過程)上機(jī)內(nèi)容:1, 閱讀下面程序,計(jì)算運(yùn)行結(jié)果,然后上機(jī)驗(yàn)證。Main() int c,d,e; float a,b,t; a=3.6,b=-3.2; if(ab) t=a; a=b;b=t; /* 思考該復(fù)合語句的功能 */ printf(“n%5.2f,%5.2f”,a,b) c=1,d=1; e=-c&d-;/* 注意運(yùn)算符的優(yōu)先級(jí)和運(yùn)算規(guī)則 */ printf(“nc=%d,d=%d,e=%d”,c,d,e
27、); e=+d|c+; pirntf(“nc=%d,d=%d,e%d”,c,d,e);2, 程序填空,輸入x值,計(jì)算下面的函數(shù)值 ,并輸出結(jié)果 程序如下: #includestdio.hvoid main() double x; int y; scanf(_,&x); if(x0,b0,c0):n”);scanf(“%d%d%d”,&a,&b,&c);if( _ )&( _ )&( _ ) s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*s-c); _;else printf(“nthree data a,b,c cant form a trianglen”)
28、; 2, 編程求一元二次方程的根 根據(jù)不同的系數(shù)a,b,c有以下的幾種情況:1, 時(shí),方程有兩不等實(shí)根x1,x22, 時(shí),方程有兩相等實(shí)根x1x23, 時(shí),方程有兩共軛虛根x1,x2 4,時(shí),方程為bxc=0, 根為x=-c/b; 5, 時(shí),方程無解 6,時(shí),方程有無窮解(x可為任意值) 源程序代碼: 動(dòng)態(tài)測(cè)試:數(shù)據(jù)準(zhǔn)備,根據(jù)前面分析,應(yīng)準(zhǔn)備6組數(shù)據(jù)第一組數(shù)據(jù): 第二組數(shù)據(jù):運(yùn)行結(jié)果: 運(yùn)行結(jié)果: 第三組數(shù)據(jù): 第四組數(shù)據(jù):運(yùn)行結(jié)果: 運(yùn)行結(jié)果: 第五組數(shù)據(jù): 第六組數(shù)據(jù):運(yùn)行結(jié)果: 運(yùn)行結(jié)果: 第八次上機(jī)作業(yè) 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(一)實(shí)驗(yàn)?zāi)康模?,掌握程序的基本設(shè)計(jì)方法(能分析具體問題的算法,
29、輸入輸出,流程)2,掌握while循環(huán)的語義、語法和它的使用。(能根據(jù)流程寫程序,根據(jù)程序?qū)懥鞒蹋?,能正確閱讀程序,根據(jù)問題說明把程序補(bǔ)充完整上機(jī)內(nèi)容:1, 填空,使程序完整問題說明:輸出所有水仙花數(shù)。(水仙花數(shù)是三位自然數(shù),其各位數(shù)字的立方和等于該數(shù),例:153)程序:main() _;I=100;While(_) x=I/100; y=_; z=I%10; if(_) printf(“%dn”, I); I+; 運(yùn)行結(jié)果:_2, 編程求解問題:一個(gè)皮球從50米高處落下,每次反彈的高度為原高度的,求至少經(jīng)過多少次反彈后,反彈的高度才小于1米?提示:先弄清皮球的運(yùn)動(dòng)路線??稍O(shè)變量,下落高度h
30、1,反彈高度h2,反彈次數(shù)n。每次的反彈高度等于下次的下落高度。源程序代碼 :上機(jī)結(jié)果_反彈高度為原來的1/4時(shí),運(yùn)行結(jié)果_-第九次上機(jī)作業(yè) 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(二)實(shí)驗(yàn)?zāi)康模?,掌握程序的基本設(shè)計(jì)方法(能分析具體問題的算法,輸入輸出,流程)2,掌握for循環(huán)的語義、語法和它的使用。(能根據(jù)流程寫程序,根據(jù)程序?qū)懥鞒蹋?,能正確閱讀程序,了解程序的運(yùn)行過程。根據(jù)問題說明把程序補(bǔ)充完整,上機(jī)內(nèi)容:1)已知以下程序是求某一分?jǐn)?shù)序列的前20項(xiàng)的和:1, 填空使程序完整2, 寫出該分?jǐn)?shù)序列的前6項(xiàng)。(6個(gè)分?jǐn)?shù))程序:main() int a,b,c,I; _ sum,s; a=3,b=2,s=(floa
31、t)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)編程求:8!要求:用for循環(huán) 源程序代碼 :上機(jī)結(jié)果_第十次上機(jī)作業(yè) 嵌套循環(huán)實(shí)驗(yàn)?zāi)康模?,掌握嵌套循環(huán)程序的基本設(shè)計(jì)方法(難度分解,化為單層循環(huán))2,掌握for循環(huán),while循環(huán)的語義、語法和它的使用。(能根據(jù)流程寫程序,根據(jù)程序?qū)懥鞒蹋?,能正確閱讀程序,了解程序的運(yùn)行過程。根據(jù)問題說明把程序補(bǔ)充完整,上機(jī)內(nèi)容:1, 程序填空,問題說明:求100到1000之間的所有素?cái)?shù)和程序:main() int I,
32、j,sum=0; for(I=101;I=1000;_) j=2; while(_) if(I%j=0)break; j+; if(_)sum+=I; printf(“sum of primes of 100-1000 is %dn”);2,編程求Sn=a+aa+aaa+aaa(該項(xiàng)有n個(gè)a)之值,其中a 為一個(gè)數(shù)字。例如:222222222222222(此時(shí)n=5),n由鍵盤輸入。源程序代碼 :上機(jī)結(jié)果_第十一次上機(jī)作業(yè) 一維數(shù)組實(shí)驗(yàn)?zāi)康模?, 掌握一維數(shù)組的定義,賦值,使用。2, 能用一維數(shù)組這個(gè)新的數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)化原有程序。3, 根據(jù)問題說明,能正確閱讀程序。上機(jī)內(nèi)容:1, 問題說明:求數(shù)列
33、的前20項(xiàng)和:2/1, 3/2, 5/3, 8/5, 13/8, 21/13,.程序:main() int N=20; int _; float s; _; _; for(I=1;IN;I+) aI=aI-1+bI-1;_; s=0; for(I=0;IN;I+) s+=aI/bI; printf(“sum=%f”,s); 運(yùn)行結(jié)果:_ N的值改為3時(shí),運(yùn)行結(jié)果:_2, 編程:按下列數(shù)據(jù)的原來順序和它的相反順序輸出下列各數(shù):1,2,3,4,5,6,7,8(要求使用數(shù)組)注意:數(shù)組的定義:數(shù)組元素的個(gè)數(shù)。數(shù)組的兩種賦值方式。 數(shù)據(jù)類型的轉(zhuǎn)換。 源程序代碼 :上機(jī)結(jié)果_第十二次上機(jī)作業(yè) 數(shù)組(二)
34、實(shí)驗(yàn)?zāi)康模?,熟練掌握一維數(shù)組,二維數(shù)組的正確使用。2,熟悉字符串?dāng)?shù)組的用法。3,能正確閱讀程序,理解程序的含義。4,能根據(jù)問題說明,觀察其隱含的規(guī)律,把程序補(bǔ)充完整。上機(jī)內(nèi)容:1, 問題說明:按下列格式輸出6行楊輝三角形11 11 211 3311464115101051要求:先根據(jù)已有條件猜測(cè)空的內(nèi)容,再運(yùn)行程序,再根據(jù)運(yùn)行結(jié)果修改空的內(nèi)容。直至符合要求。程序:include”stdio.h”main() int y77,n,m; for(n=1;n7;n+) ynn=1; _=1; /* 第一列元素為1 */ for(n=3;n7;n+) for(m=2;m=n-1;m+) ynm=_;
35、 for(n=1;n7;n+) for(m=1;m=n;m+) printf(“%4d”,ynm); _; 2, 編程,用冒泡法或選擇法把一列數(shù)據(jù)排序后輸出:23,145,65,73,12,74,91,5。要求先輸出原數(shù)據(jù),依次輸出每一輪排序后的數(shù)據(jù)。 源程序代碼 :上機(jī)結(jié)果: _3, 難度題(可選):一個(gè)班的學(xué)生的學(xué)號(hào)與成績(jī)?nèi)缦?,?qǐng)按成績(jī)從高分到低分輸出。學(xué)生的學(xué)號(hào)與對(duì)應(yīng)的成績(jī)應(yīng)同時(shí)輸出。學(xué)號(hào):1,2,3,4,5,6,7,8,9,10,11成績(jī):40,63,81,80,98,72,91,65,70,68,79提示:最好用選擇法排序;增加一數(shù)組放學(xué)號(hào),排序交換位置時(shí),同時(shí)交換學(xué)號(hào)數(shù)組與成績(jī)數(shù)組
36、的對(duì)應(yīng)元素。 注: 在上題的右邊作適當(dāng)修改第十三次上機(jī)作業(yè) 數(shù)組(二)實(shí)驗(yàn)?zāi)康模?,熟練掌握一維數(shù)組,二維數(shù)組的正確使用。2,熟悉字符串?dāng)?shù)組的用法。3,能正確閱讀程序,理解程序的含義。4,能根據(jù)問題說明,觀察其隱含的規(guī)律,把程序補(bǔ)充完整。5,能根據(jù)多次不同的輸入與對(duì)應(yīng)的輸出結(jié)果,推算程序功能。上機(jī)內(nèi)容:1,下列程序是求給定字符串的字符個(gè)數(shù)。要求:不修改程序已寫部分,在空缺部分把程序補(bǔ)充完整程序一:include”stdio.h”main() char s40; int m=0; printf(“Enter a string : n”); scanf(“%s”,s); while(sm!=_)
37、_; printf(“The string length : %dn”,m);2, 閱讀下列程序要求:能根據(jù)多次不同的輸入(多次修改字符串S1的初值)與對(duì)應(yīng)的輸出結(jié)果,以及源程序,推算程序功能。include”stdio.h”char s =”printf”;main() char c=f; printf(“%sn”,s); squeeze(s,c); printf(“%sn”,s);squeeze(s,c)char s ,c; int I,j; for(I=j=0;sI!=0;+I)if(sI!=c) sj+=sI; sj=0;問:1,字符串的初值:printf 改為find a facto
38、r 時(shí),程序輸出結(jié)果_2,函數(shù) squeeze()的主要功能是_。 第十四次上機(jī)作業(yè) (函數(shù))實(shí)驗(yàn)?zāi)康模?1,熟悉自定義函數(shù)定義的基本格式,說明格式,調(diào)用過程。 2,能把一般的程序或程序的部分功能改寫為自定義函數(shù)上機(jī)內(nèi)容:1, 用自定義函數(shù)形式改寫以下源程序。功能是求兩個(gè)數(shù)(num1,num2)的最大公約數(shù)(a)注意:該自定義函數(shù)應(yīng)有二個(gè)形式參數(shù)源程序:#include”stdio.h”main()自定義函數(shù)(函數(shù)名f):功能是求兩個(gè)數(shù)(num1,num2)的最大公約數(shù)(a)int f(_) if(num1num2) temp=num1;num1=num2;num2=temp; a=num1;
39、b=num2; while(b) temp=a%b; a=b; b=temp; _(a); int a,b,num1,num2,temp; printf(“enter two postive numbers”n”); scanf(“%d%d”,&num1,&num2); if(num1num2) temp=num1;num1=num2;num2=temp; a=num1;b=num2; while(b) temp=a%b; a=b; b=temp; printf(“最大公約數(shù) is %d”,a); 2, 程序功能:求三個(gè)數(shù)的最大值。把下列程序補(bǔ)充完整,不能修改程序的其它部分。#include”
40、stdio.h”Main() int a,b,c; int max(),maxabc; scanf(“%d%d%d”,&a,&b,&c); maxabc=max(a,b,c); printf(“the largest number of %d, %d and %d is %d”,a,b,c,maxabc);int max(int a,int b,int c) 第十五次上機(jī)作業(yè) 函數(shù)(二)實(shí)驗(yàn)?zāi)康模?,能正確理解和閱讀帶自定義函數(shù)的程序。2,進(jìn)一步熟練掌握自定義函數(shù)的定義、說明和調(diào)用。 3,能熟練使用定義函數(shù)編程上機(jī)內(nèi)容:1, 程序填空:說明:求一個(gè)數(shù)組中各元素的最大元并輸出。程序:#inclu
41、de”stdio.h”#define N 6main() int aN,I,max; int _; for(I=0;IN;I+) scanf(“%d”,&aI); max=_; printf(“/nmax of the aN is %dn”,max);int maxvalue(a,m);int _; int max,m; max=a0; for(k=1;km;k+) if(_) max=ak; _; 程序運(yùn)行結(jié)果_2, 用自定義函數(shù)編程:輸入三角形的三邊的邊長(zhǎng),求其面積。面積計(jì)算公式: sqrt(p(p-a)(p-b)(p-c), p為周長(zhǎng)的一半。主函數(shù)應(yīng)包含輸入無效數(shù)據(jù)的情況(即a,b,c不
42、能構(gòu)成三角形的三邊或它們有一個(gè)負(fù)數(shù))。源程序代碼 :運(yùn)行結(jié)果: _第十六次上機(jī)作業(yè) 函數(shù)(三)和預(yù)處理實(shí)驗(yàn)?zāi)康模?, 能熟練使用定義函數(shù)編程,理解函數(shù)的參數(shù)傳遞過程。2,能正確閱讀帶宏定義的程序,掌握宏定義的正確替換。3, 掌握宏定義和帶參數(shù)宏定義的簡(jiǎn)單使用。上機(jī)內(nèi)容:1,閱讀程序,寫出程序運(yùn)行結(jié)果并分析原因:程序1:#include”stdio.h” #define POW1(x) x*x #define POW2(x) (x)*(x) main() int x=7,y=8; printf(“pow1=%dn”,POW1(x+y); printf(“pow2=%dn”,POW2(x+y);2,程序填
溫馨提示
- 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村土地流轉(zhuǎn)風(fēng)險(xiǎn)評(píng)估與保障協(xié)議
- 無人駕駛技術(shù)投資協(xié)議
- 汽車租賃長(zhǎng)租合同
- 公司股份改制方案設(shè)計(jì)報(bào)告
- 農(nóng)村綠化景觀改造施工協(xié)議
- 水務(wù)工程聯(lián)合運(yùn)營(yíng)合作協(xié)議
- 小英雄雨來成長(zhǎng)征文
- 國(guó)際貿(mào)易市場(chǎng)走勢(shì)預(yù)測(cè)分析表
- 迪士尼動(dòng)畫海洋奇緣觀后感
- 高考數(shù)學(xué)專題06四邊形的綜合問題測(cè)試題
- 高中主題班會(huì) 悟哪吒精神做英雄少年-下學(xué)期開學(xué)第一課主題班會(huì)課件-高中主題班會(huì)課件
- 2025電力物資檢儲(chǔ)配一體化建設(shè)技術(shù)導(dǎo)則
- 新學(xué)期 開學(xué)第一課 主題班會(huì)課件
- 2025年協(xié)議離婚夫妻模板
- 福建省龍巖市2024-2025學(xué)年九年級(jí)上學(xué)期期末語文試題(解析版)
- 民法典合同編講座
- DBJ51-T 198-2022 四川省既有民用建筑結(jié)構(gòu)安全隱患排查技術(shù)標(biāo)準(zhǔn)
- 《干細(xì)胞及其應(yīng)用》課件
- 課題申報(bào)書:生成式人工智能提升中小學(xué)教師數(shù)字素養(yǎng)的路徑探究
- 臨床婦產(chǎn)題庫(kù)+參考答案
- 數(shù)據(jù)安全重要數(shù)據(jù)風(fēng)險(xiǎn)評(píng)估報(bào)告
評(píng)論
0/150
提交評(píng)論