c語(yǔ)言概要 第一章、概述 1、c語(yǔ)言的基本知識 1.1、c語(yǔ)言的執行步驟 編輯-程序代碼的錄入,生成源程序*.c 編譯-語(yǔ)法分析查錯,翻譯生成目標程序*.obj (語(yǔ)法或邏輯錯誤,從第一個(gè)開(kāi)始改,變量定義,語(yǔ)句格式,表達式格式等) 鏈接-與其他目標程序或庫鏈接裝配,生成可執行程序*.exe 執行 1.2、main函數的基本知識 main()函數的位置 c程序總是從main( )函數開(kāi)始執行 一個(gè)c程序可以包含一個(gè)主函數,即main()函數;也可以包含一個(gè)main()函數和若干其它函數 1.3、c程序的結構 函數與主函數 程序由一個(gè)或多個(gè)函數組成 必須有一個(gè)且只能有一個(gè)主函數main() 程序執行從main開(kāi)始,在main中結束,其他函數通過(guò)嵌套調用得以執行 程序語(yǔ)句 C程序由語(yǔ)句組成 用“;”作為語(yǔ)句終止符 注釋 // 或 /* */ 為注釋?zhuān)荒芮短?不產(chǎn)生編譯代碼 1.4、c 程序書(shū)寫(xiě)的規則 習慣用小寫(xiě)字母,大小寫(xiě)敏感 不使用行號,無(wú)程序行概念:通常一個(gè)語(yǔ)句占一行 可使用空行和空格 常用鋸齒形的書(shū)寫(xiě)格式;同一層次結構的語(yǔ)句上下對齊。
第二章、基本數據類(lèi)型與運算 2.1、c程序的數據類(lèi)型 注意類(lèi)型和變量含義的不同(類(lèi)型是固定好的名字,變量是自己起的名字) 變量占用的存儲空間 數據類(lèi)型 基本類(lèi)型:整型、字符型、浮點(diǎn)型(單精度型,雙精度型) 構造類(lèi)型:數組類(lèi)型、結構體類(lèi)型 指針類(lèi)型 空類(lèi)型 注意基本類(lèi)型賦初值的方式 基本數據類(lèi)型的表示形式 整形數據 十進(jìn)制:以非0數字開(kāi)頭,如:123,-9,0 八進(jìn)制;以0數字開(kāi)頭,如:0123,067 十六進(jìn)制:以0x開(kāi)頭,如:0x123,0xff 實(shí)型數據 十進(jìn)制:必須帶小數點(diǎn),如:123.0,-9.0 指數形式;如:1.23E3,0.9e-2,5e2 字符型數據 普通字符:如:'a','2','H','#' 轉義字符:如:'\n','\167','\xlf,'\\' (實(shí)現幾列的對齊:指定寬度。如%100\ '\t'制表位) (字符串長(cháng)度。
“abc\n\t\\” strlen 6; sizeof 7) 基本數據類(lèi)型的存儲長(cháng)度 整型 Int 字節數 2 位數 16 數的表示范圍 -32768—32767 Short 2 16 -32768—32767 Long 4 32 -2147483648—2147483647 實(shí)型 Float 4 32 3.4e-38---3.4e38 Double 8 64 1.7e-308---1.7e308 字符型 Char 1 8 -128----127 2.2、標識符命名規則 C語(yǔ)言標志符命名規則 標識符有數字,字母,下劃線(xiàn)組成 標識符的首字符必須為字母和下劃線(xiàn) 標識符不能為c語(yǔ)言的保留字(關(guān)鍵字) 如:auto extern sizeof float static case for struct char goto switch continue in typedef const if union default long unsigned do register void double return else short while enum signed 算術(shù)運算符 + - * / % 關(guān)系運算符 > = <= != 邏輯運算符 ! && || 位運算符 <> ~ | ^ & 賦值運算符 = 及其擴展賦值運算符 條件運算符 ? : 逗號運算符 , 指針運算符 * & 求字節數運算符 sizeof 強制類(lèi)型轉換運算符 (類(lèi)型) 分量運算符 . -> 下標運算符 [ ] 其他 如函數調用運算符() 運算符的優(yōu)先級 由高到低:?jiǎn)文窟\算符,算數運算符,關(guān)系運算符,賦值運算符 說(shuō)明:?jiǎn)文窟\算符:自增運算符,自減運算符,類(lèi)型裝換運算符。結合方向:自右至左 如:++--I 先—i.。
算術(shù)運算 結合方向自左至右 2.3基本運算和表達式 關(guān)系表達式和邏輯表達式 (a>b)&&(x>y) (a==b)||(x==y) !=a||(a>b) A&&b.a為0.不執行b A||b a為1.不執行b 在 c 中邏輯運算結果:1代表“真”,0代表“假”; 判斷一個(gè)表達式是否真:0代表“假”,非0代表“真” 條件表達式 逗號表達式 如:k=5,k++ 逗號值為5;k為6. 表達式1?表達式2 :表達式3 K=5>6 ? 1 : 0 2.4、混合運算的數據類(lèi)型轉換 2/3+0.5 雙精度浮點(diǎn)型 第三章、順序結構程序設計 3.1、c語(yǔ)句的分類(lèi) 簡(jiǎn)單語(yǔ)句 表達式語(yǔ)句 表達式+分號 空語(yǔ)句 只有分號的語(yǔ)句 復合語(yǔ)句 用花括號將若干語(yǔ)句括起來(lái) 流程控制語(yǔ)句 選擇語(yǔ)句 if ,switch 循環(huán)語(yǔ)句 while, do while , for 轉移語(yǔ)句 break ,continue ,return goto 3.2、格式輸入函數scanf 一般形式:scanf(“格式控制字符串“,地址列表); 使用scanf函數時(shí),需要注意: 格式字符的個(gè)數必須與輸入項的個(gè)數相同,數據類(lèi)型必須一一對應,非格式字符串(說(shuō)明性的)要原封不動(dòng)的輸入。 輸入實(shí)行數據時(shí),可以不帶小數點(diǎn),即按整型數據輸入 數值型數據與字符或字符串混合輸入時(shí),需要注意輸入方式。
3.3、格式輸出函數printf Printf(“格式控制字符串“,輸出列表); 指定輸出格式,由格式字符串和非格式字符串兩種組成,非格式字符串照原樣輸出。 %[標志][輸出最小寬度][.精度][長(cháng)度]類(lèi)型 標志:- 左對齊;+ 右對齊; %f, %d, %c, %s 3.4、其他輸入輸出函數 Putchar getchar puts gets 第四章、選擇結構程序設計 If選擇結構 單分支 If(表達式) 語(yǔ)句 雙分支 If(表達式) 語(yǔ)句1 Else 語(yǔ)句2 多分支 If (表達式1) 語(yǔ)句1 Else if(表達式2) 語(yǔ)句2 。
Else if(表達式m) 語(yǔ)句m Else 語(yǔ)句n Switch(表達式) { Case 常量表達式1:語(yǔ)句1;break; Case 常量表達式2:語(yǔ)句2;break; 。
Case 常量表達式m:語(yǔ)句m;break; Default:語(yǔ)句n;break; } 注意break的使用 第五章、循環(huán)結構程序設計 循環(huán)三要素 初始條件 ;終止條件 ;在初始條件和終止條件間反復做某件事情(循環(huán)體) While(表達式) 語(yǔ)句 Do 語(yǔ)句 While(表達式)。
(第六版) Bradley L. Jones, Peler Aitken 著(zhù). 信達工作室 譯. 人民郵電出版社 這本書(shū)對初學(xué)者很好, 如果有點(diǎn)基礎那就更好了. 建議選擇譚浩強譚老師的書(shū),簡(jiǎn)單易學(xué),理論與實(shí)踐結合的很好,而且如果能認真學(xué)的話(huà),你會(huì )發(fā)現你的C語(yǔ)言基礎非常的實(shí)。
也不是說(shuō)其他的書(shū)不好,但是有些書(shū)只是為了讓讀者入門(mén),沒(méi)有前途呀。 先讀譚浩強的《C語(yǔ)言程序設計》,這是公認的中文入門(mén)級教材。
但是書(shū)中的代碼風(fēng)格不敢恭維。看完這本,推薦《21天學(xué)通C語(yǔ)言》,這本書(shū)比較好,個(gè)人感覺(jué)。
看完這兩本,你就可以進(jìn)階C++了。 C語(yǔ)言只要把基礎打好就好,你要是想精通的話(huà),最好是精通C++,這樣比較有前途。
但不要操之過(guò)急。
最低0.27元/天開(kāi)通百度文庫會(huì )員,可在文庫查看完整內容>
原發(fā)布者:ofhyeiu2
C語(yǔ)言最重要的知識點(diǎn)總體上必須清楚的:1)程序結構是三種:順序結構、選擇結構(分支結構)、循環(huán)結構。2)讀程序都要從main()入口,然后從最上面順序往下讀(碰到循環(huán)做循環(huán),碰到選擇做選擇),有且只有一個(gè)main函數。3)計算機的數據在電腦中保存是以二進(jìn)制的形式.數據存放的位置就是他的地址.4)bit是位是指為0或者1。byte是指字節,一個(gè)字節=八個(gè)位.概念常考到的:1、編譯預處理不是C語(yǔ)言的一部分,不占運行時(shí)間,不要加分號。C語(yǔ)言編譯的程序稱(chēng)為源程序,它以ASCII數值存放在文本文件中。誤的,一定不能出現分號。3、每個(gè)C語(yǔ)言程序中main函數是有且只有一個(gè)。4、在函數中不可以再定義函數。5、算法:可以沒(méi)有輸入,但是一定要有輸出。第一章C語(yǔ)言的基礎知識第一節、對C語(yǔ)言的基礎認識1、C語(yǔ)言編寫(xiě)的程序稱(chēng)為源程序,又稱(chēng)為編譯單位。2、C語(yǔ)言書(shū)寫(xiě)格式是自由的,每行可以寫(xiě)多個(gè)語(yǔ)句,可以寫(xiě)多行。3、一個(gè)C語(yǔ)言程序有且只有一個(gè)main函數,是程序運行的起點(diǎn)。第二節、2、每個(gè)C語(yǔ)言程序寫(xiě)完后,都是先編譯,后鏈接,最后運行。(.c---(.obj---(.exe)這個(gè)過(guò)程中注意.c和.obj文件時(shí)無(wú)法運行的,只有.exe文件才可以運行。(常考!)(程序編輯-程序編譯-程序連接-程序運行)第三節、標識符1、標識符(必考內容):合法的要求是由字母,數字,下劃線(xiàn)組成。有其它元素就錯了。并且第一個(gè)必須為字母或則是下劃線(xiàn)。第一個(gè)為數字就錯了預定義標識符:背誦
去百度文庫,查看完整內容>
內容來(lái)自用戶(hù):暗香飛度
C語(yǔ)言考試必備基礎知識點(diǎn)整理
【考點(diǎn)1】C程序
C語(yǔ)言程序結構有三種:順序結構,循環(huán)結構(三個(gè)循環(huán)結構),選擇結構(if和switch)
【考點(diǎn)2】main函數
每個(gè)C語(yǔ)言程序中main函數是有且只有一個(gè)。讀程序都要從main()入口,然后從最上面順序往下讀(碰到循環(huán)做循環(huán),碰到選擇做選擇)。
【考點(diǎn)3】存儲形式
計算機的數據在電腦中是以二進(jìn)制的形式保存。最低的存儲單元是bit(位),位是由為0或者1構成。byte是指字節,一個(gè)字節=八個(gè)位。數據存放的位置就是它的地址。
【考點(diǎn)4】注釋
是對程序的說(shuō)明,可出現在程序中任意合適的地方,注釋從“/*”開(kāi)始到最近一個(gè)“*/”結束,其間任何內容都不會(huì )被計算機執行,注釋不可以嵌套。
【考點(diǎn)5】書(shū)寫(xiě)格式
每條語(yǔ)句的后面必須有一個(gè)分號,分號是語(yǔ)句的一部分。一行內可寫(xiě)多條語(yǔ)句,一個(gè)語(yǔ)句可寫(xiě)在多行上。
【考點(diǎn)6】標識符
合法的用戶(hù)標識符考查:
合法的要求是由字母,數字,下劃線(xiàn)組成。有其它元素就錯了。
并且第一個(gè)必須為字母或則是下劃線(xiàn)。第一個(gè)為數字就錯了。
C語(yǔ)言標識符分如下3類(lèi)
(1)關(guān)鍵字。它們在程序中有固定的含義,不能另作他用。如int、for、switch等。
(2)預定義標識符。預先定義并具有特定含義的標識符。如 【考點(diǎn) 注意
最好的教材就是
清華大學(xué)出版社的
譚浩強 教授編寫(xiě)的 《C語(yǔ)言教程》
原因就是因為此書(shū)介紹的簡(jiǎn)單,入門(mén)相當的好。
然后不急不躁的看,看到函數那一章,你就可以入門(mén)了
第一章要省略。那個(gè)理論太強,沒(méi)用;
變量 數組 基本的三大結構(順序,循環(huán),選擇)是重點(diǎn)。 這些看完了,你就基本入門(mén)了。
函數和指針是進(jìn)一步了解掌握的重點(diǎn)。要想提高,在這兩個(gè)方面要深入理解一些。
參考的其他方面,可以買(mǎi)一本二級的上級真題看看。
至于自學(xué)細節,重要的是兩點(diǎn):
① C語(yǔ)言的思路方面。如果你從前沒(méi)有學(xué)過(guò)其他的編程語(yǔ)言,我覺(jué)得理解它的思路是很重要的事情!注意他們的條理和組織。
②就是內部的構成。可以按下面的一項項的學(xué)習:
先從最小的單位 變量 開(kāi)始
然后簡(jiǎn)單的 運算符(掌握算術(shù)和賦值,比較,邏輯運算符,前期就差不多了,沒(méi)有必要掌握高難度運算符)
再次三大結構。要牢固理解。
這些就算是入門(mén)了,其他的你再根據需要在深入學(xué)習吧。
祝學(xué)習成功
如果是想通過(guò)計算機等級考試 就買(mǎi)一本全國計算機等級考試二級試題認真做就可以了 當然也要加強上機實(shí)踐。
怎樣才能學(xué)好C語(yǔ)言
第一:C語(yǔ)言語(yǔ)法結構很簡(jiǎn)潔精妙,寫(xiě)出的程序也很高效,很便于描述算法,大多數的程序員愿意使用C語(yǔ)言去描述算法本身,所以,如果你想在程序設計方面有所建樹(shù),就必須去學(xué)它。
第二:C語(yǔ)言能夠讓你深入系統底層,你知道的操作系統,哪一個(gè)不是C語(yǔ)言寫(xiě)的?所有的indows, Unix, Linux, Mac, os/2,沒(méi)有一個(gè)里外的,如果你不懂C語(yǔ)言,怎么可能深入到這些操作系統當中去呢?更不要說(shuō)你去寫(xiě)它們的內核程序了。
第三:很多新型的語(yǔ)言都是衍生自C語(yǔ)言,C++,Java,C#,J#,perl。哪個(gè)不是呢?掌握了C語(yǔ)言,可以說(shuō)你就掌握了很多門(mén)語(yǔ)言,經(jīng)過(guò)簡(jiǎn)單的學(xué)習,你就可以用這些新型的語(yǔ)言去開(kāi)發(fā)了,這個(gè)再一次驗證了C語(yǔ)言是程序設計的重要基礎。還有啊,多說(shuō)一點(diǎn):即使現在招聘程序員,考試都是考C語(yǔ)言,你想加入it行業(yè),那么就一定要掌握好C語(yǔ)言。
那么究竟怎樣學(xué)習C語(yǔ)言呢?
1:工欲善其事,必先利其器
這里介紹幾個(gè)學(xué)習C語(yǔ)言必備的東東:
一個(gè)開(kāi)發(fā)環(huán)境,例如turbo C 2.0,這個(gè)曾經(jīng)占據了DOS時(shí)代開(kāi)發(fā)程序的大半個(gè)江山。但是現在windows時(shí)代,用turbo C有感覺(jué)不方面,編輯程序起來(lái)很吃力,并且拖放,更沒(méi)有函數變量自動(dòng)感應功能,查詢(xún)參考資料也不方便。建議使用Visual C++,這個(gè)東西雖然比較大塊頭,但是一旦安裝好了,用起來(lái)很方便。
一本學(xué)習教程,現在C語(yǔ)言教材多如牛毛,但推薦大家使用《C語(yǔ)言程序設計》譚浩強主編 第二版 清華大學(xué)出版社,此書(shū)編寫(xiě)的很適合初學(xué)者,并且內容也很精到。
除此以外,現在有很多輔助學(xué)習的軟件,畢竟現在是Window時(shí)代了,學(xué)習軟件多如牛毛,不象我們當初學(xué)習,只有讀書(shū)做題這么老套。我向大家推薦一個(gè)“集成學(xué)習環(huán)境(C語(yǔ)言)”,里邊的知識點(diǎn)總結和例程講解都非常好,還有題庫測試環(huán)境,據說(shuō)有好幾千題,甚至還有一個(gè)windows下的trubo C,初學(xué)者甚至不用裝其它的編譯器,就可以練習編程了,非常適合初學(xué)者。還有一個(gè)“C語(yǔ)言學(xué)習系統”軟件,不過(guò)感覺(jué)只是一個(gè)題庫系統,如果你覺(jué)得題做的不夠,不妨也可以試試。
2:葵花寶典
學(xué)習計算機語(yǔ)言最好的方法是什么?答曰:讀程序。
沒(méi)錯,讀程序是學(xué)習C語(yǔ)言入門(mén)最快,也是最好的方法。如同我,現在學(xué)習新的J#,C#等其他語(yǔ)言,不再是抱著(zhù)書(shū)本逐行啃,而是學(xué)習它們的例程。當然,對于沒(méi)有學(xué)過(guò)任何計算機語(yǔ)言的初學(xué)者,最好還是先閱讀教程,學(xué)習完每一章,都要認真體會(huì )這一章的所有概念,然后不放過(guò)這一章中提到的所有例程,然后仔細研讀程序,直到每一行都理解了,然后找幾個(gè)編程題目,最好是和例程類(lèi)似的或一樣的,自己試圖寫(xiě)出這段已經(jīng)讀懂的程序,不要以為例程你已經(jīng)讀懂了,你就可以寫(xiě)出和它一樣的程序,絕對不一定,不相信你就試一試吧,如果寫(xiě)不出來(lái),也不要著(zhù)急,回過(guò)頭來(lái)再繼續研究例程,想想自己為什么寫(xiě)不出來(lái),然后再去寫(xiě)這段程序,反反復復,直到你手到擒來(lái)為止,祝賀你,你快入門(mén)了。
3:登峰造極
寫(xiě)程序的最高境界其實(shí)就是掌握各種解決問(wèn)題的手段(數據結構)和解決問(wèn)題的方法(算法)。
是不是寫(xiě)出底層程序就是程序設計高手呢?非也,寫(xiě)底層程序,無(wú)非是掌握了硬件的結構,況且硬件和硬件還不一樣,要給一個(gè)芯片寫(xiě)驅動(dòng)程序,無(wú)非就是掌握這塊芯片的各種寄存器及其組合,然后寫(xiě)值讀值,僅此而已。這不過(guò)是熟悉一些io函數罷了。那么怎樣才算精通程序設計呢?怎樣才能精通程序設計呢?舉個(gè)例子:你面前有10個(gè)人,找出一個(gè)叫“張三”的人,你該怎么辦?第一種方法:直接對這10個(gè)人問(wèn):“誰(shuí)叫張三”。第2種方法:你挨個(gè)去問(wèn)“你是不是張三?”,直到問(wèn)到的這個(gè)人就是張三。第三種方法:你去挨個(gè)問(wèn)一個(gè)人“你認不認識張三,指給我看”。不要小看這個(gè)問(wèn)題,你說(shuō)當然會(huì )選第一種方法,沒(méi)錯恭喜你答對了,因為這個(gè)方法最快,效率最高,但是在程序設計中找到解決問(wèn)題的最優(yōu)方法和你用的手段卻是考驗一個(gè)程序員程序設計水平的重要標志,而且是不容易達到的。剛才這個(gè)問(wèn)題類(lèi)似于數據結構和算法中的:Map數據結構,窮舉查找和折半查找。所以掌握好數據結構和一些常用算法,是登峰造極的必然之路。最后給大家推薦嚴尉敏的《數據結構》清華大學(xué)出版社,希望每一個(gè)想成為程序設計高手的人研讀此書(shū)。
C語(yǔ)言基礎教程別看了,學(xué)習C語(yǔ)言不能脫離具體的系統,不能不了解計算機體系結構和操作系統原理、編譯原理,推薦你看這本開(kāi)源的書(shū):《Linux C編程一站式學(xué)習》如果是在Windows上學(xué)習,可以安裝cygwin來(lái)模擬linux環(huán)境,下載地址:/site/install/下面貼一下這本書(shū)的介紹,磨刀不誤砍柴工,看過(guò)之后你就會(huì )愛(ài)上這本書(shū)了:這本書(shū)有什么特點(diǎn)?面向什么樣的讀者? 這本書(shū)最初是為北京亞嵌教育研究中心的嵌入式Linux系統工程師就業(yè)班課程量身定做的教材之一。
該課程是為期四個(gè)月的全日制職業(yè)培訓,要求學(xué)員畢業(yè)時(shí)具備非常Solid的C編程能力,能熟練地使用Linux系統,同時(shí)對計算機體系結構與指令集、操作系統原理和設備驅動(dòng)程序都有較深入的了解。然而學(xué)員入學(xué)時(shí)的水平是非常初級而且參差不齊的:學(xué)歷有專(zhuān)科、本科也有研究生,專(zhuān)業(yè)有和計算機相關(guān)的也有很不相關(guān)的(例如會(huì )計專(zhuān)業(yè)),以前從事的職業(yè)有和技術(shù)相關(guān)的也有完全不相關(guān)的(例如HR),年齡從二十出頭到三十五六歲的都有。
這么多背景完全不同、基礎完全不同、思維習慣和理解能力完全不同的人來(lái)聽(tīng)同一堂課,大家都迫切希望學(xué)會(huì )嵌入式開(kāi)發(fā)技術(shù),投身IT行業(yè),這就是職業(yè)教育的特點(diǎn),也是我編這本書(shū)時(shí)需要考慮的主要問(wèn)題。學(xué)習編程絕不是一件簡(jiǎn)單的事,尤其是對于零基礎的初學(xué)者來(lái)說(shuō)。
大學(xué)的計算機專(zhuān)業(yè)有四年時(shí)間從零基礎開(kāi)始培養一個(gè)人,微積分、線(xiàn)代、隨機、離散、組合、自動(dòng)機、編譯原理、操作系統、計算機組成原理等等一堆基礎課,再加上C/C++、Java、數據庫、網(wǎng)絡(luò )、軟件工程、計算機圖形學(xué)等等一堆專(zhuān)業(yè)課,最后培養出一個(gè)能找到工作的學(xué)生。很遺憾這最后一條很多學(xué)校沒(méi)有做好,來(lái)亞嵌培訓的很多學(xué)生就是四年這么學(xué)過(guò)來(lái)的,但據我們考查他們的基礎幾乎為零,我不知道為什么。
與之形成鮮明對比的是,只給我們四個(gè)月的時(shí)間,同樣要求從零基礎開(kāi)始,最后培養出一個(gè)能找到工作的學(xué)生,而且還要保證他找到工作,這就是職業(yè)教育的特點(diǎn)。為什么我說(shuō)“只給我們四個(gè)月的時(shí)間”?我們倒是想教四年呢,但學(xué)時(shí)的長(cháng)短我們做不了主,是由市場(chǎng)規律決定的。
四年的任務(wù)要求四個(gè)月做好,要怎么完成這樣一個(gè)幾乎不可能的任務(wù)?有些職業(yè)教育給出的答案是“實(shí)用主義”,打出了“有用就學(xué),沒(méi)有用就不學(xué)”的口號,大肆貶低說(shuō)大學(xué)里教的基礎課都是過(guò)時(shí)的、無(wú)用的,只有他們教的技術(shù)才是實(shí)用的,這種炒作很不好,我認為大學(xué)里教的每一門(mén)課都是非常有用的,基礎知識在任何時(shí)候都不會(huì )過(guò)時(shí),倒是那些時(shí)髦的“實(shí)用技術(shù)”有可能很快就過(guò)時(shí)了。四年的任務(wù)怎么才能用四個(gè)月做好?我們給出的答案是“優(yōu)化”。
現在大學(xué)里安排的課程體系最大的缺點(diǎn)就是根本不考慮優(yōu)化。每個(gè)過(guò)來(lái)人都會(huì )有這樣的感覺(jué):大一大二學(xué)了好多數學(xué)課,卻不知道都是干什么用的,為什么要學(xué)。
連它有什么用都不知道怎么能有興趣學(xué)好呢?然后到大三大四學(xué)專(zhuān)業(yè)課時(shí),用到以前的知識了,才發(fā)現以前學(xué)的數學(xué)是多么有用,然而早就忘得一干二凈了,考完試都還給老師了,回頭重新學(xué)吧,這時(shí)候才發(fā)現很多東西以前根本沒(méi)學(xué)明白,現在才真的學(xué)明白了,那么前兩年的時(shí)間豈不是都浪費了?大學(xué)里的課程體系還有一個(gè)缺點(diǎn)就是不靈活,每門(mén)課必須占一個(gè)學(xué)期,必須由一個(gè)老師教,不同課程的老師之間沒(méi)有任何溝通和銜接,其實(shí)這些課程之間是相互依賴(lài)的,把它們強行拆開(kāi)是不符合人的認知規律的。比如我剛上大學(xué)的時(shí)候,大一上半學(xué)期就被逼著(zhù)學(xué)C語(yǔ)言,其實(shí)C語(yǔ)言是一門(mén)很難的編程語(yǔ)言,不懂編譯原理、操作系統和計算機體系結構根本不可能學(xué)明白,那半個(gè)學(xué)期自然就浪費掉了。
當時(shí)幾乎所有學(xué)校的計算機相關(guān)專(zhuān)業(yè)都是這樣,大一上來(lái)就學(xué)C語(yǔ)言,有的學(xué)校更瘋狂,上來(lái)就學(xué)C++,導致大多數學(xué)生都以為自己會(huì )C語(yǔ)言,但其實(shí)都是半吊子水平,到真正寫(xiě)代碼的時(shí)候經(jīng)常為一個(gè)Bug搞得焦頭爛額,卻沒(méi)有機會(huì )再系統地學(xué)一遍C語(yǔ)言,因為在學(xué)校看來(lái),C語(yǔ)言課早在大一就給你“上完了”,就像一頓飯已經(jīng)吃完了,不管你吃飽沒(méi)吃飽,不會(huì )再讓你重吃一遍了。顯而易見(jiàn),如果要認真地對這些課程做優(yōu)化,的確是有很多水份可以擠的。
本書(shū)有以下特點(diǎn): * 不是孤立地講C語(yǔ)言,而是和編譯原理、操作系統、計算機體系結構結合起來(lái)講。或者說(shuō),本書(shū)的內容只是以C語(yǔ)言為載體,真正講的是計算機的原理和程序的原理。
* 強調基本概念和基本原理,在編排順序上非常重視概念之間的依賴(lài)關(guān)系,每次引入一個(gè)新的概念,只依賴(lài)于前面章節已經(jīng)講過(guò)的概念,而絕不會(huì )依賴(lài)后面章節要講的概念。有些地方為了敘述得完整,也會(huì )引用后面要講的內容,比如說(shuō)“有關(guān)XX我們到XX章再仔細講解”,凡是這種引用都不是必要的依賴(lài),可以當它不存在,只管繼續往下看就行了。
* 盡量做到每個(gè)知識點(diǎn)直到要用的時(shí)候才引入。過(guò)早引入一個(gè)知識點(diǎn),講完了又不用它,讀者很快就會(huì )遺忘,這是不符合認知規律的。
這是一本從零基礎開(kāi)始學(xué)習編程的書(shū),不要求讀者有任何編程經(jīng)驗,但讀者至少需要具備以下素質(zhì): * 熟悉Linux系統的基本操作。如果不具備這一點(diǎn),請先參考其它教材。
怎么樣學(xué)好C語(yǔ)言?! 很多人對學(xué)習C語(yǔ)言感到無(wú)從下手,經(jīng)常問(wèn)我同一個(gè)問(wèn)題:究竟怎樣學(xué)習C語(yǔ)言?我是一個(gè)教師,已經(jīng)開(kāi)發(fā)了很多年的程序,和很多剛剛起步的人一樣,學(xué)習的第一個(gè)計算機語(yǔ)言就是C語(yǔ)言。
經(jīng)過(guò)這些年的開(kāi)發(fā),我深深的體會(huì )到C語(yǔ)言對于一個(gè)程序設計人員多么的重要,如果不懂C語(yǔ)言,你想寫(xiě)底層程序這幾乎聽(tīng)起來(lái)很可笑,不懂C語(yǔ)言,你想寫(xiě)出優(yōu)秀高效的程序,這簡(jiǎn)直就是天方夜譚。為什么C語(yǔ)言如此重要呢? 第一:C語(yǔ)言語(yǔ)法結構很簡(jiǎn)潔精妙,寫(xiě)出的程序也很高效,很便于描述算法,大多數的程序員愿意使用C語(yǔ)言去描述算法本身,所以,如果你想在程序設計方面有所建樹(shù),就必須去學(xué)它。
第二:C語(yǔ)言能夠讓你深入系統底層,你知道的操作系統,哪一個(gè)不是[size=2C語(yǔ)言寫(xiě)的?所有的windows,Unix,Linux,Mac,os/2,沒(méi)有一個(gè)里外的,如果你不懂C語(yǔ)言,怎么可能深入到這些操作系統當中去呢?更不要說(shuō)你去寫(xiě)它們的內核程序了。 第三:很多新型的語(yǔ)言都是衍生自C語(yǔ)言,C++,Java,C#,J#,perl。
哪個(gè)不是呢?掌握了C語(yǔ)言,可以說(shuō)你就掌握了很多門(mén)語(yǔ)言,經(jīng)過(guò)簡(jiǎn)單的學(xué)習,你就可以用這些新型的語(yǔ)言去開(kāi)發(fā)了,這個(gè)再一次驗證了C語(yǔ)言是程序設計的重要基礎。還有啊,多說(shuō)一點(diǎn):即使現在招聘程序員,考試都是考C語(yǔ)言,你想加入it行業(yè),那么就一定要掌握好C語(yǔ)言。
那么究竟怎樣學(xué)習C語(yǔ)言呢? 1:工欲善其事,必先利其器 這里介紹幾個(gè)學(xué)習C語(yǔ)言必備的東東: 一個(gè)開(kāi)發(fā)環(huán)境,例如turbo?C?2.0,這個(gè)曾經(jīng)占據了DOS時(shí)代開(kāi)發(fā)程序的大半個(gè)江山。但是現在windows時(shí)代,用turbo?C有感覺(jué)不方面,編輯程序起來(lái)很吃力,并且拖放,更沒(méi)有函數變量自動(dòng)感應功能,查詢(xún)參考資料也不方便。
建議使用Visual C++,這個(gè)東西雖然比較大塊頭,但是一旦安裝好了,用起來(lái)很方便。 一本學(xué)習教程,現在C語(yǔ)言教材多如牛毛,但推薦大家使用《C語(yǔ)言程序設計》譚浩強主編,此書(shū)編寫(xiě)的很適合初學(xué)者,并且內容也很精到。
除此以外,現在有很多輔助學(xué)習的軟件,畢竟現在是Window時(shí)代了,學(xué)習軟件多如牛毛,不象我們當初學(xué)習,只有讀書(shū)做題這么老套。我向大家推薦一個(gè)“集成學(xué)習環(huán)境(C語(yǔ)言)”,里邊的知識點(diǎn)總結和例程講解都非常好,還有題庫測試環(huán)境,據說(shuō)有好幾千題,甚至還有一個(gè)windows下的trubo?C,初學(xué)者甚至不用裝其它的編譯器,就可以練習編程了,非常適合初學(xué)者。
還有一個(gè)“C語(yǔ)言學(xué)習系統”軟件,不過(guò)感覺(jué)只是一個(gè)題庫系統,如果你覺(jué)得題做的不夠,不妨也可以試試。 2:葵花寶典 學(xué)習計算機語(yǔ)言最好的方法是什么?答曰:讀程序。
沒(méi)錯,讀程序是學(xué)習C語(yǔ)言入門(mén)最快,也是最好的方法。如同我,現在學(xué)習新的J#,C#等其他語(yǔ)言,不再是抱著(zhù)書(shū)本逐行啃,而是學(xué)習它們的例程。
當然,對于沒(méi)有學(xué)過(guò)任何計算機語(yǔ)言的初學(xué)者,最好還是先閱讀教程,學(xué)習完每一章,都要認真體會(huì )這一章的所有概念,然后不放過(guò)這一章中提到的所有例程,然后仔細研讀程序,直到每一行都理解了,然后找幾個(gè)編程題目,最好是和例程類(lèi)似的或一樣的,自己試圖寫(xiě)出這段已經(jīng)讀懂的程序,不要以為例程你已經(jīng)讀懂了,你就可以寫(xiě)出和它一樣的程序,絕對不一定,不相信你就試一試吧,如果寫(xiě)不出來(lái),也不要著(zhù)急,回過(guò)頭來(lái)再繼續研究例程,想想自己為什么寫(xiě)不出來(lái),然后再去寫(xiě)這段程序,反反復復,直到你手到擒來(lái)為止,祝賀你,你快入門(mén)了。 3:登峰造極 寫(xiě)程序的最高境界其實(shí)就是掌握各種解決問(wèn)題的手段(數據結構)和解決問(wèn)題的方法(算法)。
是不是寫(xiě)出底層程序就是程序設計高手呢?非也,寫(xiě)底層程序,無(wú)非是掌握了硬件的結構,況且硬件和硬件還不一樣,要給一個(gè)芯片寫(xiě)驅動(dòng)程序,無(wú)非就是掌握這塊芯片的各種寄存器及其組合,然后寫(xiě)值讀值,僅此而已。這不過(guò)是熟悉一些io函數罷了。
那么怎樣才算精通程序設計呢?怎樣才能精通程序設計呢?舉個(gè)例子:你面前有10個(gè)人,找出一個(gè)叫“張三”的人,你該怎么辦?第一種方法:直接對這10個(gè)人問(wèn):“誰(shuí)叫張三”。第2種方法:你挨個(gè)去問(wèn)“你是不是張三?”,直到問(wèn)到的這個(gè)人就是張三。
第三種方法:你去挨個(gè)問(wèn)一個(gè)人“你認不認識張三,指給我看”。不要小看這個(gè)問(wèn)題,你說(shuō)當然會(huì )選第一種方法,沒(méi)錯恭喜你答對了,因為這個(gè)方法最快,效率最高,但是在程序設計中找到解決問(wèn)題的最優(yōu)方法和你用的手段卻是考驗一個(gè)程序員程序設計水平的重要標志,而且是不容易達到的。
剛才這個(gè)問(wèn)題類(lèi)似于數據結構和算法中的:Map數據結構,窮舉查找和折半查找。所以掌握好數據結構和一些常用算法,是登峰造極的必然之路。
首先要多看書(shū);
自學(xué)下述書(shū)籍
《The C Programming Language》 《C程序設計語(yǔ)言》本書(shū)原著(zhù)為C語(yǔ)言的設計者之一Dennis M.Ritchie和著(zhù)名的計算機科學(xué)家Brian W.Kernighan合著(zhù)的一本介紹C語(yǔ)言的權威經(jīng)典著(zhù)作。人們熟知的“hello,World”程序就是由本書(shū)首次引入的,現在,這一程序已經(jīng)成為所有程序設計語(yǔ)言入門(mén)的第一課。原著(zhù)第2版根據1987年制定的ANSIC標準做了適當的修訂,引入了最新的語(yǔ)言形式,并增加了新的示例,通過(guò)簡(jiǎn)潔的描述、典型的示例,作者全面、系統、準確地講述了C語(yǔ)言的各個(gè)特性以及程序設計的基本方法。對于計算機從業(yè)人員來(lái)說(shuō),本書(shū)是一本必讀的程序設計語(yǔ)言方面的參考書(shū)。
《Expert C Programming》 《C專(zhuān)家編程》展示了最優(yōu)秀的C程序員所使用的編碼技巧,并專(zhuān)門(mén)開(kāi)辟了一章對C++的基礎知識進(jìn)行了介紹。
書(shū)中C的歷史、語(yǔ)言特性、聲明、數組、指針、鏈接、運行時(shí)、內存以及如何進(jìn)一步學(xué)習C++等問(wèn)題進(jìn)行了細致的講解和深入的分析。全書(shū)擷取幾十幾個(gè)實(shí)例進(jìn)行講解,對C程序員具有非常高的實(shí)用價(jià)值。
《C Traps and Pitfalls》 《C陷阱與缺陷》作者以自己1985年在貝爾實(shí)驗室時(shí)發(fā)表的一篇論文為基礎,結合自己的工作經(jīng)驗擴展成為這本對C程序員具有珍貴價(jià)值的經(jīng)典著(zhù)作。寫(xiě)作本書(shū)的出發(fā)點(diǎn)不是要批判C語(yǔ)言,而是要幫助C程序員繞過(guò)編程過(guò)程中的陷阱和障礙。
全書(shū)分為8章,分別從詞法分析、語(yǔ)法語(yǔ)義、連接、庫函數、預處理器、可移植性缺陷等幾個(gè)方面分析了C編程中可能遇到的問(wèn)題。最后,作者用一章的篇幅給出了若干具有實(shí)用價(jià)值的建議。
《Pointers on C》 《C和指針》本書(shū)提供與C語(yǔ)言編程相關(guān)的全面資源和深入討論。本書(shū)通過(guò)對指針的基礎知識和高級特性的探討,幫助程序員把指針的強大功能融入到自己的程序中去。 全書(shū)共18章,覆蓋了數據、語(yǔ)句、操作符和表達式、指針、函數、數組、字符串、結構和聯(lián)合等幾乎所有重要的C編程話(huà)題。書(shū)中給出了很多編程技巧和提示,每章后面有針對性很強的練習,附錄部分則給出了部分練習的解答。
《C: A Reference Manual》 《C參考手冊》全書(shū)分為兩大部分,共24章。第一部分討論了C語(yǔ)言的所有語(yǔ)言特征,包括詞法、預處理機制、聲明、類(lèi)型、表達式、語(yǔ)句以及函數等基本語(yǔ)言特性。第二部分討論了C語(yǔ)言的標準庫,根據它們不同的功能分別詳細介紹。為幫助讀者理解相關(guān)概念,本書(shū)在討論C語(yǔ)言及其標準庫的各方面問(wèn)題時(shí),提供了許多實(shí)例和解釋。在第一部分的各章中還提供了練習題,書(shū)后則給出了主要練習的解答。這些練習的主要目的是幫助讀者理解C語(yǔ)言的基本機制及其重要細節,其中并不涉及復雜的程序設計技術(shù)與問(wèn)題。
《C Primer Plus》 本書(shū)全面講述了C語(yǔ)言編程的相關(guān)概念和知識。 全書(shū)共17章。第1.2章學(xué)習C語(yǔ)言編程所需的預備知識。第3到15章介紹了C語(yǔ)言的相關(guān)知識,包括數據類(lèi)型、格式化輸入輸出、運算符、表達式、流程控制語(yǔ)句、函數、數組和指針、字符串操作、內存管理、位操作等等,知識內容都針對C99標準;另外,第10章強化了對指針的討論,第12章引入了動(dòng)態(tài)內存分配的概念,這些內容更加適合讀者的需求。第16章和第17章討論了C預處理器和C庫函數、高級數據表示(數據結構)方面的內容。附錄給出了各章后面復習題、編程練習的答案和豐富的C編程參考資料。
然后呢,做些練習題,培養自己的興趣和編程思想
祝您學(xué)業(yè)有成
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據《信息網(wǎng)絡(luò )傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個(gè)月內通知我們,我們會(huì )及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習?shū)B(niǎo). 頁(yè)面生成時(shí)間:2.588秒