《嵌入式C語言設(shè)計》實驗指導書_第1頁
《嵌入式C語言設(shè)計》實驗指導書_第2頁
《嵌入式C語言設(shè)計》實驗指導書_第3頁
《嵌入式C語言設(shè)計》實驗指導書_第4頁
《嵌入式C語言設(shè)計》實驗指導書_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 嵌入式c語言設(shè)計 實 驗 指 導 書編 寫適用專業(yè): 計算機科學與技術(shù)閩江學院 計算機科學 系2009年 7月前 言嵌入式c語言設(shè)計實驗由驗證性實驗一、eclipse for linux集成環(huán)境的使用,驗證性實驗二、特殊關(guān)鍵字及數(shù)據(jù)類型的應(yīng)用,綜合性實驗三、數(shù)據(jù)結(jié)構(gòu)與算法的應(yīng)用構(gòu)成,通過實驗應(yīng)達到下列要求:1.熟習eclipse for linux集成環(huán)境的使用。掌握該軟件的用法,包括c程序的編輯、編譯、調(diào)試、下載等的方法,為后續(xù)的綜合實驗打下基礎(chǔ)。2.加深嵌入式c語言中特殊關(guān)鍵字的認識;常用數(shù)據(jù)類型(基本和構(gòu)造)、程序基本結(jié)構(gòu)的用法;能熟練進行嵌入式c的程序設(shè)計。3.熟習linux系統(tǒng)下常

2、用數(shù)據(jù)結(jié)構(gòu)與算法的c語言實現(xiàn);能根據(jù)實驗內(nèi)容的要求進行綜合性的編程以實現(xiàn)特定的功能。4由于這門課程的實驗需要大量的時間練習,但受實驗課時的限制需要學生課外補足(16到24學時),因此要求學生在實驗前先預(yù)習實驗內(nèi)容并根據(jù)實驗大綱的說明先期做好實驗的準備工作。本指導書對綜合性實驗只給出設(shè)計的要求和指標不給實驗源代碼,由學生自己設(shè)計、編譯、調(diào)試并運行;通過實驗結(jié)果理解常用數(shù)據(jù)結(jié)構(gòu)與算法在嵌入式c中的實現(xiàn)方法;在實驗報告中回答思考題。目 錄 實驗一 eclipse for linux的使用3實驗二 特殊關(guān)鍵字及數(shù)據(jù)類型的應(yīng)用7實驗三 數(shù)據(jù)結(jié)構(gòu)與算法的應(yīng)用9實驗一 eclipse for linux的使

3、用實驗學時:2實驗類型:驗證實驗要求:必修一、實驗?zāi)康?、掌握eclipse for linux集成環(huán)境的用法。2、熟悉eclipse for linux的調(diào)試方法。3、練習嵌入式c語言的編程。二、實驗內(nèi)容1、熟悉并使用eclipse for linux集成環(huán)境2、閱讀并編譯實驗例程用eclipse for linux編譯實驗例程。3、運行程序并對照實驗源程序閱讀理解實驗結(jié)果的含義。三、實驗原理、方法和手段根據(jù)實驗例程,編輯、編譯并運行程序;驗證嵌入式c語言的數(shù)據(jù)與運算規(guī)則。通過練習熟悉eclipse for linux集成環(huán)境和c語言的數(shù)據(jù)與運算規(guī)則。四、實驗組織運行要求根據(jù)本實驗的特點、要

4、求和具體條件,采用以學生自主訓練為主的開放模式組織教學。重點:用eclipse for linux集成環(huán)境練習編程。難點:無 五、實驗條件具備linux操作系統(tǒng)、帶有eclipse for linux集成環(huán)境的pc機或虛擬機。六、實驗步驟1、閱讀例程源代碼2、編輯、編譯、運行3、記錄并理解運行顯示的信息4、回答思考題并撰寫實驗報告七、思考題1、 示例2的四個程序結(jié)果是什么?為什么?總結(jié)運算符的優(yōu)先級和結(jié)合方向的規(guī)則。2、 示例3 的兩個程序結(jié)果是什么?為什么?總結(jié)自加和自減運算前置和后置的注意事項。3、 示例4運行結(jié)果是什么?為什么?提出解決的方法并實現(xiàn)之。4、 示例5 運行結(jié)果是什么?為什么

