當前位置:學問谷 >

行政範例 >報告 >

c語言實踐報告總結範文2篇

c語言實踐報告總結範文2篇

【c語言實踐報告總結例一】

c語言實踐報告總結範文2篇

一、實習時間:20xx年x月x日—20xx年x月x日

二、實習地點:第一微機室

三、實習目的

1、熟悉我們自己所用的計算機的C語言開發環境,並且能夠熟練掌握,達到錯誤能找到原因並且加以改正。

2、加深對課本理論知識的理解,進一步掌握書中重點、難點實例,鍛鍊自己的編寫程序能力和實際應用能力。

3、上機調試程序的過程中,發現錯誤,解決錯誤,保證程序的正確運行,運行結果與給定結果完全相同。

4、學會用書中基本知識解決實際中的一些問題,將書本所學的內容與實際操作相結合,掌握把實際問題轉變為C語言描述的算法的方法,明確思路。將自身的不足與缺陷改掉,養成良好編輯風格

5、培養我們的主觀能動性、溝通、表達能力和團隊合作意識,為我們以後的發展打下基礎。

四、實習內容及方法:

在本次實習中,我們採用了由淺及深、由易到難的實習方法,而且也是按照書本的教學進程內容進行的,同時採取了實際應用與理論相結合的方法,在機房裏面實習,一邊理解,思考做題的思路與解法,另一邊就可以馬上進行上機實際操作。這對於我們加深對C語言的理解、操作以及動手能力都有了很大的幫助與提高。

實訓的內容主要分為了七個版塊:

第一版塊:

1、Turbo C運行環境。

瞭解TC的基本環境,熟悉常用菜單項和快捷鍵:在這一小節中,需要熟練的掌握並應用Turbo C的運行環境,和基本配置。Turbo C是在計算機上廣泛使用的一個C語言開發環境,它具有方便、直觀、易用的界面和豐富的函數庫。它把程序的編輯、編譯、連接和運行等操作去不都集中在一個界面上進行,使用非常方便。並且Turbo C不需要特別安裝,只需要將其拷貝到硬盤上就可以使用了。 為了方便管理用户的程序文件和維Turbo C2.0的運行環境,客户應在機子

上建立自己的工作目錄,一邊用來存放自己所需要開發的源程序文件。下面就是建立怎樣自己文件夾,在空白區域內輸入自己所建立的文件夾路徑即可。

2、C程序的編輯、編譯、連接和運行過程。

掌握C程序的運行步驟,初步瞭解C程序的特點。在Turbo C的運行中,快捷鍵使用非常方便,只需Ctrl+菜單欄中菜單名的首字母即可。

上面是一個程序編譯與鏈接的截屏。第一個Compile to OBJ將源程序編譯為OBJ文件,Make EXE file 編譯連接一次進行,Link EXE file將OBJ文件連接為EXE文件。

3、VC6.0環境的熟悉,自己按照軟件並在軟件中能夠調試簡單的C語言程序。

第二版塊:

1、C語言數據類型:整型、實型、字符型。

C語言的函數類型非常豐富,除了這幾類以外,還有實型、數組、指針、結構體等,在這一小節中,主要了解關於數據類型的定義、用法以及他們的存儲類型,一邊與以後靈活運用。

C語言中還有常量與變量之分,常量是在程序執行過程中其值不變的量。二且在C語言中常量不需要類型説明就可以直接使用,常量的類型是由常量的本身隱含決定的。

2、運算符及表達式。

在C語言中,預算符非常豐富運算靈活,常用的有以下幾個:

(1)算術運算符:+、-、*、/、%(取餘)及++(自增)、--(自減)。

(在這裏需要注意的是:“/”運算符,在C語言中兩邊都是整數的話,運算結果只取整數部分;“%”他的兩邊都必須是整數才可以運行;“**、--”運用這個運算符時要注意“先用後加(減)、先加(減)後用”的問題)

(2)賦值運算符:=及複合賦值運算符(+=、-=、*=、/=、%=等)。

(在這裏需要注意的是“=、==”的區別,要明確用法及所用的地方,“=”它的作用是賦值,“==”它的作用是判斷相等)

(3)逗號運算符:,(對於逗號表達式索要注意的是要明確它所用的地方以及在使用時所要注意的細節)。

瞭解三種運算符的優先級,掌握三種運算符及相應表達式的應用(詳見附錄)。

第三版塊:在這一節裏,我們實習了C語言的三大結構:

1、順序結構:

2、選擇結構:if„„else,switch語句。

