當前位置:首頁 » 編程語言 » 深度理解c語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

深度理解c語言

發布時間: 2022-06-10 07:04:04

A. c語言 二叉樹深度,解釋一下

葉子節點就是度為0的結點,比度為2的結點多一個,即度2的沒有,這樣度為1的結點就是11個,故深度為12(1度就是結點連著1個子樹,二叉樹最多倆子樹,即左右子樹)

B. 想深度學習C和單片機,希望給推薦本好書!謝謝

要是沒有基礎的話建議你看看 譚浩強的《c程序設計》,Stephen Prata的《c prime plus》,郭天祥的《新概念51單片機C語言教程.入門、提高、開發》。
若是有一定基礎的話可以看看《c和指針》,《C Traps and Pit falls》,單片機的書找一本分模塊開發的就行了。

C. 如何學好C語言

給你看看一位老師的建議吧,很有幫助的!一 ,怎樣學習C語言很多人對學習C語言感到無從下手,經常問我同一個問題:究竟怎樣學習C語言?我是一個教師,已經開發了很多年的程序,和很多剛剛起步的人一樣,學習的第一個計算機語言就是C語言。經過這些年的開發,我深深的體會到C語言對於一個程序設計人員多麼的重要,如果不懂C語言,你想寫底層程序這幾乎聽起來很可笑,不懂C語言,你想寫出優秀高效的程序來這簡直就是天方夜譚。為什麼C語言如此重要呢?第一:C語言語法結構很簡潔精妙,寫出的程序也很高效,很便於描述演算法,大多數的程序員願意使用C語言去描述演算法本身,所以,如果你想在程序設計方面有所建樹,就必須去學它。第二:C語言能夠讓你深入系統底層,你知道的操作系統,哪一個不是C語言寫的?所有的windows,Unix,Linux,Mac,os/2,沒有一個里外的,如果你不懂C語言,怎麼可能深入到這些操作系統當中去呢?更不要說你去寫它們的內核程序了。第三:很多新型的語言都是衍生自C語言,C++,Java,C#,J#,perl...哪個不是呢?掌握了C語言,可以說你就掌握了很多門語言,經過簡單的學習,你就可以用這些新型的語言去開發了,這個再一次驗證了C語言是程序設計的重要基礎。還有啊,多說一點:即使現在招聘程序員,考試都是考C語言,你想加入it行業,那麼就一定要掌握好C語言。那麼究竟怎樣學習C語言呢?1:工欲善其事,必先利其器這里介紹幾個學習C語言必備的東東:一個開發環境,例如turbo C 2.0,這個曾經占據了DOS時代開發程序的大半個江山。但是現在windows時代,用turbo C有感覺不方面,編輯程序起來很吃力,並且拖放,更沒有函數變數自動感應功能,查詢參考資料也不方便。建議使用Visual C++,這個東西雖然比較大塊頭,但是一旦安裝好了,用起來很方便。一本學習教程,現在C語言教材多如牛毛,但推薦大家使用《C語言程序設計》譚浩強主編 第二版 清華大學出版社,此書編寫的很適合初學者,並且內容也很精到。除此以外,現在有很多輔助學習的軟體,畢竟現在是Window時代了,學習軟體多如牛毛,不象我們當初學習,只有讀書做題這么老套。我向大家推薦一個「集成學習環境(C語言)」,里邊的知識點總結和常式講解都非常好,還有題庫測試環境,據說有好幾千題,甚至還有一個windows下的trubo C,初學者甚至不用裝其它的編譯器,就可以練習編程了,非常適合初學者。還有一個「C語言學習系統」軟體,不過感覺只是一個題庫系統,如果你覺得題做的不夠,不妨也可以試試。2:葵花寶典學習計算機語言最好的方法是什麼?答曰:讀程序。沒錯,讀程序是學習C語言入門最快,也是最好的方法。如同我,現在學習新的J#,C#等其他語言,不再是抱著書本逐行啃,而是學習它們的常式。當然,對於沒有學過任何計算機語言的初學者,最好還是先閱讀教程,學習完每一章,都要認真體會這一章的所有概念,然後不放過這一章中提到的所有常式,然後仔細研讀程序,直到每一行都理解了,然後找幾個編程題目,最好是和常式類似的或一樣的,自己試圖寫出這段已經讀懂的程序,不要以為常式你已經讀懂了,你就可以寫出和它一樣的程序,絕對不一定,不相信你就試一試吧,如果寫不出來,也不要著急,回過頭來再繼續研究常式,想想自己為什麼寫不出來,然後再去寫這段程序,反反復復,直到你手到擒來為止,祝賀你,你快入門了。3:登峰造極寫程序的最高境界其實就是掌握各種解決問題的手段(數據結構)和解決問題的方法(演算法)。是不是寫出底層程序就是程序設計高手呢?非也,寫底層程序,無非是掌握了硬體的結構,況且硬體和硬體還不一樣,要給一個晶元寫驅動程序,無非就是掌握這塊晶元的各種寄存器及其組合,然後寫值讀值,僅此而已。這不過是熟悉一些io函數罷了。那麼怎樣才算精通程序設計呢?怎樣才能精通程序設計呢?舉個例子:你面前有10個人,找出一個叫「張三」的人,你該怎麼辦?第一種方法:直接對這10個人問:「誰叫張三」。第2種方法:你挨個去問「你是不是張三?」,直到問到的這個人就是張三。第三種方法:你去挨個問一個人「你認不認識張三,指給我看」。不要小看這個問題,你說當然會選第一種方法,沒錯恭喜你答對了,因為這個方法最快,效率最高,但是在程序設計中找到解決問題的最優方法和你用的手段卻是考驗一個程序員程序設計水平的重要標志,而且是不容易達到的。剛才這個問題類似於數據結構和演算法中的:Map數據結構,窮舉查找和折半查找。所以掌握好數據結構和一些常用演算法,是登峰造極的必然之路。最後給大家推薦嚴尉敏的《數據結構》清華大學出版社,希望每一個想成為程序設計高手的人研讀此書。二,語言學習方法談談偶的學習方法,拋磚引玉!學習不論講不講方法,最終都能學會。但是別人1個月學會了,而你卻100年才學會,這不就晚了么?:)所以說,學習還是要講究方法的。學習方法正確,事半功倍;學習方法不正確,事倍而功半。什麼才是學習C語言的捷徑?我的答案是看書。書中所寫,是前人數十年經驗所寫,看十本書,就相當於汲取了前人數十年的功力,那麼你的內功也會迅速上升1甲子。:)書當然要看好書,只有好書才營養豐富。假如你花了1天時間看了一本破書,而該書介紹的知識雖然對於你來說是全新的知識,但是由於書中組織不當、或者深度不夠,使你獲取的營養很少,還不如自己研究一天來的快,這種書就不值當看了。學習C語言要看那些好書?我認為首先要把基礎書給看扎實了,比如《C語言之四書五經》中介紹的4本。(雖然這些書很多已經絕版了,但我相信電子版也是很有益處。況且,如果你真的想看,我相信你一定有辦法搞的到。)這些書你會在很短的時間內看完(比如一兩個月),這取決於你的基礎和悟性。之後要看那些書呢?我不妨再列幾本。Bjarne Stroustrup的《C++程序設計語言》(The C++ Programming Language)一定要看,這本書裡面對於C的一些基礎概念的定義,比我見過的其他任何C語言書都要全,都要仔細;Bjarne Stroustrup的《C++語言的設計與演化》(The Design and Evolution of C++)和David R.Hanson 的《C語言介面與實現 創建可重用軟體的技術》(C Interfaces and Implaementations Techniques for Creating Reusable Software)一定要看,這兩本書講述了如何用C來實現異常處理、實現類型的封裝和擴展等一些大的項目中經常用到的高級技術。其他的書,操作系統的要看,編譯原理的要看,演算法的要看,模式的也要看。讀書破萬卷,coding如有神。總而言之,就如《傳》中雲:「生而知之者,上也;學而知之者,次也;困而學之又其次也。」我們不能總是因困而學之,而要做到兵馬未動,糧草先行。看書是學習的導向,書中能一一介紹清楚概念,但書卻不能把應用的細節一一介紹給你,因為應用總是招數繁復,變化多端。因此我們要想熟悉招數,懂得書中所講怎麼使用,還要多讀源碼。Linus給別人解答問題的時候,常說Read the ****ing source code;候捷也在其文中提到「源碼之前,了無秘密。」這就是大師的箴言呀。源碼就像是動畫、就像是幻燈片,把書中的招式一一演練給你看。可以說高手的經驗大都是源自代碼。源碼和書一樣,也是要看好的,不要看差的。在此,我推薦看Linux kernel source code 和 Linux tcp/ip source code。這兩套代碼都是開源的,垂手可得。此外,還可以配合著Andrew S.Tanenbaum的《操作系統的設計與實現》(Operating Systems:Design and Implementation)、毛德操 胡希明的《Linux內核 源代碼情景分析》、Jonathan Corbet,Alessandro Rubini,Greg Kroah-Hartman合著的《Linux設備驅動程序》(Linux Device Driver,3e)、W.Richard Stevens《TCP/IP詳解(3部)》 (TCP/IP Illustracted )、W.Richard Stevens《UNIX環境高級編程》(Advanced Programming in the UNIX Environment,新版增加了Linux kernel的內容)等書來看,方便的很當然程序不是看出來的,是寫出來的。我高中的時候每天堅持寫6個小時程序,《數據結構》和排列組合、圖論方面的習題反復做了N遍。到現在雖然已經時隔五六年,很多內容早已淡忘掉,但卻培養了我很強的編碼能力和調試能力,直到現在還對我的工作有很大的幫助。學習忌貪多、忌浮躁、忌急功近利、忌目中無人。把學習計劃放的長一些,培養一個好的學習方法,一步一步慢慢走,終能成為高手。

