C語言與數(shù)據(jù)結(jié)構(gòu) 實驗指導(dǎo)_第1頁
C語言與數(shù)據(jù)結(jié)構(gòu) 實驗指導(dǎo)_第2頁
C語言與數(shù)據(jù)結(jié)構(gòu) 實驗指導(dǎo)_第3頁
C語言與數(shù)據(jù)結(jié)構(gòu) 實驗指導(dǎo)_第4頁
C語言與數(shù)據(jù)結(jié)構(gòu) 實驗指導(dǎo)_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Harbin Institute of TechnologyC語言與數(shù)據(jù)結(jié)構(gòu)實驗指導(dǎo)書劉梅 索瑩 田文龍哈工大電子與信息工程學(xué)院電子工程系實驗1 實驗平臺一、實驗?zāi)康?.掌握Microsoft Visual C+ 6.0集成環(huán)境的使用方法。2.掌握C程序在Microsoft Visual C+ 6.0開發(fā)環(huán)境中的編輯、編譯、鏈接和運行全過程二、實驗內(nèi)容1)啟動Microsoft Visual C+ 6.0開發(fā)環(huán)境雙擊桌面應(yīng)用程序圖標(biāo)或“開始”菜單程序組中的Microsoft Visual C+ 6.0應(yīng)用程序,啟動VC+,如圖所示圖1.1 VC+初始界面2)建立C源程序文件方法1:單擊工具欄的

2、“新建文本文件”按鈕,打開文本文件編輯界面如下圖所示圖1.2 文本文件編輯界面方法2:執(zhí)行“文件”->“新建”命令,如圖1.3所示,在“文件”選項卡下選擇C+ Source File 文件類型,然后輸入C源程序文件名和保存文件,如圖1.3所示,然后單擊“確定”按鈕,打開源程序文件編輯界面,如圖1.4所示。注意:輸入C源程序文件名時必須帶上擴展“.c”,否則默認(rèn)創(chuàng)建的是擴展名為“.cpp”的C+文件。3)編輯源文件方法1:在如圖1.2所示的文本文件編輯界面中輸入源程序代碼,如圖1.5所示。方法2:在如圖1.4所示的C源程序文件編輯界面中編輯源程序代碼,如圖1.6所示。圖1.3 新建文件圖1

3、.4 C源程序文件編輯界面圖1.5 文本文件編輯界面編輯源文件圖1.6 C源程序編輯界面編輯源文件4)保存源文件源文件編輯結(jié)束后,執(zhí)行“文件”->“保存”命令保存文件,文本文件編輯界面中編輯的源文件保存時必須在文件名后加上擴展名“.c”,否則保存的是擴展名為txt的文本文件,不能編譯運行。5)組件文件執(zhí)行“組建”->“組建”命令或直接按F7功能鍵或單機工具欄Build按鈕,可以對源文件進(jìn)行編譯、鏈接而不運行該程序。當(dāng)然也可以先執(zhí)行“組建”->“編譯”(快捷鍵Ctrl+F7)命令編譯文件,再執(zhí)行“組建”->“組建”(快捷鍵F7)命令鏈接文件。由于VC+有工作區(qū)的要求,所以

4、組建時,系統(tǒng)提示需要建立工作區(qū),如圖1.7所示。單擊“是”按鈕,系統(tǒng)會自動建立工作區(qū),組建后的結(jié)果如圖1.8所示。圖1.7 提示建立工作區(qū)圖1.8 組建源程序結(jié)果注意:圖1.8下方的“組建”信息窗口中的內(nèi)容說明了組建的結(jié)果,必須保證錯誤(error(s))數(shù)為0才能運行程序。6)運行文件執(zhí)行“組建”->“執(zhí)行”命令或直接按Ctrl+F5鍵或單擊工具欄BuildExecute按鈕,可以運行程序, 結(jié)果顯示在用戶輸出窗口中,如圖1.9所示。圖1.9 用戶輸出窗口注意:如果要編輯下一個C源程序,由于新建的文件不會自動加入工作區(qū),因此需要先關(guān)閉當(dāng)前工作區(qū)。方法是執(zhí)行“文件”->“關(guān)閉工作空

