去百度文庫,查看完整內容>
內容來(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) 注意
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(表達式)。
(這是別人回答我的問(wèn)題,感覺(jué)很有幫助你可以了解了解)如何學(xué)好c語(yǔ)言 教了多年《C程序設計》課程,大多學(xué)生覺(jué)的這門(mén)課程難學(xué)。
其實(shí),按照我們現在的教學(xué)大綱和教學(xué)要求,只要同學(xué)們掌握一些方法,克服心理上畏難、不輕言放棄,是完全可以學(xué)好的。 《C程序設計》的內容很豐富,按照我們現在的教學(xué)大綱,教學(xué)的主要內容是基礎知識、四種結構的的程序設計、函數與數組的應用和一些簡(jiǎn)單的算法。
在學(xué)習時(shí),同學(xué)們應該把主要精力放在這些部分,通過(guò)實(shí)踐(練習和上機調試等熟練掌握。當然,在初學(xué)C語(yǔ)言時(shí),可能會(huì )遇到有些問(wèn)題理解不透,或者表達方式與以往數學(xué)學(xué)習中不同(如運算符等),這就要求不氣餒,不明白的地方多問(wèn)多想,鼓足勇氣進(jìn)行學(xué)習,待學(xué)完后面的章節知識,前面的問(wèn)題也就迎刃而解了,這一方面我感覺(jué)是我們同學(xué)最欠缺,大多學(xué)不好的就是因為一開(kāi)始遇到困難就放棄,曾經(jīng)和好多同學(xué)談他的問(wèn)題,回答是聽(tīng)不懂、不想聽(tīng)、放棄這樣三個(gè)過(guò)程,我反問(wèn),這節課你聽(tīng)過(guò)課嗎?回答又是沒(méi)有,根本就沒(méi)聽(tīng)過(guò)課,怎么說(shuō)自己聽(tīng)不懂呢?相應的根本就沒(méi)學(xué)習,又談何學(xué)的好? 學(xué)習C語(yǔ)言始終要記住“曙光在前頭”和“千金難買(mǎi)回頭看”,“千金難買(mǎi)回頭看”是學(xué)習知識的重要方法,就是說(shuō),學(xué)習后面的知識,不要忘了回頭弄清遺留下的問(wèn)題和加深理解前面的知識,這是我們學(xué)生最不易做到的,然而卻又是最重要的。
比如:在C語(yǔ)言中最典型的是關(guān)于結構化程序設計構思,不管是那種教材,一開(kāi)始就強調這種方法,這時(shí)也許你不能充分體會(huì ),但是學(xué)到函數時(shí),再回頭來(lái)仔細體會(huì ),溫故知新,理解它就沒(méi)有那么難了。學(xué)習C語(yǔ)言就是要經(jīng)過(guò)幾個(gè)反復,才能前后貫穿,積累應該掌握的C知識。
那么,我們如何學(xué)好《C程序設計》呢? 一.學(xué)好C語(yǔ)言的運算符和運算順序 這是學(xué)好《C程序設計》的基礎,C語(yǔ)言的運算非常靈活,功能十分豐富,運算種類(lèi)遠多于其它程序設計語(yǔ)言。在表達式方面較其它程序語(yǔ)言更為簡(jiǎn)潔,如自加、自減、逗號運算和三目運算使表達式更為簡(jiǎn)單,但初學(xué)者往往會(huì )覺(jué)的這種表達式難讀,關(guān)鍵原因就是對運算符和運算順序理解不透不全。
當多種不同運算組成一個(gè)運算表達式,即一個(gè)運算式中出現多種運算符時(shí),運算的優(yōu)先順序和結合規則顯得十分重要。在學(xué)習中,只要我們對此合理進(jìn)行分類(lèi),找出它們與我們在數學(xué)中所學(xué)到運算之間的不同點(diǎn)之后,記住這些運算也就不困難了,有些運算符在理解后更會(huì )牢記心中,將來(lái)用起來(lái)得心應手,而有些可暫時(shí)放棄不記,等用到時(shí)再記不遲。
先要明確運算符按優(yōu)先級不同分類(lèi),《C程序設計》運算符可分為15種優(yōu)先級,從高到低,優(yōu)先級為1 ~ 15,除第2、3級和第14級為從右至左結合外,其它都是從左至右結合,它決定同級運算符的運算順序。下面我們通過(guò)幾個(gè)例子來(lái)說(shuō)明: (1) 5*8/4%10 這個(gè)表達式中出現3種運算符,是同級運算符,運算順序按從左至右結合,因此先計算5 *8=40,然后被4除,結果為10,最后是%(求余數)運算,所以表達式的最終結果為10%10 = 0; (2)a = 3;b = 5;c =++ a* b ;d =a + +* b; 對于c=++a*b來(lái)說(shuō),按表中所列順序,+ +先執行,*后執行,所以+ + a執行后,a的值為4,由于+ +為前置運算,所以a的值4參與運算,C的值計算式為4*5=20而不是3*5=15了;而對于d=a++*b來(lái)說(shuō),由于a + +為后置運算,所以a值為4參與運算,使得d的值仍為20,而a參與運算后其值加1,值為5。
這個(gè)例子執行后,a的值為5,b的值為5,c的值為20,d的值也是20; (3)(a = 3,b = 5,b+ = a,c = b* 5) 例子中的“,”是逗號結合運算,上式稱(chēng)為逗號表達式,自左向右結合,最后一個(gè)表達式的結果值就是逗號表達式的結果,所以上面的逗號表達式結果為40,a的值為3,b的值為8,c的值為40。 (4)a=5;b=6;c=a>b?a:b; 例中的a>b?a:b是一個(gè)三目運算,它的功能是先做關(guān)系運算a>b部分,若結果為真,則取問(wèn)號后a的值,否則取冒號后b的值,因此c的值應該為6,這個(gè)運算可以用來(lái)代替if…else…語(yǔ)句的簡(jiǎn)單應用。
二.學(xué)好C語(yǔ)言的四種程序結構 (1)順序結構 順序結構的程序設計是最簡(jiǎn)單的,只要按照解決問(wèn)題的順序寫(xiě)出相應的語(yǔ)句就行,它的執行順序是自上而下,依次執行。 例如;a = 3,b = 5,現交換a,b的值,這個(gè)問(wèn)題就好象交換兩個(gè)杯子水,這當然要用到第三個(gè)杯子,假如第三個(gè)杯子是c,那么正確的程序為: c = a; a = b; b = c; 執行結果是a = 5,b = c = 3如果改變其順序,寫(xiě)成:a = b; c = a; b = c; 則執行結果就變成a = b = c = 5,不能達到預期的目的,初學(xué)者最容易犯這種錯誤。
順序結構可以獨立使用構成一個(gè)簡(jiǎn)單的完整程序,常見(jiàn)的輸入、計算,輸出三步曲的程序就是順序結構,例如計算圓的面積,其程序的語(yǔ)句順序就是輸入圓的半徑r,計算s = 3.14159*r*r,輸出圓的面積s。不過(guò)大多數情況下順序結構都是作為程序的一部分,與其它結構一起構成一個(gè)復雜的程序,例如分支結構中的復合語(yǔ)句、循環(huán)結構中的循環(huán)體等。
(2) 分支結構 順序結構的程序雖然能解決計算、輸出等問(wèn)題,但不能做判斷再選擇。對于要先做判斷再選擇的問(wèn)題就要使用分支結構。
分支結構的執行是依據一定的條件選擇。
很多人對學(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è)不是C語(yǔ)言寫(xiě)的?所有的windows,Unix,Linux,Mac,os/2,沒(méi)有一個(gè)里外的,如果你不懂C語(yǔ)言,怎么可能深入到這些操作系統當中去呢?更不要說(shuō)你去寫(xiě)它們的內核程序了。 第三:很多新型的語(yǔ)言都是衍生自C語(yǔ)言,C++,J ava,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函數罷了。
…… 以上內容來(lái)源于: 。
去百度文庫,查看完整內容>
內容來(lái)自用戶(hù):zhujie_0811
c語(yǔ)言入門(mén)經(jīng)典必背18個(gè)程序.txtc語(yǔ)言入門(mén)經(jīng)典必背18個(gè)程序
1、/*輸出9*9口訣。共9行9列,i控制行,j控制列。*/#include"stdio.h"main(){inti,j,result;for(i=1;i<10;i++){for(j=1;j<10;j++){result=i*j;printf("%d*%d=%-3d",i,j,result);/*-3d表示左對齊,占3位*/printf("\n");/*每一行后換行*/
2、/*古典問(wèn)題:有一對兔子,從出生后第3個(gè)月起每個(gè)月都生一對兔子,小兔子長(cháng)到第三個(gè)月后每個(gè)月又生一對兔子,假如兔子都不死,問(wèn)每個(gè)月的兔子總數為多少?兔子的規律為數列1,1,2,3,5,8,13,21。.*/main(){longf1,f2;inti;f1=f2=1;for(i=1;i<=20;i++){printf("%12ld%12ld",f1,f2);if(i%2==0)printf("\n");/*控制輸出,每行四個(gè)*/f1=f1+f2;/*前兩個(gè)月加起來(lái)賦值給第三個(gè)月*/f2=f1+f2;/*前兩個(gè)月加起來(lái)賦值給第三個(gè)月*/
3、/*判斷101-200之間有多少個(gè)素數,并輸出所有素數及素數的個(gè)數。程序分析:判斷素數的方法:用一個(gè)數分別去除2到sqrt(這個(gè)數),如果能被整除,則表明此數不是素數,反之是素數。*/#include"math.h"main(){intm,i,k,h=0,leap=1;printf("\n");for(m=101;m<=200;m++){k=sqrt(m+1);for(i=2;i<=k;i++)if(m%i==0){leap=0;break;if(leap)/*內循環(huán)結束后,leap依然為1,則m是素數*/{printf("%-4d",m);h++;if(h%10==0)printf("\n");leap=1;printf("\nThe
編程語(yǔ)言其實(shí)是一個(gè)很初級的工具,但是你又必須熟練的掌握它,學(xué)懂一門(mén)編程語(yǔ)言就好像學(xué)會(huì )了寫(xiě)字,但是會(huì )寫(xiě)字的人不見(jiàn)得會(huì )寫(xiě)文章,而會(huì )寫(xiě)文章又不見(jiàn)的寫(xiě)得好。
可是如果你不會(huì )寫(xiě)字,那就一定寫(xiě)不出文章來(lái)。 首先,在學(xué)習C語(yǔ)言之前,應該學(xué)好計算機基礎。
里面的很多概念對于C程序員都是非常重要的。如果你在著(zhù)手學(xué)習C之前,或者已經(jīng)開(kāi)始學(xué)習C,但是碰到了很多問(wèn)題,應該再把計算機基礎的書(shū)拿來(lái)好好看看。
如果你有足夠的耐心,十足的毅力,應該再學(xué)習C語(yǔ)言之前學(xué)學(xué)匯編,這會(huì )讓你對許多比較細膩的概念有清醒的認識,如果你不是那么有耐心(恕我直言,大部分人可能沒(méi)有)。那么可以在看完一遍C語(yǔ)言的教材后再看,但是一定要看一遍,相信我一定會(huì )受益匪淺。
看到有些人發(fā)問(wèn)的帖子,很明顯的沒(méi)有仔細的思考過(guò)問(wèn)題,或者沒(méi)有認真地查閱過(guò)書(shū)籍,因為其中的語(yǔ)法和邏輯錯誤實(shí)在是不能理解。想來(lái)如果你的語(yǔ)文作業(yè)上面滿(mǎn)篇都是錯字,老師一定不會(huì )放過(guò)你。
為什么不先打好基礎呢?有些人抱怨說(shuō)因為教材不好,老師水平不行等等。但是我本人就是在TC2下學(xué)習C語(yǔ)言的,那時(shí)候除了譚浩強的書(shū),也幾乎找不到什么別的書(shū)。
我不打算就譚浩強的書(shū)發(fā)表什么意見(jiàn),那也實(shí)在稱(chēng)不上是一本好書(shū),但是如果這本是能學(xué)好,全部看好,都記住,也應該有相當的水平了。建議不管看什么書(shū),先認真地看懂,不要貪速度,應該力求深入的理解。
如果你能夠比較熟練的解決一本教材上的所有習題,那么就應該轉入對算法的學(xué)習,盡管此時(shí)你的C語(yǔ)言還稱(chēng)不上精通,有許多細節問(wèn)題還不了解,許多問(wèn)題還沒(méi)有碰到,但是這些問(wèn)題會(huì )在后面的工作和學(xué)習中得到解決的。 新手學(xué)習C語(yǔ)言,有很多誤區,以一個(gè)學(xué)過(guò)C語(yǔ)言的人,給新手一些建議。
拋磚引玉,請前輩指出問(wèn)題,發(fā)表意見(jiàn),新手請注意后面的回復。 第一:一些概念。
C語(yǔ)言是一門(mén)程序設計語(yǔ)言,有一些標準,比較重要的是ANSI C(好像是C89)和C99。 數據結構包括邏輯結構和物理結構。
邏輯結構是數據元素集合和定義在集合上的關(guān)系。物理結構是邏輯結構在計算機中的實(shí)現。
LCC、VC、TC、GCC都是C語(yǔ)言編譯器,一般包括集成開(kāi)發(fā)環(huán)境,編譯器和鏈接器及輔助工具 我們書(shū)寫(xiě)的是C源程序,源程序通過(guò)編譯器編譯為中間文件,中間文件經(jīng)鏈接器鏈接生成可執行文件。不同操作系統可執行文件不同。
中間文件也有幾個(gè)標準,微軟使用的和Linux下通用的有差異。 第二:學(xué)習什么。
個(gè)人認為程序設計學(xué)習的重點(diǎn)放在數據結構的學(xué)習上,但是這種學(xué)習要有一個(gè)平臺,比如C語(yǔ)言。 學(xué)習C語(yǔ)言首先要掌握基本語(yǔ)法,常量、變量、類(lèi)型、及順序結構、分支結構和循環(huán)結構的意義及用法。
進(jìn)一步學(xué)習構造類(lèi)型如指針、結構、函數的意義和用法。 C語(yǔ)言提供一些標準函數以減輕程序設計工作量,這些函數我們自己也可以實(shí)現。
即使不依靠函數庫,只有編譯器,理論上就足夠了。事實(shí)上,提供的標準函數效率都很高,使用很頻繁,沒(méi)有自己實(shí)現的必要,所以掌握常用函數是非常必要的,但是要注意函數的適用范圍。
繼續學(xué)習因人而異,應該可以獨立選擇了。 第三:如何學(xué)習。
強調多實(shí)踐,C語(yǔ)言的學(xué)習要經(jīng)常上機,多寫(xiě)程序才能逐步提高。 推薦書(shū)籍:C Programming Languge。
有中譯本,但最好看英文版。 通讀,并將所有習題獨立思考,給出解答,尤其是編程實(shí)踐題,最好逐一上機完成。
C語(yǔ)言其實(shí)并不難,如果認真掌握了C Programming Language,C語(yǔ)言的基礎就可以了,繼續學(xué)習就更加容易。建議不要找捷徑,通過(guò)考試除外,真正的水平提高是建立在編程實(shí)踐積累基礎上的,必須一個(gè)一個(gè)程序的完成才能提高。
談及C語(yǔ)言,我想凡是學(xué)過(guò)它的朋友都有這樣一種感覺(jué),那就是“讓我歡喜讓我憂(yōu)。”歡喜的是,C語(yǔ)言功能非常強大、應用廣泛,一旦掌握了后,你就可以理直氣壯地對他人說(shuō)“我是電腦高手!”,而且以后若是再自學(xué)其他語(yǔ)言就顯得輕而易舉了。
憂(yōu)慮的是,C語(yǔ)言猶如“少林武功” 一般博大精深,太難學(xué)了。其實(shí)就筆者認為C語(yǔ)言并非是“difficult(困難)”的,只要你能理清思路,掌握它的精髓,那么自學(xué)C語(yǔ)言是一件非常容易且又其樂(lè )無(wú)窮的事。
今天本人就與大家一起談?wù)勅绾螌W(xué)習C語(yǔ)言或者說(shuō)學(xué)習C語(yǔ)言應從哪幾方面著(zhù)手。 了解一些基本知識 一.C語(yǔ)言的背景 就個(gè)人感觸,無(wú)論學(xué)習哪門(mén)語(yǔ)言首先應該了解一下自己所學(xué)語(yǔ)言的背景,也可以說(shuō)它的發(fā)展史。
C語(yǔ)言屬于高級程序語(yǔ)言的一種,它的前身是“ALGOL”。其創(chuàng )始人是布朗·W·卡尼漢和丹尼斯·M·利奇。
C語(yǔ)言問(wèn)世時(shí)是帶有很大的局限性,因為它只能用于UNIX系統上。然而隨著(zhù)科學(xué)技術(shù)的進(jìn)步,計算機工業(yè)的發(fā)展,C語(yǔ)言逐漸脫離UNIX。
1987年美國標準化協(xié)會(huì )制定了C語(yǔ)言的國際標準,簡(jiǎn)稱(chēng) “ANSI C”,從此以后它便成為一種廣泛使用的程序語(yǔ)言。C語(yǔ)言的優(yōu)點(diǎn)很多,主要的有如下四點(diǎn): 1.兼備高級語(yǔ)言與低級語(yǔ)言的優(yōu)點(diǎn),屬于一種中間語(yǔ)言。
2.它是一種結構化程序設計語(yǔ)言,非常適合結構化程序設計。 3.有較豐富的數據類(lèi)型、運算符以及函數供以選用。
4.直接與內存打交道,使修改、編輯其他程序與文檔變得輕松,簡(jiǎn)單。 。
掌握C語(yǔ)言的基本語(yǔ)法和規定。
掌握程序設計基本算法和思路,開(kāi)拓思路, 提高上機操作能力,掌握上機調試程序的方法 培養自學(xué)能力,強調自主學(xué)習。 養成良好的程序設計習慣。
通過(guò)總結多年的教學(xué)經(jīng)驗,總結學(xué)生在學(xué)習過(guò)程中具有規律性的特點(diǎn),可以發(fā)現,在本課程學(xué)習過(guò)程中學(xué)生經(jīng)常出現下面這些問(wèn)題: * 注重理論學(xué)習,忽視上機編程實(shí)踐,造成"只能用筆在紙上編程"的奇怪現象。特別是一些女同學(xué),一到機器前面就手忙腳亂,如果程序再出現錯誤,就更不知道該如何查找錯誤,如何排除錯誤了。
*入門(mén)時(shí)自以為難度大,產(chǎn)生畏難情緒,總是怕,最后因為怕學(xué)不好而導致沒(méi)有學(xué)好。 *前期沒(méi)有抓緊,希望通過(guò)突擊完成課程學(xué)習。
本課程要靠平時(shí)的積累,幾乎不能靠臨時(shí)突擊,由于前面基礎補扎實(shí),到了后面已經(jīng)無(wú)法彌補。 *太注重學(xué)習語(yǔ)句的語(yǔ)法規定,忽視了對編程的思路和方法的訓練。
有些同學(xué)再學(xué)習結束的感覺(jué)就是:對每一個(gè)語(yǔ)句的語(yǔ)法和每一條規定都明白,就是面對實(shí)際問(wèn)題的時(shí)候不知道該如何思考,該如何編程。 *急于求成,總想編寫(xiě)綜合性的程序,忽視基本概念,忽視基本功的訓練和練習。
在編寫(xiě)程序中發(fā)現問(wèn)題,一追根源,全是概念或基礎問(wèn)題。 1.不要看到別人的回復第一句話(huà)就說(shuō):給個(gè)代碼吧!你應該想想為什么。
當你自己想 出來(lái)再參考別人的提示,你就知道自己和別人思路的差異。 2.初學(xué)者請不要看太多太多的書(shū)那會(huì )誤人子弟的,先找本系統的學(xué),很多人用了很久 都是只對部分功能熟悉而已,不系統還是不夠的。
3.看幫助,不要因為很難而自己是初學(xué)者所以就不看;幫助永遠是最好的參考手冊, 雖然幫助的文字有時(shí)候很難看懂,總覺(jué)得不夠直觀(guān)。 4.不要被對象、屬性、方法等詞匯所迷惑;最根本的是先了解最基礎知識。
5.不要放過(guò)任何一個(gè)看上去很簡(jiǎn)單的小問(wèn)題--他們往往并不那么簡(jiǎn)單,或者可以引伸 出很多知識點(diǎn);不會(huì )舉一反三你就永遠學(xué)不會(huì )。 6.知道一點(diǎn)東西,并不能說(shuō)明你會(huì )寫(xiě)腳本,腳本是需要經(jīng)驗積累的。
7.學(xué)腳本并不難,JSP、ASP、PHP等等也不過(guò)如此--難的是長(cháng)期堅持實(shí)踐和不遺余力的博覽 群書(shū); 8.看再多的書(shū)是學(xué)不全腳本的,要多實(shí)踐 9.把時(shí)髦的技術(shù)掛在嘴邊,還不如把過(guò)時(shí)的技術(shù)記在心里; 10.學(xué)習腳本最好的方法之一就是多練習; 11.在任何時(shí)刻都不要認為自己手中的書(shū)已經(jīng)足夠了; 12.看得懂的書(shū),請仔細看;看不懂的書(shū),請硬著(zhù)頭皮看; 13.別指望看第一遍書(shū)就能記住和掌握什么--請看第二遍、第三遍; 14.請把書(shū)上的例子親手到電腦上實(shí)踐,即使配套光盤(pán)中有源文件; 15.把在書(shū)中看到的有意義的例子擴充;并將其切實(shí)的運用到自己的工作中; 16.不要漏掉書(shū)中任何一個(gè)練習--請全部做完并記錄下思路; 17.當你用腳本到一半卻發(fā)現自己用的方法很拙劣時(shí),請不要馬上停手;請盡快將余 下的部分粗略的完成以保證這個(gè)代碼的完整性,然后分析自己的錯誤并重新編寫(xiě)和工 作。 18.別心急,寫(xiě)腳本確實(shí)不容易;水平是在不斷的實(shí)踐中完善和發(fā)展的; 19.每學(xué)到一個(gè)腳本難點(diǎn)的時(shí)候,嘗試著(zhù)對別人講解這個(gè)知識點(diǎn)并讓他理解----你能 講清楚才說(shuō)明你真的理解了; 20.記錄下在和別人交流時(shí)發(fā)現的自己忽視或不理解的知識點(diǎn); 21.保存好你做過(guò)的所有的源文件----那是你最好的積累之一; 22.對于網(wǎng)絡(luò ),還是希望大家能多利用一下,很多問(wèn)題不是非要到論壇來(lái)問(wèn)的,首先 你要學(xué)會(huì )自己找答案,比如google、百度都是很好的搜索引擎,你只要輸入關(guān)鍵字就 能找到很多相關(guān)資料,別老是等待別人給你希望,看的出你平時(shí)一定也很懶! 23.到一個(gè)論壇,你學(xué)會(huì )去看以前的帖子,不要什么都不看就發(fā)帖子問(wèn),也許你的問(wèn) 題早就有人問(wèn)過(guò)了,你再問(wèn),別人已經(jīng)不想再重復了,做為初學(xué)者,誰(shuí)也不希望自己 的帖子沒(méi)人回的。
24.雖然不是打擊初學(xué)者,但是這句話(huà)還是要說(shuō):論壇論壇,就是大家討論的地方, 如果你總期望有高手總無(wú)償指點(diǎn)你,除非他是你親戚!!討論者,起碼是水平相當的 才有討論的說(shuō)法,如果水平真差距太遠了,連基本操作都需要別人給解答,誰(shuí)還跟你 討論呢。能找到很多相關(guān)資料,別老是等待別人給你希望,看的出你平時(shí)一定也很懶! 25.到一個(gè)論壇,你學(xué)會(huì )去看以前的帖子,不要什么都不看就發(fā)帖子問(wèn),也許你的問(wèn) 題早就有人問(wèn)過(guò)了,你再問(wèn),別人已經(jīng)不想再重復了,做為初學(xué)者,誰(shuí)也不希望自己 的帖子沒(méi)人回的。
26.雖然不是打擊初學(xué)者,但是這句話(huà)還是要說(shuō):論壇論壇,就是大家討論的地方, 如果你總期望有高手總無(wú)償指點(diǎn)你,除非他是你親戚!!討論者,起碼是水平相當的 才有討論的說(shuō)法,如果水平真差距太遠了,連基本操作都需要別人給解答,誰(shuí)還跟你 討論呢。 別做浮躁的人 浮躁的人容易問(wèn):我到底該學(xué)什么;----別問(wèn),學(xué)就對了; 浮躁的人容易問(wèn):JS有錢(qián)途嗎;----建議你去搶銀行; 浮躁的人容易說(shuō):我要中文版!我英文不行!----不行?學(xué)呀! 浮躁的人分兩種:只觀(guān)望而不學(xué)的人;只學(xué)而不堅持的人; 浮躁的人永遠不是一個(gè)。
關(guān)鍵在sizeof這個(gè)函數
sizeof on array function parameter will return size of 'char *' instead of 'char []' [-Wsizeof-array-argument]
這個(gè)涉及到函數形參和指針不知道你有沒(méi)有學(xué)到,通俗講就是因為這里的sizeof(t)求的是形參 字符型指針的內存長(cháng)度。可以根據下面的結果分析下:
#include
using namespace std;
int start(char s[],char t[])
{
int i=0,j=0,temp=0;
char *a="avd";
cout
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據《信息網(wǎng)絡(luò )傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個(gè)月內通知我們,我們會(huì )及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習?shū)B(niǎo). 頁(yè)面生成時(shí)間:3.105秒