在這裏許啊喲我們學習的很多,因為只要是程序,就脱離不了這個三大結構的範疇。在這個學習裏我編寫了

(1)、輸入某年某月某日,判斷這一天是這一年的第幾天?。

(2)、給一個不多於5位的正整數,要求:一、求它是幾位數,二、逆序打印出各位數字。

(3)、某市不同車牌的出租車3公里的起步價和計費分別為:夏利7元,3公里以外,2.1元/公里;富康8元,3公里以外,2.4元/公里;桑塔納9元,3公里以外,2.7元/公里。編程:從鍵盤輸入乘車的車型及行車公里數,輸出應付工資。

源程序減附錄;

經過這幾個程序的練習,讓我聊股的掌握了選擇語句的用法以及精髓,同是這個用法和技巧已經深深的可在了我的腦海裏,還有同過這些個程序的編寫,讓我對以前有的絲絲而非的地放完全通透理解,獲益匪淺。

循環結構:while、do-while、for

在循環這一節裏,我們主要做了以下程序:

(1)、求200-300之間所有素數,每5個換行。

(2)、猜數字遊戲。規則為:輸入一個0-10之間的數字,有5次猜測機會。如果輸入0-4之間的數字,提示“太小了”;如果輸入5-7之間的數字,提示“接近了”;如果輸入9-15之間的數字,提示“太大了”;如果輸入8,提示“correct!”;如果次數超過5次,提示“沒有機會了,退出!”。

(3)、打印輸出如下圖形:(“◇”菱形)

(4)、有1、2、3、4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?

提示:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列後再去掉不滿足條件的排列。

(5)、打印輸出九九乘法表。

我以前就對循環這一節裏的.內容就理解的比較好,現在做這些題很順利的就做下去了,但在做的同是也會出現以寫小的問題,但這個讓我也更深一步的理解了循環語句的用法、思路以及其中的精華。

總的對這一節來説,使自己更神一步的理解了選擇、過程中需要注意的一些細節問題。

第四版塊:

1、一、二維數組的定義、引用及初始化。初始化:

一維數組:初始化賦值的一般形式為: static 式]={值,值„„值}; 其中static表示是靜態存儲類型,態存儲數組和外部存儲數組才可作初始化賦值二維數組:

a.可以只對部分元素賦初值,未賦初值的元素自動取b.如對全部元素賦初值,則第一維的長度可以不給出。2、一、二維數組的應用。

在一維數組的應用中,要與循環嵌套使用,用,但是在這裏,嵌套還要是循環的嵌套,因為只有這樣使用才可以使程序更加簡潔、簡便。就像第五題:有一個班4個學生,(1)求每一門課程的平均分; (2)求每一個學生的平均分;

思路:定義一個二維數組,用二重循環輸入這個數組,然後進行相加,在求平均直,最後在用二重循環進行輸出。