5、間”命令,或者關(guān)閉后重新啟動VC+,再按照上述方法建立、編輯新的C源文件,讓VC+自動建立工作區(qū)。7)運行“加法”程序在VC+環(huán)境中建立并編輯實現(xiàn)加法運算的源程序,然后組建該文件,結(jié)果如圖1.10所示。運行該文件,并按要求輸入數(shù)據(jù),得到運行結(jié)果。圖1.10 VC+環(huán)境下組建“加法”程序后的界面實驗2 順序結(jié)構(gòu)程序設(shè)計一、實驗?zāi)康?.掌握上機運行C程序的全過程。2.掌握各種格式說明符的使用方法。3.掌握格式輸入輸出函數(shù)scanf()和printf()的用法。4.熟悉字符輸入輸出函數(shù)getchar()和putchar()的用法。二、實驗內(nèi)容1.格式說明符的使用。創(chuàng)建并編輯輸入輸出各個類型數(shù)據(jù)的程序

6、,分析各個格式說明符的作用。2.編寫“輸入輸出字符”程序,功能如下:使用getchar()函數(shù)接收一個字符,用printf()函數(shù)顯示;使用scanf()函數(shù)接收一個字符,用putchar()函數(shù)顯示。3.編寫“求三角形面積”程序,功能如下:輸入三角形三邊長,求三角形的面積。已知三角形的三邊長a、b、c,則該三角形的面積公式為:其中,。4.編寫“圓柱體”程序,功能如下:設(shè)圓柱體的半徑r=2.5,圓柱高h(yuǎn)=5.0,求出該圓柱體的表面積和體積。要求:用scanf()函數(shù)輸入數(shù)據(jù),輸出時要求有文字說明,取小數(shù)點后兩位數(shù)字。三、實驗指導(dǎo)1.格式說明符的使用(參考教材)2. “輸入輸出字符”程序1)編程

7、分析(1)需要定義字符型變量存放輸入的數(shù)據(jù);(2)用scanf()函數(shù)輸入字符時,要注意不要接收緩沖區(qū)中已有的字符。2)參考程序(略)3. “求三角形面積”程序1)編程分析(1)該問題的解決過程如下:(2)需要定義實型(float或double)變量存放相應(yīng)的數(shù)據(jù);(3)計算面積需要用到開平方函數(shù)sqrt(),該函數(shù)原型包含在頭文件math.h中,因此需要在程序開始將頭文件包含進(jìn)來;(4)根據(jù)實際情況確定各個變量在輸出時的寬度和小數(shù)位數(shù)。2)參考程序(略)3. “圓柱體”程序1)編程分析(1)該問題的解決過程如下:(2)需要定義實型(float或double)變量存放相應(yīng)的數(shù)據(jù);(3)計算過程

8、中需要用到常數(shù),為使用方便,在程序開始用宏定義命令define將常數(shù)3.14159(即)用PI表示;(4)輸出數(shù)據(jù)時根據(jù)要求確定各個變量的寬度和小數(shù)位數(shù)(本例采用10.2)。2)參考程序(略)實驗3 選擇結(jié)構(gòu)程序設(shè)計一、實驗?zāi)康?.學(xué)會使用邏輯表達(dá)式表示條件的方法。2.掌握switch語句的用法。二、實驗內(nèi)容1.switch語句的應(yīng)用編寫計算器程序。要求從鍵盤任意輸入兩個數(shù)值,然后輸入一個四則運算符,自動完成運算后輸出結(jié)果。三、實驗指導(dǎo)1.switch語句的應(yīng)用1)編程分析(1)四則運算共有加(+)、減(-)、乘(*)、除(/)4種運算,要做出判斷需使用switch語句。(2)當(dāng)輸入符號為四則