5、?5、 示例6 運行結(jié)果是什么?自己總結(jié)位操作的注意問題。八、實驗報告1、實驗預(yù)習在實驗前每位同學都需要對本次實驗進行認真的預(yù)習,并寫好預(yù)習報告,在預(yù)習報告中要寫出實驗?zāi)康摹⒁?,需要用到的儀器設(shè)備、物品資料以及簡要的實驗步驟,形成一個操作提綱。對實驗中的安全注意事項及可能出現(xiàn)的現(xiàn)象等做到心中有數(shù),但這些不要求寫在預(yù)習報告中。設(shè)計性實驗要求進入實驗室前寫出實驗方案,并經(jīng)指導教師審閱后實施。2、實驗記錄學生開始實驗時,應(yīng)該將記錄本放在近旁,將實驗中所做的每一步操作、觀察到的現(xiàn)象和所測得的數(shù)據(jù)及相關(guān)條件如實地記錄下來。實驗記錄中應(yīng)有指導教師的簽名。3、實驗報告主要內(nèi)容包括對實驗數(shù)據(jù)、實驗中的特殊現(xiàn)

6、象、實驗操作的成敗、實驗的關(guān)鍵點等內(nèi)容進行整理、解釋、分析總結(jié),回答思考題,提出實驗結(jié)論或提出自己的看法。九、實驗例程示例1 從鍵盤輸入一個圓的半徑,計算此圓的周長和面積并輸出#include #define pi 3.1415926 void main()float radius; float area; float circ; printf(n enter a radius: ); scanf(%f, &radius); circ = 2 * pi * radius; area = pi * radius * radius; printf(n circumference : %f, cir

7、c); printf(n area: %f, area); 在eclipse for linux集成環(huán)境下編輯、編譯并執(zhí)行示例2 運算符的優(yōu)先級和結(jié)合方向示例。代碼(a) 代碼(b)# include # includevoid main() void main() int a,b; int a,b;a = 2; a=2;b = (a+)+(a+); b = (+a)+(+a);printf(“ b = %dn ”,b); printf(“b = %dn”,b);printf(“ a = %dn”,a); printf(“a = %dn”,a); 代碼(c) 代碼(d)# include #

8、includevoid main() void main() int a,b; int a,b;a = 2; a = 2;b = (a+)+(+a); b = (+a)+(a+);printf(“ b = %dn”,b); printf(“ b =%dn”,b);printf(“ a = %dn”,a); printf(“ a = %dn”,a); 在eclipse for linux集成環(huán)境下編輯、編譯并執(zhí)行;分析四個程序的運行結(jié)果并回答思考題1。示例3 自加和自減運算前置和后置/*代碼(a)*/ /* 代碼(b)*/# include #includevoid main(void) voi

9、d main(void) int a,b; int a,b;a = 5; a = 5;b = +a; b = a+;printf(“a=%d,b=%d”,a,b); printf(“a=%d,b=%d”,a,b);printf(“n”); /*換行*/ printf(“n”); /*換行*/a = 5; a = 5;b= a; b = a;printf(“a=%d,b=%dn”,a,b); printf(“a=%d,b=%dn”,a,b); 在eclipse for linux集成環(huán)境下編輯、編譯并執(zhí)行;分析兩個程序的運行結(jié)果并回答思考題2。示例4 顯示數(shù)的平方系列。# include# de

10、fine n 100# define a 2int main()int a;a=a;while(an)printf(“%dn”,a);a *= a;return 0;在eclipse for linux集成環(huán)境下編輯、編譯并執(zhí)行;分析程序的運行結(jié)果并回答思考題3。示例5 程序綜合使用不同的運算符。# includevoid main()int a,b,c,d;a = 8;b = 12;c = +a b;printf(“a = %d b = %d c=%dn”,a,b,c);d = b+ +a;printf(“a=%d b=%d d= %dn”,a,b,d);printf(“a/b = %d n