循環的用法以及在使用類型説明符 數組名[常量表達 C語言規定只有靜0值。 門課。編程實現如下功能:

在這裏,進行了求平均值的過二維數組要與也要與循環嵌套使5程。這裏進行了二重循環輸出。

第五版塊:

1、函數的定義和調用

函數可分為庫函數和用户定義函數兩種。

(1)庫函數

庫函數只不需要用户自己定義的,只需要在用的時候將其調用出來用就可以了,非常方便,並且C語言有這豐富的函數庫。

(2)用户定義函數

用户自己定義的函數,是屬於一個自定義範疇,自己定義的函數不僅要在程序中定義函數本身, 而且在主調函數模塊中還必須對該被調函數進行類型説明,然後才能使用。

2、函數參數和函數值

(1)無 參函數

函數定義、函數説明及函數調用中均不帶參數。 主調函數和被調函數之間不進行參數傳送。 此類函數通常用來完成一組指定的功能,可以返回或不返回函數值。

(2)有參函數

也稱 為帶參函數。在函數定義及函數説明時都有參數, 稱為形式參數(簡稱為形參)。在函數調用時也必須給出參數, 稱為實際參數(簡稱為實參)。 進行函數調用時,主調函數將把實參的值傳送給形參,供被調函數使用。

(1)有返回值函數

此類函數被調用執行完後將向調用者返回一個執行結果, 稱為函數返回值。由用户定義的這種要返回函數值的函數,必須在函數定義和函數説明中明確返回值的類型。

(2)無返回值函數

此類函數用於完成某項特定的處理任務, 執行完成後不向調用者返回函數值。這類函數類似於其它語言的過程。 由於函數無須返回值,用户在定義此類函數時可指定它的返回為“空類型”, 空類 型符的類型説明為“void”。

2、函數的嵌套調用和遞歸調用

C語言中不允許作嵌套的函數定義。因此各函數之間是平行的,不存在上一級函數和下一級函數的問題。 但是C語言允許在一個函數的定義中出現對另一個函數的調用。 這樣就出現了函數的嵌套調用。即在被調函數中又調用其它函數。

這以小節內容經過幾個練習題的聯繫,讓我掌握到了其中的主要部分,對此也比較的明確。

4、局部變量和全局變量及變量的存儲類別

局部變量:局部變量也稱為內部變量。局部變量是在函數內作定義説明的。其作用域僅限於函數內, 離開該函數後再使用這種變量是非法的。

全局變量:全局變量也稱為外部變量,它是在函數外部定義的變量。 它不屬於哪一個函數,它屬於一個源程序文件。其作用域是整個源程序。在函數中使用全局變量,一般應作全局變量説明。 只有在函數內經過説明的全局變量才能使用。全局變量的説明符為extern。 但在一個函數之前定義的全局變量,在該函數內使用可不再加以説明。

在C語言中,對變量的存儲類型説明有以下四種:auto 自動變量 register 寄存器變量 extern 外部變量 static 靜態變量

在局部變量中所定義的變量,只能在該函數中使用,在函數編輯時,預處理命令下定義的變量屬於全局變量,在每個函數中都可以使用,傳遞參數時,不用傳遞全局變量。

在這裏,我主要説的是第二個練習題,它的思想是一個加密算法。思路是:現編寫一個主程序,實現函數調用,在子函數中實現加密算法並且輸出。是將接收的值設置為一個全局變量。就像下面的這個例子:在這裏,將所輸入的值進行分解成個、十、百、千位,分別進行加密算法。

加上與第四位對調,第三位與第二位對調。在最後輸出結果。 第六版塊:

1、指針、指針變量的概念

指針的基本概念 在計算機中,所有的數據都是存放在存儲器中的。存儲器中的一個字節稱為一個內存單元, 不同的數據類型所佔用的內存單元數不等,如整型量佔2個單元,字符量佔1個單元等,紹。為了正確地訪問這些內存單元, 必須為每個內存單元編上號。存單元的編號即可準確地找到該內存單元。內存單元的編號也叫做地址。 並且在使用函數在輸入

除以8以後的餘數,在將第一位 一般把 在第二章中已有詳細的介 根據一個內

既然在這裏進行加密算法,每位上的數6

根據內存單元的編號或地址就可以找到所需的內存單元,所以通常也把這個地址稱為指針。“指針變量”是指取值為地址的變量

2、數組的指針

一個數組是由連續的一塊內存單元組成的。 數組名就是這塊連續內存單元的首地址。一個數組也是由各個數組元素(下標變量) 組成的。每個數組元素按其類型不同佔有幾個連續的內存單元。 一個數組元素的首地址也是指它所佔有的幾個內存單元的首地址。 一個指針變量既可以指向一個數組,也可以指向一個數組元素, 可把數組名或第一個元素的地址賦予它。如要使指針變量指向第i個元素可以把i元素的首地址賦予它或把數組名加3、指向字符串的指針 返回指針的函數(1)、 字符串指針變量本身是一個變量,串本身是存放在以該首地址為首的一塊連續的內存空間中並以‘結束。字符數組是由於若干個數組元素組成的,它可用來存放整個字符串。(2)、 對字符數組作初始化賦值,必須採用外部類型或靜態類型,串指針變量則無此限制;

(3)、對字符串指針方式 char *ps="C Language";ps="C Language";而對數組方式:static char st[]={"C Language"}char st[20]; st={"C Language"};而只能對字符數組的各元素逐個賦值。3、指針數組及指向指針的指針

指針數組的説明與使用一個數組的元素值為指針則是指針數組。是一組有序的指針的集合。 指針數組的所有元素都必須是具有相同存儲類型和指向相同數據類型的指針變量。

指針數組説明的一般形式為: 類型説明符在指針這一小節,主要是用指針實現:輸入數對換,把最大的數與最後一個數對換。寫3個函數:輸入個數。

在這裏進行函數的調用,一個輸入函數,一個操作函數,一個輸出函數。

i賦予它。

而字符’作為串的

而對字符可以寫為: char *ps; 不能寫為:

指針數組*數組名[數組長度]

10個整數,將其中最小的數與第一個

10個數;進行處理;輸出10

用於存放字符串的首地址。在這裏用數組實現了輸入。

在這裏用指針實現了將最小的數與第一個數對換,

把最大的數與最後一個數對換。

在最後進行輸出。 第七版塊:

實訓七屬於一個綜合類型的題目,他要求的比較高,必須在自己王權理解通透了課本知識以後才有可能理解這道題,並且進行修改完善。主要這道題本身是在VC環境下運行的,將其移植到Turbo C環境下運行,這其中牽扯到一些語法不同,在Turbo C中不可以運行,要進行慢慢調試。經過不懈的努力、修改,終於將其成功的在Turbo C環境下可以正常運行了。(詳見附錄)

五、結論 收穫

我的收穫:在本次實習中,我學到了很多實際有用的東西,而且基本上都是在課本上學不到的,並且也在實習中梳理了自己對C語言這門課程所學的所有內容,讓自己對C這門課程有了更進一步的認識,有了一個良好的基礎,為自己的以後打下了堅實基礎。從開頭到現在,所有的內容實習完了,上機實驗是學習程序設計語言必不可少的實踐環節,在 C語言靈活、簡潔中,更需要通過編程的實踐來真正掌握它。

歷時4天的《C語言程序設計》已經結束了,在這幾天編程的過程中感觸頗多,實訓編程的同時暴露出了許多我自身存在的問題,同時也對自身有了很大的提高。

首先,對我以前做題做事非常馬虎的毛病有了很大的改進,通過在這幾天編程的過程中的鍛鍊,我現在做題比以前仔細多了,會小心翼翼地去看每一個地方,會仔細地檢查程序的每一個字母、標點,以及每個可能出錯的地方,更會特別仔細,生怕自己一不小心搞錯了,而導致整個程序都無法運行。

其次,在編程的過程當中彌補了我許多知識上的缺陷,弄清楚了我不懂的地方和似是而非的地方,使我及時補上了欠缺,為自己以後的人生道路打下了良好基礎,同時也讓我對每一件事都有了一個好的心態去對待它,更讓自己在編寫程序的過程中每時每刻都處於充足的狀態。

再次,通過幾天綜合實訓編程使我的知識形成了一個完整的框架結構,而不再是零散的知識個體,使我在使用時更加的方便,更加靈活,以前有好多題目要寫十行八行的,還有些地方弄得不是太懂,現在只需要五六行就可以搞定,而且還對於思路特別清晰、明確。

第四,在實習結束後,我對做完的習題檢查比再是一切的走馬觀花,而是仔細核對、認真檢查,和以前相比明顯改善了好多,以前自己對於檢查程序總是沒有耐心,不好好檢查,有問題總是找老師,相對於實習之後來説,有了很大的改善,自己不但可以坐下來耐心檢查,還能夠自己將程序調試成功,這對於現在的我來説是一個明顯的進步。

第五,通過實習改變了我做題時心煩氣燥的習慣,現在做題可以平和靜氣的完成。

第六,通過實習我的自制能力更強了,基本完全可以控制自己,避免外界的干擾,安心地完成自己的工作。

第七,在學習過程中,由於天氣炎熱,心裏煩躁,同時也是每天都盯着頻幕看,腦袋都看大了,但是我卻一直堅持了下來,這對於我來説,也是一個非常好的習慣。這同時也是我的一個收穫。

第八,實訓過程中,充分發揮團隊協作精神,共同進步,幫助同學順利完成實訓課程,有困難一起解決,同時也使我在他們身上學到了很多東西。

總之,通過實習使我自身的知識體系得到鞏固、提高以及使團隊工作的能力得到鍛鍊。

不足

我的不足:

首先,我的第一個,同時也是一個最大的缺點,自己對於理論知識掌握的還不是很通透,理解的不夠徹底,對於一些問題似似而非,給自己編寫程序的過程中帶來了很大的麻煩。

其次,我不能夠精心的去完成每一個程序,對於每個程序而言,都是馬馬虎虎,只要運行結果是對的,那就可以了。雖然我自己也知道這樣是不好的,但是自己就是不願意去改,在經過實習之後雖然有所改善,但在我看來,改進的不是很大。

第三,自己做題時還有些馬虎,一些小的細節在編寫程序過程中不注意,只有在編譯連接是才可以發現、對其進行修改,對於一些小程序還不能實現一次就可以完成編譯連接。

第四,做題時自己不能心平氣和的去做。

第五,自己的子宅裏不夠強,不能持之以恆的坐在自己的座位上編寫程序,

歇一會就要起來轉轉。

六、致謝

在此,我僅代表我自己,對老師您致以崇高的敬意和深深的感謝,沒有您,就沒有我那麼多的收穫,您不辭辛苦,在這炎熱天氣裏,放棄您的休息時間來為我們輔導,在輔導過程中,您更是盡心盡力,從來沒有少過一節課,更沒有過遲到早退,對我們是全程陪同,在我們實習中隨時出現問題,隨時解決。只要發現問題,您從來沒有説是不管過,從來沒有煩躁過,對我們提出的問題,也是耐心解決,一邊不懂,接着再講一邊,臉龐流下的汗水,您卻從來沒有在意過。對我們泥更是不計報酬的為我們服務,讓我們有一個好的學習環境,不用為自己遇到問題而煩惱,在這裏我想對您説一聲:老師,您辛苦了!請接受您的學子的深深謝意與感激。

在這裏,也對學校表示由衷的謝意,感謝學校為我們提供了良好的實習環境,讓我們在這炎熱的天氣裏,能夠舒爽的坐在教室裏實習,而不用操心任何問題,在這裏,對我們學校表示謝意。

【c語言實踐報告總結例二】

1、只有頻繁用到或對運算速度要求很高的變量才放到data區內,如for循環中的計數值。

2、其他不頻繁調用到和對運算速度要求不高的變量都放到xdata區。

3、常量放到code區,如字庫、修正係數。

4、邏輯標誌變量可以定義到bdata中。

在51系列芯片中有16個字節位尋址區bdata,其中可以定義8*16=128個邏輯變量。這樣可以大大降低內存佔用空間。定義方法是: bdata bit LedState;但位類型不能用在數組和結構體中。

5、data區內最好放局部變量。

因為局部變量的空間是可以覆蓋的(某個函數的局部變量空間在退出該函數是就釋放,由別的函數的局部變量覆蓋),可以提高內存利用率。當然靜態局部變量除外,其內存使用方式與全局變量相同;

6、確保程序中沒有未調用的函數。

在Keil C裏遇到未調用函數,編譯器就將其認為可能是中斷函數。函數裏用的局部變量的空間是不釋放,也就是同全局變量一樣處理。這一點Keil做得很愚蠢,但也沒辦法。

7、如果想節省data空間就必須用large模式

將未定義內存位置的變量全放到xdata區。當然最好對所有變量都要指定內存類型。

8、使用指針時,要指定指針指向的內存類型。

在C51中未定義指向內存類型的通用指針佔用3個字節;而指定指向data區的指針只佔1個字節;指定指向xdata區的指針佔2個字節。如指針p是指向data區,則應定義為: char data *p;。還可指定指針本身的存放內存類型,如:char data * xdata p;。其含義是指針p指向data區變量,而其本身存放在xdata區。

以前沒搞過C51,大學時代跟單片機老師的時候也是搗鼓下彙編,現在重新搞單片機,因為手頭資料不多,找到一些C51的程序,發現裏面有這些關鍵字,不甚明瞭,沒辦法只好找了下,發現如下描述:

從數據存儲類型來説,8051系列有片內、片外程序存儲器,片內、片外數據存儲器,片內程序存儲器還分直接尋址區和間接尋址類型,分別對應code、data、xdata、idata以及根據51系列特點而設定的pdata類型,使用不同的存儲器,將使程序執行效率不同,在編寫C51程序時,最好指定變量的存儲類型,這樣將有利於提高程序執行效率(此問題將在後面專門講述)。與ANSI-C稍有不同,它只分SAMLL、COMPACT、LARGE模式,各種不同的模式對應不同的實際硬件系統,也將有不同的編譯結果。

9、在51系列中data,idata,xdata,pdata的區別

data:固定指前面0x00-0x7f的128個RAM,可以用acc直接讀寫的,速度最快,生成的代碼也最小。

idata:固定指前面0x00-0xff的256個RAM,其中前128和data的128完全相同,只是因為訪問的方式不同。idata是用類似C中的指針方式訪問的。彙編中的語句為:mox ACC,@Rx.(不重要的補充:c中idata做指針式的訪問效果很好)

xdata:外部擴展RAM,一般指外部0x0000-0xffff空間,用DPTR訪問。

pdata:外部擴展RAM的低256個字節,地址出現在A0-A7的上時讀寫,用movx ACC,@Rx讀寫。這個比較特殊,而且C51好象有對此BUG,建議少用。但也有他的優點,具體用法屬於中級問題,這裏不提。

  • 文章版權屬於文章作者所有,轉載請註明 https://xuewengu.com/flxz/baogao/4omnw.html