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