沒(méi)有匯編一樣可以學(xué)好c語(yǔ)言,他們沒(méi)有聯(lián)系的,只是在不同層次上的程序語(yǔ)言.學(xué)習c語(yǔ)言并編寫(xiě)程序很容易,但是要寫(xiě)出高效率的代碼,就是節省內存并且運行速度快的代碼就是比較困難的,要學(xué)習算法和數據結構.而算法和數學(xué)知識比較緊密。
現在你的機會(huì )還多,那么年輕.推薦:1.nbsp;nbsp;nbsp;nbsp;nbsp;參考資料①nbsp;nbsp;nbsp;nbsp;《算法藝術(shù)和信息學(xué)競賽》②nbsp;nbsp;nbsp;nbsp;《算法導論》③nbsp;nbsp;nbsp;nbsp;《具體數學(xué)》④nbsp;nbsp;nbsp;nbsp;《組合數學(xué)》2.nbsp;nbsp;nbsp;nbsp;熟悉基本的編程技巧和方法:nbsp;①nbsp;nbsp;nbsp;nbsp;nbsp;輸入和輸出②nbsp;nbsp;nbsp;nbsp;nbsp;形成關(guān)于時(shí)間復雜度的概念,估計算法的時(shí)間復雜度nbsp;③nbsp;nbsp;nbsp;nbsp;nbsp;會(huì )寫(xiě)遞歸形式的回溯算法nbsp;④nbsp;nbsp;nbsp;nbsp;nbsp;熟悉堆棧、隊列、二叉堆、哈希表等簡(jiǎn)單的數據結構nbsp;nbsp;3.nbsp;nbsp;nbsp;nbsp;學(xué)習下列主題,針對部分專(zhuān)題進(jìn)行講解和討論nbsp;①nbsp;nbsp;nbsp;nbsp;nbsp;數據結構:并查集等②nbsp;nbsp;nbsp;nbsp;nbsp;圖論:圖的廣搜,圖的深搜和應用,最短路徑,最小生成樹(shù)等nbsp;③nbsp;nbsp;nbsp;nbsp;nbsp;動(dòng)態(tài)規劃④nbsp;nbsp;nbsp;nbsp;nbsp;剪枝優(yōu)化搜索nbsp;⑤nbsp;nbsp;nbsp;nbsp;nbsp;平面幾何nbsp;4.nbsp;nbsp;nbsp;nbsp;①nbsp;nbsp;nbsp;nbsp;nbsp;線(xiàn)段樹(shù)②nbsp;nbsp;nbsp;nbsp;nbsp;后綴數組③nbsp;nbsp;nbsp;nbsp;nbsp;網(wǎng)絡(luò )流④nbsp;nbsp;nbsp;nbsp;nbsp;隨機算法。
你的基礎是有點(diǎn)難了.英文就那么一點(diǎn)可以忽略,只要強記就可以了.但是數學(xué)基礎必須要有,否則就算學(xué)也不會(huì )學(xué)得很好.編程這活基礎不好的話(huà)是沒(méi)什么用的.可能別人拿來(lái)一段代碼都看不懂它所表達的意思的.所以如果你有心學(xué)這個(gè),建議先把數學(xué)底子先打一下.可以的話(huà)學(xué)下高數.如果有困難最起碼也要把高中數學(xué)學(xué)完吃透.編程和數學(xué)里的一些邏輯思維和一些數學(xué)定勢習慣是有一些共同的.所以最低要求是要把里面的一些數學(xué)解題模式和習慣要掌握.這樣學(xué)習起來(lái)編程.C才容易.而且這樣僅僅只能說(shuō)是一般,只能看懂代碼而已.如果要自己?jiǎn)为毦帉?xiě)代碼.則需要慢慢來(lái).。
(這是別人回答我的問(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)題就要使用分支結構。
分支結構的執行是依據一定的條件選擇。
C是除機器語(yǔ)言和匯編外最貼近硬件的程序語(yǔ)言,除了必要的數學(xué)和英文基礎外最好對計算機硬件有一定了解。學(xué)C是個(gè)枯燥的過(guò)程,但能堅持學(xué)下來(lái)的話(huà)能為將來(lái)打下良好基礎。實(shí)際上我建議你搞臺低配置的機器,只裝DOS和Turbo C,從基礎到DOS下的VGA圖形編程一路上學(xué)下來(lái),會(huì )發(fā)現它越來(lái)越有趣。加油,小朋友!
中期有個(gè)很有意思的東西就是graphics.h這個(gè)庫,結合一些解析幾何知識再加上你的想象力,你可以畫(huà)出很復雜很炫的幾何圖形,當年我是玩得不亦樂(lè )乎。
能用電腦打字
初中水平的初等代數
學(xué)完初中平面幾何后所能達到的邏輯思維能力(但不要求幾何知識本身)
以上我認為是必須的。
計算機的一點(diǎn)歷史啊,常識啊,如知道計算機有磁盤(pán)、內存、CPU和輸入輸出設備
一點(diǎn)二進(jìn)制的東西,不過(guò)可以在學(xué)C語(yǔ)言同時(shí)學(xué)
熟悉一般軟件的使用
中學(xué)英語(yǔ)水平
高中數學(xué)知識
以上不是必須的,但多數學(xué)C語(yǔ)言的人都具備了。
學(xué)過(guò)一門(mén)更簡(jiǎn)單的高級計算機語(yǔ)言,如BASIC(不是VB)、Pascal、LOGO或某種腳本語(yǔ)言
高等數學(xué)及相當的邏輯思維能力
熟悉計算機構成、原理,操作系統的一點(diǎn)知識,硬件的一點(diǎn)知識
良好的英語(yǔ)能力
以上是很理想的學(xué)習狀態(tài),不過(guò)具備的人不多。
軟件編程后期一定要學(xué)C++ 如何提高C語(yǔ)言的編程能力: 學(xué)習C語(yǔ)言,譚浩強的《C程序設計》是一部非常好的C語(yǔ)言書(shū)籍,學(xué)習程序設計是一個(gè)非常漫長(cháng)的過(guò)程,不要著(zhù)急,一本書(shū)多看兩遍三遍,學(xué)會(huì )交叉學(xué)習法,在學(xué)習C的過(guò)程中,可以看看數據結構,編譯原理,操作系統等書(shū)籍,對編成都是很有幫助的。
最開(kāi)始學(xué)習的時(shí)候,先不要編一些比較大的程序,多編一些小程序,比如數組運算,字符組合等等,指針是C語(yǔ)言的精華,是比較復雜的部分。看到你的情況,既然學(xué)的是軟件編程,那么對語(yǔ)言的駕馭能力還是很不錯的,我相信你,你一定能學(xué)習好C語(yǔ)言的。
C++的學(xué)習方法或建議 C++是C語(yǔ)言的擴展,學(xué)習的難度比較大一些,也是目前學(xué)習難度最大的一門(mén)語(yǔ)言,相對與C來(lái)講,增加了一些新特性,繼承,對象,模板,多態(tài),STL(標準模板庫),充分掌握這門(mén)語(yǔ)言需要四年的時(shí)間, C++學(xué)習經(jīng)典: 1.把C++當成一門(mén)新的語(yǔ)言學(xué)習。 2.看《Thinking In C++》,不要看《C++變成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因為他們很難而我們自己是初學(xué)者所以就不看; 4.不要被VC、BCB、BC、MC、TC等詞匯所迷惑——他們都是集成開(kāi)發(fā)環(huán)境,而我們要學(xué)的是一門(mén)語(yǔ)言; 5.不要放過(guò)任何一個(gè)看上去很簡(jiǎn)單的小編程問(wèn)題——他們往往并不那么簡(jiǎn)單,或者可以引伸出很多知識點(diǎn); 6.會(huì )用Visual C++,并不說(shuō)明你會(huì )C++; 7.學(xué)class并不難,template、STL、generic programming也不過(guò)如此——難的是長(cháng)期堅持實(shí)踐和不遺余力的博覽群書(shū); 8.如果不是天才的話(huà),想學(xué)編程就不要想玩游戲——你以為你做到了,其實(shí)你的C++水平并沒(méi)有和你通關(guān)的能力一起變高——其實(shí)可以時(shí)刻記住:學(xué)C++是為了編游戲的; 9.看Visual C++的書(shū),是學(xué)不了C++語(yǔ)言的; 10.浮躁的人容易說(shuō):XX語(yǔ)言不行了,應該學(xué)YY;——是你自己不行了吧!? 11.浮躁的人容易問(wèn):我到底該學(xué)什么;——別問(wèn),學(xué)就對了; 12.浮躁的人容易問(wèn):XX有錢(qián)途嗎;——建議你去搶銀行; 13.浮躁的人容易說(shuō):我要中文版!我英文不行!——不行?學(xué)呀! 14.浮躁的人容易問(wèn):XX和YY哪個(gè)好;——告訴你吧,都好——只要你學(xué)就行; 15.浮躁的人分兩種:a)只觀(guān)望而不學(xué)的人;b)只學(xué)而不堅持的人; 16.把時(shí)髦的技術(shù)掛在嘴邊,還不如把過(guò)時(shí)的技術(shù)記在心里; 17.C++不僅僅是支持面向對象的程序設計語(yǔ)言; 18.學(xué)習編程最好的方法之一就是閱讀源代碼; 19.在任何時(shí)刻都不要認為自己手中的書(shū)已經(jīng)足夠了; 20.請閱讀《The Standard C++ Bible》(中文版:標準C++寶典),掌握C++標準; 21.看得懂的書(shū),請仔細看;看不懂的書(shū),請硬著(zhù)頭皮看; 22.別指望看第一遍書(shū)就能記住和掌握什么——請看第二遍、第三遍; 23.請看《Effective C++》和《More Effective C++》以及《Exceptional C++》; 24.不要停留在集成開(kāi)發(fā)環(huán)境的搖籃上,要學(xué)會(huì )控制集成開(kāi)發(fā)環(huán)境,還要學(xué)會(huì )用命令行方式處理程序; 25.和別人一起討論有意義的C++知識點(diǎn),而不是爭吵XX行不行或者YY與ZZ哪個(gè)好; 26.請看《程序設計實(shí)踐》,并嚴格的按照其要求去做; 27.不要因為C和C++中有一些語(yǔ)法和關(guān)鍵字看上去相同,就認為它們的意義和作用完全一樣; 28.C++絕不是所謂的C的“擴充”——如果C++一開(kāi)始就起名叫Z語(yǔ)言,你一定不會(huì )把C和Z語(yǔ)言聯(lián)系得那么緊密; 29.請不要認為學(xué)過(guò)XX語(yǔ)言再改學(xué)C++會(huì )有什么問(wèn)題——你只不過(guò)又在學(xué)一門(mén)全新的語(yǔ)言而已; 30.讀完了《Inside The C++ Object Model》以后再來(lái)認定自己是不是已經(jīng)學(xué)會(huì )了C++; 31.學(xué)習編程的秘訣是:編程,編程,再編程; 32.請留意下列書(shū)籍:《C++面向對象高效編程(C++ Effective Object-Oriented Software Construction)》《面向對象軟件構造(Object-Oriented Software Construction)》《設計模式(Design Patterns)》《The Art of Computer Programming》; 33.記住:面向對象技術(shù)不只是C++專(zhuān)有的; 34.請把書(shū)上的程序例子親手輸入到電腦上實(shí)踐,即使配套光盤(pán)中有源代碼; 35.把在書(shū)中看到的有意義的例子擴充; 36.請重視C++中的異常處理技術(shù),并將其切實(shí)的運用到自己的程序中; 37.經(jīng)常回顧自己以前寫(xiě)過(guò)的程序,并嘗試重寫(xiě),把自己學(xué)到的新知識運用進(jìn)去; 38.不要漏掉書(shū)中任何一個(gè)練習題——請全部做完并記錄下解題思路; 39.C++語(yǔ)言和C++的集成開(kāi)發(fā)環(huán)境要同時(shí)學(xué)習和掌握; 40.既然決定了學(xué)C++,就請堅持學(xué)下去,因為學(xué)習程序設計語(yǔ)言的目的是掌握程序設計技術(shù),而程序設計技術(shù)是跨語(yǔ)言的; 41.就讓C++語(yǔ)言的各種平臺和開(kāi)發(fā)環(huán)境去激烈的競爭吧,我們要以學(xué)習C++語(yǔ)言本身為主; 42.當你寫(xiě)C++程序寫(xiě)到一半卻發(fā)現自己用的方法很拙劣時(shí),請不要馬上停手;請盡快將余下的部分粗略的完成以保證這個(gè)設計的完整性,然后分析自己的錯誤并重新設計和編寫(xiě)(參見(jiàn)43); 43.別心急,設計C++的class確實(shí)不容易;自己程序中的class和自己的class設計水平是在不斷的編程實(shí)踐中完善和發(fā)展的; 44.決不要因為程序“很小”就不遵循某些你不熟練的規則——好習慣是培養出來(lái)的,而不是一次記住的; 45.每學(xué)到一個(gè)C。
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據《信息網(wǎng)絡(luò )傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個(gè)月內通知我們,我們會(huì )及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習?shū)B(niǎo). 頁(yè)面生成時(shí)間:3.760秒