11、”,a/b);printf(“a%b=%dn”,a%b);printf(“a*=b=%dn”,a*=b);printf(“%dn”,(cd)?1:0);printf(“%dn”,(cd)?1:0);在eclipse for linux集成環(huán)境下編輯、編譯并執(zhí)行;分析程序的運行結(jié)果并回答思考題4。示例6 位操作練習自己編程實現(xiàn):求 9&5 的值;求 9|5 的值;求 95 的值;求 9 的值;求 93 的值;在eclipse for linux集成環(huán)境下編輯、編譯并執(zhí)行;分析程序的運行結(jié)果并回答思考題5。實驗二 特殊關(guān)鍵字及數(shù)據(jù)類型的應(yīng)用實驗學時:2實驗類型:驗證實驗要求:必修一、實驗?zāi)康?、加

12、深對嵌入式c語言中特殊關(guān)鍵字的認識。2、進一步熟悉常用數(shù)據(jù)類型(基本和構(gòu)造)、程序基本結(jié)構(gòu)的用法。3、能熟練進行嵌入式c的程序設(shè)計。二、實驗內(nèi)容1、閱讀實驗例程源程序,理解數(shù)據(jù)類型、程序基本結(jié)構(gòu)的用法。2、編譯實驗例程,掌握特殊關(guān)鍵字的用法。3、運行程序并對照實驗源程序閱讀理解實驗結(jié)果的含義。三、實驗原理、方法和手段根據(jù)實驗例程,編輯、編譯并運行程序;驗證嵌入式c語言的數(shù)據(jù)類型、程序基本結(jié)構(gòu)的用法。通過編譯并運行實驗例程熟悉特殊關(guān)鍵字的用法。四、實驗組織運行要求根據(jù)本實驗的特點、要求和具體條件,采用以學生自主訓練為主的開放模式組織教學。重點:掌握特殊關(guān)鍵字的用法。 難點:掌握特殊關(guān)鍵字的用法。

13、 五、實驗條件具備linux操作系統(tǒng)、帶有eclipse for linux集成環(huán)境的pc機或虛擬機。六、實驗步驟1、閱讀例程源代碼2、編輯、編譯、運行3、記錄并理解運行顯示的信息4、回答思考題并撰寫實驗報告七、思考題1、自己總結(jié)if、for、while、switch等語句的使用注意點。2、分析示例【3】兔子規(guī)律的數(shù)列是什么?3、示例【4】存在什么問題?如何在編譯時檢查?。4、示例【5】的宏定義存在什么問題?如何在編譯時檢查?5、程序在編譯時優(yōu)化可能存在什么問題?6、通過實驗,自己總結(jié)volatile關(guān)鍵字的意義。7、在該例程中%0、%1分別代表什么?八、實驗報告1、實驗預(yù)習在實驗前每位同學都

14、需要對本次實驗進行認真的預(yù)習,并寫好預(yù)習報告,在預(yù)習報告中要寫出實驗?zāi)康?、要求,需要用到的儀器設(shè)備、物品資料以及簡要的實驗步驟,形成一個操作提綱。對實驗中的安全注意事項及可能出現(xiàn)的現(xiàn)象等做到心中有數(shù),但這些不要求寫在預(yù)習報告中。設(shè)計性實驗要求進入實驗室前寫出實驗方案,并經(jīng)指導教師審閱后實施。2、實驗記錄學生開始實驗時,應(yīng)該將記錄本放在近旁,將實驗中所做的每一步操作、觀察到的現(xiàn)象和所測得的數(shù)據(jù)及相關(guān)條件如實地記錄下來。實驗記錄中應(yīng)有指導教師的簽名。3、實驗報告主要內(nèi)容包括對實驗數(shù)據(jù)、實驗中的特殊現(xiàn)象、實驗操作的成敗、實驗的關(guān)鍵點等內(nèi)容進行整理、解釋、分析總結(jié),回答思考題,提出實驗結(jié)論或提出自己的