9、運算之外的符號時,不進(jìn)行任何運算,但應(yīng)給出相應(yīng)的提示信息。當(dāng)使用提示信息時,switch語句應(yīng)含有default子句。2)參考程序(略)3)程序調(diào)試調(diào)試程序時,+、-、*、/及非四則運算符的情況都應(yīng)予以調(diào)試。實驗4 循環(huán)結(jié)構(gòu)程序設(shè)計一、實驗?zāi)康?.通過本實驗,加深對循環(huán)控制結(jié)構(gòu)有關(guān)概念的理解。2.掌握二重循環(huán)結(jié)構(gòu)程序的設(shè)計方法。二、實驗內(nèi)容1.階乘累加問題。編寫程序,求1!+2!+3!+n!的值。2.取彩球問題。有12個彩球:3個白色,5個紅色,4個黃色,從中任意取n個球,求出所有不同的取法。三、實驗指導(dǎo)1.階乘累加問題1)編程分析(1)本實驗內(nèi)容為求解階乘問題。(2)求n!用一個循環(huán)即可實現(xiàn)

10、。(3)求1!+2!+3!+n!的值,需要在求階乘程序之外增加一個外重循環(huán)。2)參考程序(略)3)程序調(diào)試(1)輸入一個不大的正整數(shù),分析程序執(zhí)行結(jié)果。(2)輸入一個零或者負(fù)數(shù),分析程序執(zhí)行結(jié)果。(3)輸入一個很大的正整數(shù),分析程序執(zhí)行結(jié)果。(4)當(dāng)程序結(jié)果不符合要求時,修改程序,直到對任何輸入數(shù)據(jù)都能輸出正確的執(zhí)行結(jié)果,或者給出一個明確的提示信息。例如,當(dāng)輸入數(shù)據(jù)非法時,給出一個錯誤的提示信息。2.取彩球問題1)編程分析本題用到“窮舉”算法。窮舉的基本思想是對問題的所有可能性一一測試,直到找到解或?qū)⑷靠赡軤顟B(tài)都測試過為止?!案F舉”的核心是依次測試循環(huán)體。循環(huán)控制有兩種辦法:計數(shù)法和標(biāo)志法。

11、計數(shù)法要先確定循環(huán)次數(shù),然后逐次測試,完成測試次數(shù)后循環(huán)結(jié)束;標(biāo)志法是達(dá)到某一目標(biāo)后循環(huán)結(jié)束。2)參考程序(略)3)程序調(diào)試(1)輸入不小于2并且不大于12的整數(shù)值,查看并分析程序結(jié)果。(2)輸入小于2或者大于12的整數(shù)值,查看并分析程序結(jié)果。(3)修改程序,使得程序運行時只接受的輸入值,并能獲得正確結(jié)果。實驗5 數(shù)組一、實驗?zāi)康?.了解數(shù)組的特點,掌握一維數(shù)組的定義、初始化及其使用方法。2.掌握二維數(shù)組的定義、初始化及其使用方法。3.能用一維數(shù)組和二維數(shù)組解決簡單的實際問題。二、實驗內(nèi)容1.鞍點問題在二維數(shù)組中,若某一位置上的元素在該行中最大,而在該列中最小,則該元素即為該二維數(shù)組的鞍點。要

12、求從鍵盤輸入一個二維數(shù)組,當(dāng)鞍點存在時,把鞍點找出來。2.選擇法排序問題將存儲在一維數(shù)組中的10個整數(shù)用選擇法進(jìn)行排序。三、實驗指導(dǎo)1.鞍點問題1)編程分析(1)對二維數(shù)組按行處理。(2)對每一行首先找出它的最大值元素,然后看它在該列上是否為最小值,若是,則找到一個鞍點。(3)找到鞍點后輸出元素值及其所在的行列值。2)參考程序(略)3)程序調(diào)試(1)輸入有鞍點的一組數(shù)據(jù),查看并分析程序的運行結(jié)果。例如:9 80 215 4060 -60 89 1210 -3 101 89(2)輸入沒有鞍點的一組數(shù)據(jù),查看并分析程序的運行結(jié)果。例如:9 80 215 4060 -60 189 1210 -3 1

