第一篇:C語(yǔ)言高級(jí)編程心得體會(huì)
高級(jí)語(yǔ)言程序設(shè)計(jì)心得體會(huì)
通過(guò)這五天的高級(jí)語(yǔ)言程序設(shè)計(jì)學(xué)習(xí),我學(xué)到了很多東西,同時(shí)也更深一層次的體會(huì)到C語(yǔ)言知識(shí)的奧妙和無(wú)窮,激起了我對(duì)C語(yǔ)言知識(shí)學(xué)習(xí)的興趣和激情。
學(xué)好C語(yǔ)言,除了一些必須要記憶的關(guān)鍵字、語(yǔ)法和庫(kù)函數(shù),還要學(xué)會(huì)使用C語(yǔ)言的有關(guān)算術(shù)運(yùn)算符,以及包含這些運(yùn)算符的表達(dá)式,掌握賦值語(yǔ)句的使用方法和各種類型數(shù)據(jù)(例如熟悉如何定義一個(gè)整型、字符型和實(shí)型的變量,以及對(duì)它們賦值的方法,掌握不同類型數(shù)值之間賦值的規(guī)律等)的輸入輸出方法,能正確使用各種格式轉(zhuǎn)換符等,并且還需要靠自己的邏輯思維能力。
另外,上機(jī)實(shí)驗(yàn)是學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言必不可少的實(shí)踐環(huán)節(jié),特別是C語(yǔ)言靈活、簡(jiǎn)潔,更需要通過(guò)編程的實(shí)踐來(lái)真正掌握它,然后,通過(guò)多次上機(jī)練習(xí),就對(duì)語(yǔ)法知識(shí)慢慢有了感性的認(rèn)識(shí),時(shí)間久了,就會(huì)加深對(duì)它的理解,在理解的基礎(chǔ)上就會(huì)自然而然地掌握C語(yǔ)言的語(yǔ)法規(guī)定。對(duì)于一些內(nèi)容自己認(rèn)為在課堂上聽(tīng)懂了,但上機(jī)實(shí)踐中會(huì)發(fā)現(xiàn)原來(lái)理解的偏差,這就又加深了我們對(duì)C語(yǔ)言的認(rèn)識(shí)。
還有就是在編程時(shí)我們要細(xì)心,編完后記得檢查語(yǔ)法及符號(hào)遺漏或錯(cuò)誤等相關(guān)的問(wèn)題。
C語(yǔ)言課程設(shè)計(jì)和現(xiàn)代計(jì)算機(jī)技術(shù)的實(shí)際應(yīng)用相結(jié)合,是我們?cè)诒倦A段學(xué)完理論課程之后對(duì)自己該方面的能力的一次很好的檢驗(yàn),從
開(kāi)始的算法思路到運(yùn)行調(diào)試以及另人興奮的可用程序,都是一個(gè)很好的學(xué)習(xí)和鍛煉的過(guò)程,使我們鞏固了原有的理論知識(shí),培養(yǎng)了我們靈活運(yùn)用和組合集成所學(xué)過(guò)知識(shí)及技能來(lái)分析、解決實(shí)際問(wèn)題的能力。使我們體會(huì)到自身知識(shí)和能力能在實(shí)際中的應(yīng)用和發(fā)揮。不但可以激發(fā)創(chuàng)新意識(shí),還可以開(kāi)發(fā)創(chuàng)造能力、培養(yǎng)溝通能力。這次實(shí)習(xí)時(shí)間雖然僅有五天時(shí)間,但確實(shí)使我受益非淺。通過(guò)實(shí)習(xí)我豐富了計(jì)算機(jī)操作經(jīng)驗(yàn),更加深了對(duì)C語(yǔ)言的了解,熟悉了其環(huán)境,更增強(qiáng)了對(duì)visual c++的使用技巧。另外,實(shí)習(xí)中老師對(duì)我們進(jìn)行了細(xì)心、耐心的指導(dǎo),鼓勵(lì)我們對(duì)程序進(jìn)行合理改進(jìn),培養(yǎng)了我們的創(chuàng)新意識(shí)和創(chuàng)新能力。原來(lái)是我認(rèn)為可怕的課程設(shè)計(jì),就在種種輔助條件下完成了,心里有說(shuō)不出的高興。
在以后的三年大學(xué)專業(yè)學(xué)習(xí)乃至以后的就業(yè)工作中,C語(yǔ)言都起著巨大的作用,從很大程度上來(lái)說(shuō),我們專業(yè)的學(xué)生,要想在這個(gè)專業(yè)取得一定的成就,現(xiàn)在就得好好學(xué)好C語(yǔ)言,為未來(lái)埋下伏筆。總的來(lái)說(shuō),我覺(jué)得C語(yǔ)言并沒(méi)想象中的那么晦澀難懂,關(guān)鍵是我們要先認(rèn)真學(xué)會(huì),熟悉它的語(yǔ)法知識(shí),多多上機(jī)實(shí)踐。只有先打好基礎(chǔ),我們才能學(xué)好C語(yǔ)言,才會(huì)熟練編程,最后才有所突破,有所建樹(shù)。
第二篇:C語(yǔ)言高級(jí)編程及實(shí)例剖析
C語(yǔ)言高級(jí)編程及實(shí)例分析
第一章:內(nèi)存管理
c語(yǔ)言對(duì)程序精心編譯時(shí),將函數(shù)中命令、語(yǔ)句編譯成相應(yīng)序列的機(jī)器指令代碼,放在代碼段;將已初始化的數(shù)據(jù),如已賦值的全局變量、靜態(tài)局部變量等,放在數(shù)據(jù)段;將未初始化的數(shù)據(jù)放在BBS段內(nèi);將臨時(shí)數(shù)據(jù),如函數(shù)調(diào)用時(shí)傳遞的參數(shù)、局部變量、返回調(diào)用時(shí)的地址等放在棧段內(nèi);而對(duì)一些動(dòng)態(tài)變化的數(shù)據(jù),如在程序執(zhí)行中建立的一些數(shù)據(jù)結(jié)構(gòu),如鏈表,動(dòng)態(tài)數(shù)組等,則放在堆結(jié)構(gòu)中。
內(nèi)存管理系統(tǒng)是操作系統(tǒng)的重要部分。C語(yǔ)言中使用malloc()函數(shù)和free()函數(shù)來(lái)分配和釋放內(nèi)存。再次釋放已經(jīng)釋放的內(nèi)存和釋放未被分配的內(nèi)存都會(huì)造成系統(tǒng)的崩潰。
1.1.1 PC存儲(chǔ)器結(jié)構(gòu)
PC機(jī)存儲(chǔ)器結(jié)構(gòu)分為主存儲(chǔ)器、外存儲(chǔ)器和高速緩存幾個(gè)部分。
1.1.4 內(nèi)存編譯模式
編譯模式是指如何在內(nèi)存中放置程序代碼及數(shù)據(jù),如何分配堆棧,并確認(rèn)占用的內(nèi)存大小及如何存取它們,當(dāng)指定內(nèi)存模式以后,語(yǔ)言編譯程序?qū)词孪冗x擇好的內(nèi)存模式編譯組織程序。C語(yǔ)言提供了6種編譯模式,分別是:微模式,小模式,緊湊模式,中模式,大模式和巨模式。
1.1.5 堆概念和結(jié)構(gòu)
堆是一種動(dòng)態(tài)的存儲(chǔ)結(jié)構(gòu)(存儲(chǔ)鏈表,動(dòng)態(tài)數(shù)組等),實(shí)際上就是數(shù)據(jù)段的自由存儲(chǔ)區(qū)。
1.1.6 堆管理函數(shù)
1.malloc()函數(shù)
用來(lái)分配內(nèi)存。函數(shù)原型為void *malloc(unsigned size)
如:int *p;
P=(int*)malloc(sizeof(int));
如果要分配100個(gè)int型的空間時(shí),表示為:int*p=(int*)malloc(sizeof(int));
2.free()函數(shù)
用來(lái)釋放內(nèi)存。函數(shù)原型為void *free(指針變量)
如:int *p=(int *)malloc(4);
*p=100;
free(p);
3.realloc()函數(shù)
用來(lái)重調(diào)空間的大小,函數(shù)聲明為:void *realloc(void *block,int size);
block是指向要擴(kuò)張或縮小的內(nèi)存空間的指針。Size指定新的大小。
4.calloc()函數(shù)
用來(lái)分配一個(gè)能容納n個(gè)元素,每個(gè)元素長(zhǎng)度為size的內(nèi)存空間。函數(shù)聲明為void *calloc(size_t nelem,size_t elsize)。該函數(shù)將分配一個(gè)容量為nelem *size大小的空間,并用0初始化該內(nèi)存區(qū)域,即每個(gè)地址裝入0.該函數(shù)將返回一個(gè)指向分配空間的指針。如果沒(méi)有空間可用,則返回NULL指針。若在大數(shù)據(jù)模式下建立遠(yuǎn)堆,則可用farmalloc函數(shù)。
1.2.2 函數(shù)剖析函數(shù)init_Heap()
實(shí)現(xiàn)了初始化內(nèi)存分配程序的功能
2函數(shù)My_Free()
完成函數(shù)釋放內(nèi)存的功能函數(shù)Allocate()
實(shí)現(xiàn)了分配按指定大小分配內(nèi)存塊的功能
第三章:文件高級(jí)操作
字符型(文本型)文件和二進(jìn)制文件{有什么區(qū)別?}
標(biāo)準(zhǔn)庫(kù)函數(shù)
①文件打開(kāi)(fopen)
函數(shù)原型FILE *fopen(char *filename,char *mode)
②文件關(guān)閉(fclose)
函數(shù)原型int *fclose(FILE *fp)
字節(jié)(字符)讀寫(xiě)函數(shù)fgetc和fputc
字符串讀寫(xiě)函數(shù)fgets和fputs
數(shù)據(jù)塊讀寫(xiě)函數(shù) fread和fwrite
格式會(huì)讀寫(xiě)函數(shù) fscanf和fprint
①字符串讀函數(shù)fgets
Char *fgets(char *s,int n,F(xiàn)ILE *filepointer);
②字符串寫(xiě)函數(shù)fputs
Int fputs(char *s,FILE *filepointer)
③數(shù)據(jù)塊讀函數(shù)fread
Unsigned fread(void *ptr,unsigned size,unsigned n,FILE *filepointer)④數(shù)據(jù)塊寫(xiě)函數(shù)fwrite
Unsigned fwrite(void *ptr,unsigned size,unsigned n,FILE filepointer)
①格式化讀fscanf
Int scanf(FILE *filepointer,const char *format,[&a,&b,...])
②格式化寫(xiě)fprintf
Int fprintf(FILE *filepointer,const char *format,[表達(dá)式列表,...]);
文件定位操作
①rewind函數(shù)
函數(shù)原型:void rewind(FILE *filepointer);
功能:將filepointer所指向的文件的位置指針重新置回到文件的開(kāi)頭 ②fseek函數(shù)
函數(shù)原型:int fseek(FILE *fp,long offset,int whence)
功能:whence 基準(zhǔn)點(diǎn);offset從基準(zhǔn)點(diǎn)開(kāi)始移動(dòng)的字節(jié)數(shù); ③ftell函數(shù)
函數(shù)原型:long ftell(FILE *filepointer);
功能:返回文件的當(dāng)前位置;
④feof函數(shù)
原型:int feof(FILE *fp);
功能:判斷fp所代表的文件是否結(jié)束
Stdin 標(biāo)準(zhǔn)輸入(鍵盤(pán))
Stdout 標(biāo)準(zhǔn)輸出(顯示器)
Stdaux 標(biāo)準(zhǔn)輔助輸入輸出(異步串行口)
Stdprn 標(biāo)準(zhǔn)打印(打印機(jī))
Stderr標(biāo)準(zhǔn)錯(cuò)誤輸出(顯示器)
簡(jiǎn)單的來(lái)說(shuō),++i 和 i++,在單獨(dú)使用時(shí),就是 i=i+1。而 a = ++i,相當(dāng)于 i=i+1;a = i;
而 a = i++,相當(dāng)于 a = i;i=i+1;
第三篇:c語(yǔ)言編程心得體會(huì)
c語(yǔ)言編程心得體會(huì)
C語(yǔ)言是一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。它既有高級(jí)語(yǔ)言的特點(diǎn),又具有匯編語(yǔ)言的特點(diǎn)。它可以作為系統(tǒng)設(shè)計(jì)語(yǔ)言,編寫(xiě)工作系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語(yǔ)言,編寫(xiě)不依賴計(jì)算機(jī)硬件的應(yīng)用程序。下面讓我們通過(guò)以下的心得體會(huì)來(lái)了解其他人在c語(yǔ)言編程上的學(xué)習(xí)感悟。
在科技高度發(fā)展的今天,計(jì)算機(jī)在人們之中的作用越來(lái)越突出,而c語(yǔ)言作為一種計(jì)算機(jī)的語(yǔ)言,我們學(xué)習(xí)它,有助于我們更好的了解計(jì)算機(jī),與計(jì)算機(jī)進(jìn)行交流,因此,c語(yǔ)言的學(xué)習(xí)對(duì)我們尤其重要。
在這個(gè)星期里,我們專業(yè)的學(xué)生在專業(yè)老師的帶領(lǐng)下進(jìn)行了c語(yǔ)言程序?qū)嵺`學(xué)習(xí)。在這之前,我們已經(jīng)對(duì)c語(yǔ)言這門(mén)課程學(xué)習(xí)了一個(gè)學(xué)期,對(duì)其有了一定的了解,但是也僅僅是停留在了解的范圍,對(duì)里面的好多東西還是很陌生,更多的在運(yùn)用起來(lái)的時(shí)候還是感到很棘手,畢竟,萬(wàn)事開(kāi)頭難嘛。
說(shuō)到我學(xué)習(xí)C語(yǔ)言時(shí),真是用千言萬(wàn)語(yǔ)呀!記得剛開(kāi)始學(xué)的時(shí)候,我的C語(yǔ)言學(xué)的并不是很好,學(xué)期都過(guò)了快一半了,對(duì)C語(yǔ)言還是一知半解的,我是第四小組的組長(zhǎng),組長(zhǎng)的職位給我了很大的壓力,我一直認(rèn)為做學(xué)問(wèn)都要做到這一點(diǎn),要么做到最好,要么就不去做它,本著這樣一個(gè)心太,我下了一個(gè)決心就是要學(xué)好C語(yǔ)言,開(kāi)始我用了最笨的方法,就是一個(gè)厚厚的本子,一支筆,一本C語(yǔ)言書(shū),天天有事沒(méi)事抄程序,不管什么程序,我都不放過(guò),一個(gè)一個(gè)的抄,抄了有好幾個(gè)本,回到宿舍就在機(jī)子上調(diào)程序,一個(gè)月過(guò)去了,老師讓做C語(yǔ)言項(xiàng)目,是一個(gè)學(xué)生成績(jī)管理系統(tǒng),在當(dāng)時(shí)這樣一個(gè)項(xiàng)目對(duì)我們來(lái)說(shuō)真是難度不小,可是我本著一個(gè)試一試的心太去做了,一個(gè)打死我都不敢相信的奇跡出現(xiàn)了,這個(gè)程序我寫(xiě)出來(lái)了,而且?guī)缀跏且粴夂铣?,而且只用了一個(gè)晚上的時(shí)間,寫(xiě)了足足有六頁(yè)的代碼,看著寫(xiě)在本子上的代碼我有點(diǎn)不相信,這怎么可能呢,當(dāng)晚我沒(méi)有睡著覺(jué),高興啊,誰(shuí)能睡的著。做這個(gè)項(xiàng)目讓我明白了一些道理,再大的程序也是有不同的小程序組成的,因?yàn)槲姨焯斐绦?,抄的全是小程序,做這個(gè)大點(diǎn)的程序的時(shí)候我發(fā)現(xiàn)全是一個(gè)一個(gè)的小程序,抄了一個(gè)月的程序,當(dāng)然能很順利的就寫(xiě)出來(lái)了。
后來(lái)我明白了,抄程序是最笨的方法但我認(rèn)為它是進(jìn)步最快的方法,抄程序是積累經(jīng)驗(yàn)的時(shí)候,而做項(xiàng)目才是真正把所學(xué)為所用的時(shí)候,可以說(shuō)只有你做一個(gè)大點(diǎn)的項(xiàng)目出來(lái)才能真正是說(shuō)明你學(xué)到了東西,你會(huì)用所學(xué)的東西,要不然就算你學(xué)的再多,不會(huì)用也沒(méi)用啊,我還發(fā)現(xiàn)有很多同學(xué),在學(xué)飛C語(yǔ)言的時(shí)候比我學(xué)的要好,可是他們卻做不出來(lái)項(xiàng)目,就是說(shuō)學(xué)會(huì)了但是不會(huì)用,那我說(shuō)還不如不學(xué)呢。有點(diǎn)浪費(fèi)時(shí)間。做學(xué)問(wèn)特別是計(jì)算機(jī)一定要做的精準(zhǔn),比如說(shuō)一個(gè)語(yǔ)句一個(gè)關(guān)鍵字,你一定要把它幾乎所有的用方法都能清楚明白,比如說(shuō)print語(yǔ)句,對(duì)于它你一定要明白什么時(shí)候用“‘,這些你都要非常的清楚明白,要不然說(shuō)不定那一天你用會(huì)碰上麻煩事,一句話要學(xué)精了,語(yǔ)法掌握住了,接下來(lái)就是寫(xiě)程序了,其實(shí)抄程序并不是說(shuō)一直沒(méi)有目的去抄,你會(huì)發(fā)現(xiàn)當(dāng)你抄一段時(shí)間以后就不用再抄了,因?yàn)榇蟛糠侄际且粯拥哪阋豢淳椭涝趺磳?xiě)了,當(dāng)你一看到程序就知道它什么功能,那里有錯(cuò)的時(shí)候,那你的成績(jī)可是進(jìn)步不小啊,這并不需要太多的時(shí)間,只要你用心一個(gè)月足夠了。
跟大家說(shuō)幾點(diǎn)經(jīng)驗(yàn):
1.在學(xué)習(xí)的時(shí)候一定要注意這幾點(diǎn),不會(huì)的一定要問(wèn)明白,不管誰(shuí)能讓他教會(huì)你知識(shí)就是你的了,要學(xué)會(huì)讓知識(shí)為我所用。在看書(shū)的時(shí)候一定要做好標(biāo)記,特別是不懂的地方一定要標(biāo)明是什么意思。
2.在學(xué)習(xí)語(yǔ)言的時(shí)候一定要記住動(dòng)手,不要只說(shuō)不做,這樣會(huì)行成眼高手低,不管什么樣的程序都要親手做過(guò)才能說(shuō)會(huì)了,不要整天說(shuō)我不會(huì)學(xué)不會(huì),其實(shí)是你不想學(xué),只是你下決心抄一個(gè)月程序,我保證我能有大的進(jìn)步,其實(shí)當(dāng)你抄到一周到兩周的時(shí)候你就會(huì)特想抄,因?yàn)槟銜?huì)發(fā)現(xiàn)程序你能看懂了,能幫別人調(diào)程序了,有一種成就感呀!它會(huì)讓你更加努力的去學(xué)習(xí)。
3.再一點(diǎn)是我建議大家在上課的時(shí)候少看課本,課本要在下課的時(shí)候看特別是上課前一定要先看看課本,上課的時(shí)候呢就不要看了,不要老師講到那個(gè)問(wèn)題了你馬上在書(shū)上找,這樣不好,會(huì)影響你的注意力,其實(shí)還真不如注意聽(tīng)老師講呢?因?yàn)槟阋且贿吢?tīng)一邊看課本,你是看到了書(shū)上的答案但是老師的思路你沒(méi)有聽(tīng)到,而要是你不看的話,你聽(tīng)明白了思路,一定是想迫切的看到結(jié)果,這個(gè)時(shí)候看課本才是記的最死的時(shí)候,學(xué)習(xí)要的是就是個(gè)效率嗎?
4.提醒大家學(xué)習(xí)要講效率,我發(fā)現(xiàn)有很多同學(xué)天天學(xué)習(xí),每天最早到教室,走的又最晚,別人玩他在學(xué),別人學(xué)他也學(xué),可是別的一天30%的學(xué)習(xí)時(shí)間卻比他們一天50%以上的學(xué)習(xí)時(shí)間的效率要高上不僅僅是幾倍的問(wèn)題,所以我要說(shuō)的是不要對(duì)別人說(shuō)你天天在學(xué)習(xí),要說(shuō)你天天在進(jìn)步,學(xué)習(xí)不是要你學(xué)習(xí)了多久是,是要你學(xué)了多少東西的,你學(xué)一小時(shí)還沒(méi)有別人學(xué)一分鐘的效率高,難道自己不是浪費(fèi)時(shí)間嗎?不想學(xué)的時(shí)候就不要學(xué),出去玩一會(huì)兒再來(lái)學(xué)說(shuō)不定會(huì)有更好的效果。希望這些經(jīng)驗(yàn)?zāi)芨蠹曳窒硪幌?,最后還是要跟大家強(qiáng)調(diào)一點(diǎn),抄程序是學(xué)好C語(yǔ)言的最好最快的方法。
學(xué)習(xí)C語(yǔ)言已經(jīng)一年多,對(duì)C也算得上半個(gè)入門(mén)者,期間也寫(xiě)過(guò)一些自?shī)首詷?lè)的代碼。其實(shí)個(gè)人認(rèn)為無(wú)論學(xué)習(xí)什么語(yǔ)言,最重要的是掌握習(xí)編程思想,然而C語(yǔ)言一種學(xué)習(xí)編程思想的基礎(chǔ)語(yǔ)言。所以,C語(yǔ)言的重要性不言而喻。
下面是對(duì)C語(yǔ)言中有許多重要知識(shí)的總結(jié):
1、一些基本的函數(shù)和基本數(shù)據(jù)類型的應(yīng)用。其中,基本數(shù)據(jù)類型分為整型、浮點(diǎn)型、字符型、枚舉類型?;竞瘮?shù)包括輸入輸出函數(shù)。
2、把運(yùn)算符的優(yōu)先順序排列清楚,要分清楚哪個(gè)先運(yùn)算,哪個(gè)后運(yùn)算。
3、在編程之前要考慮好程序的算法,寫(xiě)出流程圖,這樣才能更加快速的、有效的編程。
4、要分清楚各個(gè)變量的生存期和作用域,不能發(fā)生混淆,以致發(fā)生錯(cuò)誤。
5、數(shù)組和指針是c語(yǔ)言的經(jīng)典之處,可以通用,并且互相轉(zhuǎn)換,具有非常強(qiáng)大的功能,但是使用不當(dāng)?shù)脑挘瑫?huì)造成程序出錯(cuò),打亂原有程序的規(guī)律,使可讀性明顯變差。
6、結(jié)構(gòu)體也是常用的一種數(shù)據(jù)類型,它的功能也比較強(qiáng)大,相對(duì)于指針而言,結(jié)構(gòu)體掌握起來(lái)比較容易理解和使用。
7、對(duì)于文件的操作是非常關(guān)鍵的,把輸入的數(shù)據(jù)保存起來(lái),下次還能夠使用,這才是關(guān)鍵問(wèn)題。所以對(duì)文件操作是否成功,使程序是否編制成功的重要因素。
我認(rèn)為c語(yǔ)言是一門(mén)很基礎(chǔ)的語(yǔ)言,所有的計(jì)算機(jī)語(yǔ)言都是相通的,只要一門(mén)學(xué)會(huì)了,其他語(yǔ)言就會(huì)很容易學(xué)會(huì)。但是c語(yǔ)言是基礎(chǔ)中的基礎(chǔ),掌握好c語(yǔ)言對(duì)于今后別的語(yǔ)言的學(xué)習(xí)是非常有好處的。雖然學(xué)會(huì)了c語(yǔ)言的大部份基礎(chǔ)知識(shí),但是要掌握好c語(yǔ)言并不是一件簡(jiǎn)單的事情。以為把一點(diǎn)一滴的基礎(chǔ)知識(shí)掌握牢固是不夠的,主要是對(duì)程序編制要求的理解,思考如何利用c語(yǔ)言的所有基礎(chǔ)知識(shí)來(lái)實(shí)現(xiàn)要編制程序的作用,以及如何更加簡(jiǎn)便的實(shí)現(xiàn)等等。這就需要有很強(qiáng)邏輯思維,和長(zhǎng)時(shí)間的經(jīng)驗(yàn)積累,以及自身的不斷鉆研等諸多因素的有機(jī)統(tǒng)一。
而我們軟件測(cè)試的工作并不要求我們能夠編出很復(fù)雜的程序,只要能夠讀懂編程人員的源程序就可以了。所以把c語(yǔ)言的基礎(chǔ)知識(shí)學(xué)好是非常有必要的,也是必不可少的。
在學(xué)習(xí)c語(yǔ)言期間,每天都要不斷的上機(jī)練習(xí),這也是學(xué)好c語(yǔ)言必不可少的一步。因?yàn)椴还苣憷碚撝R(shí)掌握的如何熟練,不上機(jī)實(shí)際操作的話,是沒(méi)有任何效果的,許多問(wèn)題都是在實(shí)際上機(jī)操作中顯現(xiàn)出來(lái)的,在書(shū)本上是體現(xiàn)不出來(lái)的。書(shū)本上是永遠(yuǎn)不會(huì)出現(xiàn)你自己的思想成果的,正是應(yīng)了那句話“實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)。”
學(xué)習(xí)完c語(yǔ)言后,我利用書(shū)本上的知識(shí)完成了軟件工程師系統(tǒng)的11個(gè)版本。完成后才感覺(jué)到編寫(xiě)一個(gè)程序是多么不容易。光是這么一個(gè)簡(jiǎn)單的程序,就需要不斷鉆研和反復(fù)的推敲,還要加上大量的上機(jī)時(shí)間,現(xiàn)在才明白為什么編程是腦力勞動(dòng)的真正意義了。
總之,通過(guò)c語(yǔ)言的學(xué)習(xí),使我對(duì)計(jì)算機(jī)語(yǔ)言有了一些初步的認(rèn)識(shí)和理解,使我對(duì)計(jì)算機(jī)語(yǔ)言不再像以前一樣一無(wú)所知,認(rèn)為那是高不可攀的、十分難以理解、一般人學(xué)不會(huì)的東西了。我認(rèn)為只要學(xué)習(xí)方法掌握好,再加上刻苦的練習(xí),是完全有可能學(xué)好任何一門(mén)計(jì)算機(jī)語(yǔ)言的。最后用一句話表明在學(xué)習(xí)c語(yǔ)言過(guò)程中的感受,那就是“痛苦并快樂(lè)著?!?/p>
第四篇:編程語(yǔ)言學(xué)習(xí)心得
程序語(yǔ)言學(xué)習(xí)的總結(jié)
通過(guò)兩年的學(xué)習(xí),我們基本上掌握了C語(yǔ)言,C++和C#三個(gè)編程課程。對(duì)于程序設(shè)計(jì)語(yǔ)言的學(xué)習(xí),分為學(xué)習(xí)語(yǔ)法規(guī)定、掌握程序設(shè)計(jì)方法、提高程序開(kāi)發(fā)能力,這些都必須通過(guò)充分的實(shí)際上機(jī)操作才能完成。課程上的安排除了課堂講授以外,學(xué)院設(shè)有專門(mén)課堂到實(shí)驗(yàn)室進(jìn)行上機(jī)操作實(shí)驗(yàn)。
要利用c語(yǔ)言學(xué)到的知識(shí)編寫(xiě)c語(yǔ)言程序,即把c語(yǔ)言作為工具,通過(guò)上機(jī)才能檢驗(yàn)自己是否掌握c語(yǔ)言、自己編寫(xiě)的程序是否能夠正確地解題。通過(guò)上機(jī)實(shí)驗(yàn)來(lái)驗(yàn)證自己編制的程序是否正確。在這種思想支配下,可能你會(huì)想辦法去“掩蓋”程序中的錯(cuò)誤,而不是盡可能多地發(fā)現(xiàn)程序中存在的問(wèn)題。自己編好程序上機(jī)調(diào)試運(yùn)行時(shí),可能有很多你想不到的情況發(fā)生,通過(guò)解決這些問(wèn)題,可以逐步提高自己對(duì)c語(yǔ)言的理解和程序開(kāi)發(fā)能力。
在原有的C語(yǔ)言的基礎(chǔ)知識(shí)之上,初步接觸C++時(shí)感到比較簡(jiǎn)單易懂。但隨著之后的步步深入學(xué)習(xí),C++的不同之處以及其優(yōu)勢(shì)逐。從第二章引入了C++簡(jiǎn)單程序的設(shè)計(jì)。包括一些C++語(yǔ)言的概述,基本數(shù)據(jù)類型和表達(dá)式,數(shù)據(jù)的輸入與輸出,算法的基本東芝結(jié)構(gòu),以及自定義類型數(shù)據(jù)等知識(shí)。此部分多與C語(yǔ)言相似。之后又學(xué)習(xí)了函數(shù)的相關(guān)內(nèi)容,這里學(xué)到了新的知識(shí)要點(diǎn)----函數(shù)重載。該內(nèi)容尤其在現(xiàn)在做課程設(shè)計(jì)的時(shí)候尤為重要。類是C++語(yǔ)言的精華之所在,在學(xué)習(xí)中,我感覺(jué)到類和C語(yǔ)言中的結(jié)構(gòu)體有很大的相似之處,但在類中的構(gòu)造函數(shù)、拷貝構(gòu)造函數(shù)以及類的組合,經(jīng)常弄混淆一些概念。在這之后又學(xué)習(xí)了類的繼承與派生。這使得類與類之間形成了樹(shù)狀圖的模型,各子類可以訪問(wèn)到父類的一些數(shù)據(jù)成員,同樣也實(shí)現(xiàn)了數(shù)據(jù)的之間的“共享”。我個(gè)人在編寫(xiě)派生類的構(gòu)造函數(shù)和拷貝構(gòu)造函數(shù)時(shí),感覺(jué)很不熟練,后面章節(jié)的多態(tài)性主要學(xué)習(xí)了運(yùn)算符的重載,其本質(zhì)就是函數(shù)的重載。
在學(xué)習(xí)C#中,類是具有相同特性和行為的對(duì)象的抽象。它使用關(guān)鍵字class聲明的。在c#中僅允許單個(gè)繼承,類只能從一個(gè)基類繼承實(shí)現(xiàn)。但是一個(gè)類可以實(shí)現(xiàn)一個(gè)以上的接口。對(duì)象是人們要進(jìn)行研究的任何事物,從最簡(jiǎn)單的整數(shù)到復(fù)雜的飛機(jī)等局可以看對(duì)象,它不僅表示具體的事物,還能表示抽象的規(guī)則、計(jì)劃或者事件。接口只是包含方法、委托或事件的簽名。方法的實(shí)現(xiàn)是在實(shí)現(xiàn)接口的類中完成的。接口可以是命名空間或類的成員,并可以包含下列成員:每個(gè)C#可執(zhí)行文件都有一個(gè)入口—Main方法:static void Main()修飾符public表示可以在任何地方訪問(wèn)該方法。所以可以在類的外部調(diào)用它。修飾符static表示方法不能在類的實(shí)例上執(zhí)行,因此不必先實(shí)例化類在調(diào)用。在變量聲明時(shí):變量是類或者結(jié)構(gòu)中的字段,如果沒(méi)有顯示初始化,創(chuàng)建這些變量時(shí),其值就是默認(rèn)的0。變量是方法的局部變量就必須在代碼中顯示初始化,之后才能在語(yǔ)句中使用它們的值。
課堂上要講授許多關(guān)于語(yǔ)法規(guī)則,要使用這些工具解決問(wèn)題,通過(guò)多次上機(jī)練習(xí),對(duì)于語(yǔ)法知識(shí)有了更深刻的認(rèn)識(shí),在理解的基礎(chǔ)上就會(huì)自然而然地掌握。一個(gè)程序從編輯、編譯、連接到運(yùn)行,都要在一定的外部操作環(huán)境下才能進(jìn)行。通過(guò)上機(jī)實(shí)驗(yàn),熟練地掌握開(kāi)發(fā)環(huán)境,為以后真正編寫(xiě)計(jì)算機(jī)程序解決實(shí)際問(wèn)題打下基礎(chǔ)。
第五篇:C語(yǔ)言編程
#include(stdio.h)
main()
{ int question[4]={-1,-1,-1,-1},i=0,j=0,k=0,A=0,B=0,answer[4]={0};
char again='y';
while(again=='y'){ srand((int)time(0));
while(i4){ k=(int)rand()%10;
for(j=0;ji;j++)if(k==question[j]){ k=-1;break;}
if(k==-1)continue;question[i]=k;i++;}/*while i*/
for(i=8;i0;i--)/*還有8次機(jī)會(huì)*/
{ A=0;B=0;printf(“n你還剩下%d次機(jī)會(huì)。”,i);
printf(“n請(qǐng)輸入四個(gè)0-9之間的數(shù)字,中間用空格隔開(kāi)n”);for(j=0;j4;j++)scanf(“%d”,&answer[j]);
for(j=0;j4;j++)
for(k=0;k4;k++)
{ if(answer[j]==question[k]){ if(j==k)A++;else B++;} }/*for*/
if(A==4){ again='0';
printf(“n你贏了,還繼續(xù)猜嗎?(y/n)”);
while(again!='y'&&again!='n')
scanf(“...%c”,&again);break;}/*if*/
printf(“n%dA%dB”,A,B);if(i==1){ again='0';
printf(“n你輸了,正確答案是”);
for(j=0;j4;j++)
printf(“%dt”,question[j]);
printf(“n還繼續(xù)嗎?(y/n)”);
while(again!='y'&&again!='n')scanf(“%c”,&again);
printf(“%c”,again);break;}/*if*/ }/*for changce*/ }/*while again*/ printf(“感謝您玩這個(gè)游戲?!?;}