D. c語言 深度怎麼算

二叉樹的遍歷,利用遞歸函數
int Depth(BiTree T){
int depthval,depthleft,depthright;
if(T == NULL) depthval = 0;
else{
depthleft = Depth(T -> lchild);
depthright = Depth(T -> rchild);
depthval = 1 + (depthleft > depthright ? depthleft : depthright);
}//else
return depthval;
}//Depth

E. 求深度解析單片機C語言中的下列程序(部分),我實在看不懂。能不能幫我一句句解釋一下

P1=0xff;這個是讓P1口的八個燈全滅。
for(j=0;j<3;j++)//燈一盞盞從上往下亮
{
for(x=0;x<8;x++)控制第幾個燈亮的;
{
P1>>=1;右移一位第一燈亮了,依次亮
delayxms(500);每個燈亮的時間,延遲函數

if(P1==0x00)如果第八個燈亮了 後;就要重新賦予P1口的值;
{
P1=0xff;P1口從新賦值;
for(x=0;x<8;x++)這個語句和上面的類似,就是順序反過來了,他是從第八個燈開始亮的;
{
P1<<=1;左移一位第一燈亮了,依次亮
delayxms(500);延遲函數
}
}
}
}大概就是這樣了 不明白在問我

F. C語言深度解剖怎麼樣