13、01 892.選擇法排序問題1)編程分析(1)我們已經(jīng)學(xué)習(xí)了冒泡法排序,冒泡法排序依次,就有可能交換一次,需要交換的次數(shù)越多,效率越低。(2)選擇法的基本思路是:第一趟,從所有元素中選擇一個最小元素后放在a0中,最多交換一次;第二趟,從a1開始到最后的各元素中選擇一個最小元素,放在a1中;以此類推,M個數(shù)需要進(jìn)行M-1趟比較,但交換的次數(shù)比冒泡排序法少得多。2)參考程序(略)3)程序調(diào)試(1)運行程序,任意輸入10個整數(shù),查看并分析程序執(zhí)行結(jié)果。(2)運行程序,輸入多余10個的整數(shù),查看并分析程序執(zhí)行結(jié)果。(3)運行程序,輸入一組升序排列的有序整數(shù),查看并分析程序執(zhí)行結(jié)果。(4)運行程序,輸入

14、一組降序排列的有序的整數(shù),查看并分析程序執(zhí)行結(jié)果。實驗6 函數(shù)一、實驗?zāi)康?.掌握自定義函數(shù)的一般結(jié)構(gòu)及定義函數(shù)和函數(shù)調(diào)用的方法。 2.熟練掌握一維數(shù)組作函數(shù)的參數(shù)時函數(shù)的定義和調(diào)用方法,熟悉用函數(shù)求解二維數(shù)組問題的函數(shù)定義及調(diào)用方法。二、實驗內(nèi)容1.選擇法排序函數(shù)的定義及使用 編寫一個用選擇法對一維數(shù)組升序排序的函數(shù),并在主函數(shù)中調(diào)用該排序函數(shù),實現(xiàn)對任意20個整數(shù)的排序。三、實驗指導(dǎo)1. 選擇法排序函數(shù)的定義及使用1)編程分析這是一維數(shù)組作函數(shù)參數(shù)的問題。(1)設(shè)計一個對一維數(shù)組的前n個數(shù)用選擇法進(jìn)行排序的函數(shù)select()。select()函數(shù)有兩個形參,一個是一維數(shù)組形參,一個是排序

15、元素數(shù)形參。select()函數(shù)不需要返回值,函數(shù)類型說明為void型。(2)在進(jìn)行函數(shù)調(diào)用時,實參和形參要按照參數(shù)的意義在位置上對應(yīng)一致。2)參考程序(略)3)程序調(diào)試(1)運行程序,任意輸入20個整數(shù),查看并分析程序執(zhí)行結(jié)果。(2)把主函數(shù)中的函數(shù)調(diào)用select(M,a)改為select(M,&a0),用(1)中使用的數(shù)據(jù)運行程序,查看并分析程序執(zhí)行結(jié)果。(3) 把主函數(shù)中的函數(shù)調(diào)用select(M,a)改為select(M,a0),用(1)中使用的數(shù)據(jù)運行程序,查看并分析程序執(zhí)行結(jié)果。(4) 把主函數(shù)中的函數(shù)調(diào)用select(M,a)改為select(a,M),用(1)中使用的

16、數(shù)據(jù)運行程序,查看并分析程序執(zhí)行結(jié)果。實驗7 指針一、實驗?zāi)康?.掌握指針變量的定義和基本使用方法。2.熟悉指針和一維數(shù)組的關(guān)系,熟練使用指針變量訪問一維數(shù)組元素。3.熟練掌握用簡單指針變量作函數(shù)的參數(shù)時函數(shù)的定義和調(diào)用方法。4.明確數(shù)組名作函數(shù)的參數(shù)和指向數(shù)組的指針作函數(shù)的參數(shù)的異同,學(xué)會相關(guān)的函數(shù)定義和調(diào)用。二、實驗內(nèi)容1.用指針法在一維有序數(shù)組中插入數(shù)據(jù)如下是具有10個整數(shù)的升序數(shù)列,存儲在一維數(shù)組中,要求在其中插入任意一個整數(shù)后數(shù)列仍然有序。數(shù)列:10,20,30,40,50,60,70,80,90,99。2.數(shù)據(jù)插入函數(shù)編寫在一維有序數(shù)組中插入數(shù)據(jù)的函數(shù)insert(),并調(diào)用該函數(shù)

