C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用于底層開發(fā)。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產(chǎn)生少量的機器語言以及不需要任何運行環(huán)境支持便能運行的高效率程序設計語言。下面是小編帶來的有關c語言作業(yè)實驗心得,希望大家喜歡
在科技高度發(fā)展的今天,計算機在人們之中的作用越來越突出。而C語言作為一種計算機的語言,學習它將有助于我們更好的了解計算機,與計算機進行交流,因此,我們一定要學好C語言,這對我們以后的發(fā)展是十分重要的。
說到這,上機實驗當然就是一個必不可少的環(huán)節(jié)了,C語言靈活、簡潔的特點,只有通過編程實踐才能真正了解,真正說懂。為了更好地學習語法規(guī)定、掌握程序設計方法、提高程序開發(fā)能力,我們必須實際上機、編寫程序。
通過實驗我也發(fā)現(xiàn)了自己不少的問題,這都是只看書上的程序而沒有自己親身上機編寫程序而無法得知的,假如我們只因看熟書上的程序就以為自己已經(jīng)掌握了C語言那就大錯特錯了。
我主要存在以下的這些缺點:
1、 學習耐心與細心不足,如scanf(“%d”,&n);中的“&”有時候會忘了。而在最后
輸出時又錯寫成printf(“%d”,&n);從而錯誤得輸出了地址而不是我原來想要的答案。
2、 編程思想不夠發(fā)散,看著題目有時想不出解答的方法,更不用說編寫程序來解
題了。
3、
4、 基本功不夠,有些函數(shù)的表達不太精通,需要看書來核實,以致耗時較多。 知識不夠廣,有些內(nèi)容沒有學好,不能要用到時及時反映出來,認識程度不夠
深刻。
5、
6、 有時候不夠精簡,有一點用處不大或者說沒有也可以的文字存在。 英語水平較差,對錯誤的地方雖然電腦有說,但由于是英文,理解上還是存在
一點問題。
為了能更好地學好C語言,在今后學習中我要更多的動腦,綜合運用所學,多看相關東西,多上機練習,提高電腦水平,增強自學能力,把已會的東西掌握好。
實驗中我深刻意識到完成程序的編寫,決不意味著萬事大吉。認為萬無一失的程序,實際上機運行時可能會出現(xiàn)很多意想不到的問題。有時編譯程序檢測出一大堆錯誤,有時程序能夠順利運行,但是運行結果并不是你預期中想要的。因為開發(fā)環(huán)境所提供的編譯系統(tǒng)無法發(fā)現(xiàn)程序邏輯錯誤,或者是你原來所設計時的理論錯誤,這就只能靠自己的上機經(jīng)驗來分析判斷錯誤的所在了。所以程序的調(diào)試是一個技巧性很強的工作,它可能比編一個程序耗時更
多。由此可看出上機實踐的重要性。
通過本次C語言上機實驗,我對這個介于人類與非人類之間的計算機編程語言有了一定的體驗。編程的時候有因為順利編出程序而開心過、有因為做得比人家慢而郁悶過、有因為不知從何入手而無奈過、有因為不知錯出在哪而彷徨過??但隨著練習的增多,我對C語言比以前熟了很多,不再只是紙上談兵,我都有能力獨立做出一些程序,可能對于一些“高手來說這不算什么,或者他們早就會了,但我依然覺得很開心,因為我跟我自己比是進步了。
當然,我還得感謝老師的指導與幫助,如果沒有老師和其他同學的指點,我可能對C語言還是一籌莫展,在實驗中遇到的大大少少的問題與所犯過的錯誤將是我以后的要加以注意的地方與認真審查的部分,為我奠定堅固的基石。伴隨著學習的深入,我發(fā)現(xiàn)高深的東西還有很多很多,不懂不熟的知識還有很多,所以我不能停步,對C語言,我以后會更加努力學習的。
在科技高度發(fā)展的今天,計算機在人們之中的作用越來越突出。而c語言作為一種計算機的語言,我們學習它,有助于我們更好的了解計算機,與計算機進行交流,因此,c語言的學習對我們尤其重要。
在這個星期里,我們專業(yè)的學生在專業(yè)老師的帶領下進行了c語言程序實踐學習。在這之前,我們已經(jīng)對c語言這門課程學習了一個學期,對其有了一定的了解,但是也僅僅是停留在了解的范圍,對里面的好多東西還是很陌生,更多的在運用起來的時候還是感到很棘手,畢竟,萬事開頭難嘛。
由于時間的關系,我們的這次實踐課程老師并沒有給我們詳細的介紹,只是給我們簡單的介紹了幾個比較重要的實際操作。包括了程序模塊處理。簡單界面程序。高級界面程序。程序的添加修改。用程序做一元線性回歸處理以及用c語言程序來畫粒度分布圖等這幾樣比較重要的時間操作。
上機實驗是學習程序設計語言必不可少的實踐環(huán)節(jié),特別是c語言靈活、簡潔,更需要通過編程的實踐來真正掌握它。對于程序設計語言的學習目的,可以概括為學習語法規(guī)定、掌握程序設計方法、提高程序開發(fā)能力,這些都必須通過充分的實際上機操作才能完成。
學習c程序設計語言除了課堂講授以外,必須保證有不少于課堂講授學時的上機時間。因為學時所限,課程不能安排過多的統(tǒng)一上機實驗,所以希望學生有效地利用課程上機實驗的機會,盡快掌握用c語言開發(fā)程序的能力,為今后的繼續(xù)學習打下一個良好的基矗為此,我們結合課堂講授的內(nèi)容和進度,安排了12次上機實驗。課程上機實驗的目的,不僅僅是驗證教材和講課的內(nèi)容、檢查自己所編的程序是否正確,課程安排的上機實驗的目的可以概括為如下幾個方面:
1.加深對課堂講授內(nèi)容的理解
課堂上要講授許多關于c語言的語法規(guī)則,聽起來十分枯燥無味,也不容易記住,死記硬背是不可取的。然而要使用c語言這個工具解決實際問題,又必須掌握它。通過多次上機練習,對于語法知識有了感性的認識,加深對它的理解,在理解的基礎上就會自然而然地掌握c語言的語法規(guī)定。對于一些內(nèi)容自己認為在課堂上聽懂了,但上機實踐中會發(fā)現(xiàn)原來理解的偏差,這是由于大部分學生是初次接觸程序設計,缺乏程序設計的實踐所致。
學習c語言不能停留在學習它的語法規(guī)則,而是利用學到的知識編寫c語言程序,解決實際問題。即把c語言作為工具,描述解決實際問題的步驟,由計算機幫助我們解題。只有通過上機才能檢驗自己是否掌握c語言、自己編寫的程序是否能夠正確地解題。
通過上機實驗來驗證自己編制的程序是否正確,恐怕是大多數(shù)同學在完成老師作業(yè)時的心態(tài)。但是在程序設計領域里這是一定要克服的傳統(tǒng)的、錯誤的想法。因為在這種思想支配下,可能你會想辦法去"掩蓋"程序中的錯誤,而不是盡可能多地發(fā)現(xiàn)程序中存在的問題。自己編好程序上機調(diào)試運行時,可能有很多你想不到的情況發(fā)生,通過解決這些問題,可以逐步提高自己對c語言的理解和程序開發(fā)能力。
2.熟悉程序開發(fā)環(huán)境、學習計算機系統(tǒng)的操作方法
一個c語言程序從編輯、編譯、連接到運行,都要在一定的外部操作環(huán)境下才能進行。所謂"環(huán)境"就是所用的計算機系統(tǒng)硬件、軟件條件,只有學會使用這些環(huán)境,才能進行程序開發(fā)工作。通過上機實驗,熟練地掌握c語言開發(fā)環(huán)境,為以后真正編寫計算機程序解決實際問題打下基矗同時,在今后遇到其它開發(fā)環(huán)境時就會觸類旁通,很快掌握新系統(tǒng)的使用。
3.學習上機調(diào)試程序
完成程序的編寫,決不意味著萬事大吉。你認為萬無一失的程序,實際上機運行時可能不斷出現(xiàn)麻煩。如編譯程序檢測出一大堆錯誤。有時程序本身不存在語法錯誤,也能夠順利運行,但是運行結果顯然是錯誤的。開發(fā)環(huán)境所提供的編譯系統(tǒng)無法發(fā)現(xiàn)這種程序邏輯錯誤,只能靠自己的上機經(jīng)驗分析判斷錯誤所在。程序的調(diào)試是一個技巧性很強的工作,對于初學者來說,盡快掌握程序調(diào)試方法是非常重要的。有時候一個消耗你幾個小時時間的小小錯誤,調(diào)試高手一眼就看出錯誤所在。
通過這次為數(shù)不多的幾天計算機實踐學習,我們了解了一些關于c語言的知識,理解鞏固了我們c語言的理論知識,著對我們將來到社會工作將會有莫大的幫助。同時它讓我知道,只要你努力,任何東西都不會太難。
c語言作業(yè)實驗心得3
在這個星期里,我們專業(yè)的學生在專業(yè)老師的帶領下進行了c語言程序實踐學習。
在這之前,我們已經(jīng)對c語言這門課程學習了一個學期,對其有了一定的了解,但是也僅僅是停留在了解的范圍,對里面的好多東西還是很陌生,的在運用起來的時候還是感到很棘手,畢竟,萬事開頭難嘛。
由于時間的關系,我們的這次實踐課程老師并沒有給我們詳細的介紹,只是給我們簡單的介紹了幾個比較重要的實際操作。
包括了程序模塊處理。
簡單界面程序。
高級界面程序。
程序的添加修改。
用程序做一元線性回歸處理以及用c語言程序來畫粒度分布圖等這幾樣比較重要的時間操作。
上機實驗是學習程序設計語言必不可少的實踐環(huán)節(jié),特別是c語言靈活、簡潔,更需要通過編程的實踐來真正掌握它。
對于程序設計語言的學習目的,可以概括為學習語法規(guī)定、掌握程序設計方法、提高程序開發(fā)能力,這些都必須通過充分的實際上機操作才能完成。
試驗目的 1、 掌握一維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出的方法; 2、 掌握字符數(shù)組和字符串函數(shù)的使用; 3、 掌握與數(shù)組有關的算法特別是排序算法。 二、 實驗內(nèi)容 教材習題P1527.2 三、 算法流程圖 四、 程序清單 include void main {int i,j,min,s,a[11]; printf“請輸入數(shù)組
“; fori1;i10;i {printf“a[d]“,i; scanf“d“, } printf“
“; printf“原數(shù)據(jù)為
“; fori1;i10;i printf“5d“,a[i]; printf“
“; fori1;i9;i {mini; forji1;ja[j] minj; sa[i]; a[i]a[min]; a[min]s; } printf“排好序的數(shù)組為
“; fori1;i10;i printf“5d“,a[i]; printf“
“; } 五、 運行結果 六、 實驗總結(調(diào)試分析和體會) 這個星期我對使用數(shù)組進行程序設計的學習,在之前的基礎上,我更加努力,課前先預習,上課認真聽,經(jīng)過我的努力我進步了很多,雖然有了很大的進步,但在學習上還是存在很多問題。但這次的作業(yè)比上周的條件結構程序好多了。經(jīng)過自己的努力,我已經(jīng)掌握一維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出的方法;掌握字符數(shù)組和字符串函數(shù)的使用;掌握與數(shù)組有關的算法特別是排序算法。這一單元數(shù)組跟以前的選擇結構程序設計和循環(huán)控制相比,內(nèi)容要繁瑣得多,程序語句沒有以前那么明了,要經(jīng)過認真的思考,在經(jīng)過自己思考后,即使是自己懂得算法的原理后,要來調(diào)程序又困難重重,一個程序要經(jīng)過認真思考和反復的調(diào)試程序,才能完成。在多次的練習下,我基本上能結合程序掌握一些算法。通過多次的實驗操作,我的操作能力有了很大的進步,但在學習的過程中并非一帆風順,特別是在對程序的語句上,問題特別多。但我經(jīng)過耐心地操作和虛心地請教終于掌握了正確的操作方法
指針是c語言的精華,也是c語言的難點,它就像一把雙刃劍,鋒利無比但運用的不好也會給自己帶來危害,后果比較嚴重,所以重點來說說指針。
很多初學者弄不清指針和數(shù)組到底有什么樣的關系,為避免混淆不清,下面總結一下指針和數(shù)組的特性。
指針是保存數(shù)據(jù)的地址,任何存入指針變量的數(shù)據(jù)都會被當作地址來處理,指針變量本身的地址由編譯器另外存儲,存儲在哪里,我們并不知道,間接訪問數(shù)據(jù),首先取得指針變量的內(nèi)容,把它作為地址,然后從這個地址讀或寫入數(shù)據(jù)。
指針可以用間接訪問操作符(_)訪問,也可以用以下標的形式訪問,指針一般用于動態(tài)數(shù)據(jù)結構。
數(shù)組是用來保存數(shù)據(jù)的,數(shù)組名代表的是數(shù)組首元素的地址而不是數(shù)組的首地址,所以數(shù)組p與&p是有區(qū)別的,雖然內(nèi)容相同,但意義卻不同,&p才是整個數(shù)組的首地址,數(shù)組名是整個數(shù)組的名字,數(shù)組內(nèi)每個元素并沒有名字,不能把數(shù)組當一個整體來進行讀寫操作。
當然數(shù)組在初始化時也有例外,如int p[]=“12345”是合法的。
數(shù)組可以以指針的形式訪問如_(p+i);也可以以下標的形式訪問p[i],但其本質都是p所代表的數(shù)組首元素的地址加上i_sizeof(類型)個字節(jié)作為數(shù)據(jù)的真正地址來進行訪問的。
數(shù)組通常用于存儲固定數(shù)目且數(shù)據(jù)類型相同的元素。
剛開始的時候我
有點分不清指針數(shù)組和數(shù)組指針,現(xiàn)在也總結一下,指針數(shù)組,首先它是一個數(shù)組,數(shù)組的每個元素都是指針,可以理解為“存儲指針的數(shù)組”的簡稱,數(shù)組指針,首先它是一個指針,它指向一個數(shù)組,在32位系統(tǒng)下永遠只占4個字節(jié),至于它指向的數(shù)組有多少個字節(jié),并不知道,可以理解為“指向數(shù)組的指針”。
舉個例子,int _p1[10]與int (_p2) [10], 要理解這個問題,首先要清楚操作符的優(yōu)先級,“[]” 的優(yōu)先級比“_” 的優(yōu)先級高,所以首先p1與“[10]”結合構成一個數(shù)組p1[10],int _為修飾數(shù)組的內(nèi)容,所以數(shù)組元素是指向int類型的指針,所以這個是指針數(shù)組,“()” 的優(yōu)先級比“[]” 的優(yōu)先級高,“_”與p2結合構成一個指針變量,int修飾數(shù)組的內(nèi)容,即數(shù)組的每個元素,數(shù)組這里并沒有名字,是個匿名數(shù)組,現(xiàn)在清楚了p2是一個指針,它指向一個包含10個int類型數(shù)據(jù)的數(shù)組,即為數(shù)組指針。
下面再說說內(nèi)存管理,內(nèi)存分為三個部分:靜態(tài)區(qū)、堆、棧。
其實堆棧就是棧,而不是堆。
靜態(tài)區(qū)是保存自動全局變量和static變量。
靜態(tài)區(qū)的內(nèi)容在整個程序的生命周期內(nèi)都存在,由編譯器在編譯的時候分配。
堆是由malloc系統(tǒng)函數(shù)分配內(nèi)存的。
其生命周期由free和delete決定。
棧保存局部變量。
棧上的內(nèi)容只在函數(shù)范圍內(nèi)存在,當函數(shù)運行結束,這些內(nèi)容也會自動被銷毀。
再說說有關內(nèi)存需要注意的地方,定義了指針變量,在使用之前一定要初始化使它指向一塊合法的內(nèi)存,不管什么時候,我們在使用指針之前一定要確保指針是有效的。
使用malloc系列函數(shù)分配內(nèi)存,使用完之后應及時釋放內(nèi)存,以防止內(nèi)存泄露。
最后總結的說一下學習c語言的方法就是編程編程再編程,理論學習與上機操作同時進行,另外在編程序的過程中要養(yǎng)成良好的編程習慣。