15、看法。九、實驗例程示例【1】 輸入三個整數(shù),輸出最大數(shù)和最小數(shù)。main()int a,b,c,max,min;printf(input three numbers:);scanf(%d%d%d,&a,&b,&c);if(ab)max=a;min=b;elsemax=b;min=a;if(maxc)min=c;printf(max=%dnmin=%d,max,min);示例【2】 輸入一行字符,分別統(tǒng)計出其中英文字母、空格、數(shù)字和其它字符的個數(shù)。#include void main()char c;int letters=0,space=0,digit=0,others=0;printf(pl

16、ease input some charactersn);while(c=getchar()!=n)if(c=a&c=a&c=0&c=9)digit+;elseothers+;printf(all in all:char=%d space=%d digit=%d others=%dn,letters,space,digit,others);示例【3】 古典問題:有一對兔子,從出生后第3 個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數(shù)為多少?#include void main()long f1,f2;int i;f1=f2=1;for(i=

17、1;i=20;i+)printf(%12ld %12ld,f1,f2);if(i%2=0) printf(n); /*控制輸出,每行四個*/f1=f1+f2; /*前兩個月加起來賦值給第三個月*/f2=f1+f2; /*前兩個月加起來賦值給第三個月*/注意:以下程序編譯時,若集成編譯器不支持-e、-o、-s等選項可直接用gcc編譯!示例【4】編譯以下程序,分析結(jié)果是否滿足要求#define add(a,b) a+bint main(void)int a,b;a=3*add(4,2);printf(%dn,a);return 0;運行后回答思考題3示例【5】編譯以下程序,分析結(jié)果是否滿足要求#d

18、efine sisfall(x) printf(%dn,x);return -1;int main(void)int a=10;if(a=20n);return 0;運行后回答思考題4示例【6】分別優(yōu)化與不優(yōu)化編譯以下程序,分析程序功能是否滿足要求void main(void)volatile int *i=0xff;int *j=0xff;*i=0;*i=1;*i=0;sleep(1);*j=0;*j=1;*j=0;運行后回答思考題5示例【7】分別優(yōu)化與不優(yōu)化編譯以下程序,分析程序功能是否滿足要求int int_data1;volatile int int_data2;void interr

19、upt()int_data1+;int_data2+;void main()int temp;temp=int_data2;while(int_data2=temp)if(int_data2!=temp)printf(int_data2!=tempn);temp=int_data1;while(int_data1=temp)if(int_data1!=temp)printf(int_data1!=tempn);運行后回答思考題6示例【8】內(nèi)嵌匯編練習#include int main(void) long eax=4; long ebx=2; _asm_ _volatile_ (addl %1

20、, %0 : =b(long)ebx) : a(long)eax), b(long)ebx) : 1 ); printf(ebx=%dn, ebx); return 0;編譯、運行實驗例程,回答思考題7實驗三 數(shù)據(jù)結(jié)構(gòu)與算法的應(yīng)用實驗學時:4實驗類型:綜合實驗要求:必修一、實驗?zāi)康?、進一步熟悉eclipse for linux集成環(huán)境的使用2、熟悉linux系統(tǒng)下常用數(shù)據(jù)結(jié)構(gòu)與算法的c語言實現(xiàn)。3、能根據(jù)實驗內(nèi)容的要求進行綜合性的編程以實現(xiàn)特定的功能。二、實驗內(nèi)容1、在linux系統(tǒng)下,用c語言實現(xiàn)單向鏈表的功能。2、該鏈表具有插入、刪除、查找的基本功能。3、可附加的功能有判空、遍歷、清空、求長度。4、用該鏈表實現(xiàn)一個特定的用途(選做)。5、設(shè)計一個遞歸的void 函數(shù),它將一系列數(shù)位垂直地寫到屏幕上。例如,2008 將會被寫成:2008三、實驗原理、方法和手段根據(jù)高級語言程序設(shè)計和數(shù)據(jù)結(jié)

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論