17、實現(xiàn)數(shù)據(jù)插入。要求插入數(shù)據(jù)后的數(shù)組仍然有序。三、實驗指導(dǎo)1.用指針法在一維有序數(shù)組中插入數(shù)據(jù)1)編程分析按照下標(biāo)訪問數(shù)組元素的方法,用指針解決該問題。2)參考程序(略)2.數(shù)據(jù)插入函數(shù)1)編程分析(1)在實驗內(nèi)容1中,解決了用指針法在一維有序數(shù)組中插入數(shù)據(jù)的問題?,F(xiàn)只需對數(shù)據(jù)的插入處理部分函數(shù)化即可。(2)插入函數(shù)insert()需要有三個形參:第一個int型簡單形參,表示要插入的數(shù)據(jù);第二個int型簡單形參,表示數(shù)組中數(shù)據(jù)的個數(shù);第三個為int型指針形參,它將指向一個一維數(shù)組。(3)在進(jìn)行函數(shù)調(diào)用時insert()函數(shù)的第一個實參為要插入的數(shù)據(jù):第二個實參是數(shù)組數(shù)據(jù)個數(shù);第三個實參是數(shù)組名,

18、即數(shù)組首地址。2)參考程序(略)實驗8 線性表的順序存儲系統(tǒng)維護(hù)一、實驗?zāi)康?.掌握線性表的順序存儲的定義和基本使用方法。2.掌握線性表的順序存儲存儲單元的排列特點。3.掌握線性表的順序存儲系統(tǒng)的建立、查找 、修改、插入、刪除操作,學(xué)會相關(guān)的函數(shù)定義和調(diào)用。二、實驗內(nèi)容1.建立一個順序表。2.能夠?qū)⒌捻樞虮磉M(jìn)行查找、修改、插入、刪除等操作。當(dāng)輸入指令錯誤時,能夠提示錯誤信息。主函數(shù)中可以選擇由switch case 語句構(gòu)成主菜單,再根據(jù)提示進(jìn)行相應(yīng)操作。3.使用C語言程序編寫。三、實驗指導(dǎo)1)編程分析(1)在線性表的建立時,可直接用數(shù)組賦初值;(2)在查找功能中要實現(xiàn)的功能為:當(dāng)能找到時

19、該值時返回該值所在節(jié)點,找不到時返回-1;(3)修改功能是在查找的基礎(chǔ)上,將找到的值加以修改;(4)在插入功能中要實現(xiàn)的功能為:在找到指定節(jié)點后,當(dāng)線性表滿時,提示不能插入,當(dāng)線性表不滿時,插入數(shù)據(jù);(5)刪除功能主要實現(xiàn):當(dāng)線性表為空或者刪除位置超出線性表長度時,都顯示位置錯誤,其他情形進(jìn)行刪除操作。2)參考程序(略)實驗9 線性表的鏈?zhǔn)酱鎯ο到y(tǒng)維護(hù)一、實驗?zāi)康?.掌握線性表的鏈?zhǔn)酱鎯Φ亩x和基本使用方法。2.掌握線性表的鏈?zhǔn)酱鎯Υ鎯卧呐帕刑攸c。3.掌握線性表的鏈?zhǔn)酱鎯ο到y(tǒng)的建立、遍歷、插入、查找 、刪除操作,學(xué)會相關(guān)的函數(shù)定義和調(diào)用。二、實驗內(nèi)容1.建立一個鏈表。2.能夠?qū)⒌逆湵磉M(jìn)行查找、修改、插入、刪除等操作。當(dāng)輸入指令錯誤時,能夠提示錯誤信息。主函數(shù)中可以選擇由switch case 語句構(gòu)成主菜單,再根據(jù)提示進(jìn)行相應(yīng)操作。3.使用C語言程序編寫。三、實驗指導(dǎo)1)編程要求(1)以循環(huán)的方式建立一個有表頭的鏈表;(2)遍歷鏈表,并計算鏈表結(jié)點個數(shù);(3)在查找功能中要實現(xiàn):當(dāng)能找到時打印該值的前驅(qū)結(jié)點,找不到時輸出“沒找到”;(4)在插入功能中要實現(xiàn):在某個特定的結(jié)點之后插入一個結(jié)點;(5)在刪除功能主要實現(xiàn):刪除特定值的結(jié)點,注意區(qū)分該節(jié)點是否為鏈表結(jié)尾。2)參考程序(略)實驗10 二叉樹的

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論