C語言除了大家耳熟能詳的經典書籍外,本書也算是非常好的一本,本來覺得國內作家寫的書籍應該好不到哪裡去,從網上搜索了電子版,看完一遍後發現比我想像的要好得多,除了講解C語言的疑難點外,還透露著作者思考問題的方法,這個可能比知識本身更重要。有感於此,後來購買了一本紙質的,可以隨時翻閱。 另外,本人在學習的過程中通過一些前輩非常有價值的書評,獲益匪淺,希望以上文字對後來者在學習C語言時提供些許幫助

G. 大一學習c語言快一學期了,准備在寒假裡面好好再深度學習一下,可是不知道該看哪些書,求推薦!

和其它語言作比較,C語言是一個相對較小的語言,它可以在相對較短的時間內學會。但由於C語言表達能力強,細節太多,很難掌握它。想要掌握C語言我認為應該讀經典名著,只閱讀經典名著。然後看看好的源代碼。還有學習軟體設計,並應用於日常編程。C語言是幾本經典的書,不需要花很多時間去看它。語言的優點和缺點更像是一種信念,而不是太多的討論,而且大多數編程原則都適用於任何語言。


當然,其實我比較建議你動手寫大量你喜歡的的程序,並選擇尋找問題和解決問題的書籍。國外非計算機專業的大學課程學習C都要求動手寫過3千行以上代碼,老師也沒推薦過任何書,倒是要求動手寫代碼。我想如果你喜歡C語言編程,你不應該錯過動手實踐。

H. c語言入門教學

樓主,你可以去編程入門網,那裡有挺多知識點的,很多語言都有,很適合初學者,你也可以去CSDN,那裡有很多源代碼提供下載,也有論壇,呵呵,你也不要忽視網路貼吧,知道,貼吧是學習很多課本沒有東西的地方,知道,你需要看解決答案,這樣很有收獲,你也可以去中國編程網,不過,我覺得一樓也是有道理的,看看書掌握知識點,網上我覺得主要還是提高的地方哦……呵呵……關於怎麼學,我是這么過來的,每看一節書,做一節課後習題,其實初學主要還是學習語法和演算法(解決問題的方法),多上機自己寫程序,寫不出來看答案的演算法,自己再寫一邊,關鍵這個階段還是積累為主,基本知識學好了,可以學深入編程,不過你需要有熟悉的語法,可以寫一些小程序:學生成績管理系統等等,就過關了,然後可以學習鏈表,圖像編程,等等高級編程……呵呵……努力一定有回報的……加油吧…

I. C語言要學到什麼樣的深度才能往後面的語言學習

我覺得能夠不費很大勁就能看懂C語言程序(當然不是那種很專業的),就應該可以往下學習了!當然還要看你想從事哪方面的工作!嵌入式還是做應用軟體或者網路編程!如果是嵌入式,就要深入學習了,了解底層的東西,指針,文件操作,還有內存等。如果你能夠寫1000——2000以上的代碼(不是亂寫,做一個像圖書管理什麼的),熟練使用數組,深刻理解指針,函數的調用,結構體的使用,鏈表的操作等,我覺得就可以學習C++了!如果想從事網路編程(Java),理解C語言的一些基本的東西就行了,畢竟Java沒有指針,不用考慮內存那些麻煩的東西!匯編是嵌入式方向的才需要學,不然沒必要!嵌入式好像還有學Linux,數字電路什麼的,很難!祝你成功!