⑴ 關於c語言入門
na ni 那你就好好雪白
⑵ C語言網上誰的視頻比較好。
C語言網上的課程是很多的,很推薦去B站找一找學習視頻,章節也分的很詳細;另外就是郝斌的C語言課還是不錯的,不至於講的很枯燥,很通俗易懂,也很適合初學者去學。
C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。
C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。
⑶ C語言的經典編程例子
程序員》推薦C++ 圖書三人談
主持人:熊節(透明),《程序員》雜志編輯,C-View成員
嘉 賓:孟岩(夢魘),聯想公司掌上設備事業部應用開發處任職,C-View成員。與侯捷先生合譯《C++ Standard Library》一書
金尹(惡魔),上海天宇公司CTO,在《程序員》連載有「自由與繁榮的國度」系列文章
透明:「學C++用哪本書入門」,這是被問得最多的一個問題。但是哪一本書是最好的入門書?似乎很難找到答案。《C++ Primer》太厚,《Effective C++》對讀者要求比較高,《Essential C++》又常常被批評為「太淺」。
其實說穿了:no silver bullet。想從一本書學會C++,那是不可能的。有朋友問我如何學C++,我會建議他先去找本數據結構書,把裡面的習題全部用C++做一遍,然後再去看《Effective C++》。myan經常說「要在學習初期養成好習慣」,我對此頗不以為然。
個人認為,《Essential C++》適合作教材,《C++ Primer》適合作參考書,《Effective C++》適合作課外讀物。
惡魔:很後悔當初買了《C++ Primer》。因為從我個人角度來看,它的功能效用基本是和《The C++ Programming Language》重合。當然對於入門來說,它還是很不錯的。但是《C++ Primer》太厚,一來導致看書極其不方便,二來系統學習需要花比較長的時間。對於目前這個越來越快餐化的時代來說,的確有很多不適合的地方,不過可以作為初學者的參考書。現在我以一塊K3 CPU的代價把它借給了別人,希望我那位同事能夠從中得到一些益處。
如果已經具備了C基礎,我建議看國內的書,例如錢能的《 C++大學教程(第二版) 》。(如果沒有C的基礎還是看譚浩強的C語言)。這本書對C講得還算比較清晰,有很多習題值得一做,特別是最後的struct和union兩個部分。其中的一些演算法比較拖沓和繁瑣(比如樹和鏈表的遍歷演算法),讀者可以嘗試修改這些例子,作為最後對C語言的一些總結測試。
夢魘:這個問題讓我想起四五年前的情形。今天對於C++有一點認識的人,多半是從那幾年就開始學C++了。那時根本沒有品牌觀念。從書店裡找一本C++書,如果看著還算明白,就買下來。我記得那時候宛延闓、張國鋒、麥中凡教授的書都受到很高的贊譽。我個人最早的一本C++書是Greg Perry的一本書,今天想起來,其實是一本打著C++旗號的C語言教程。對我作用最大的一本書是國防科技出版社出版的一本書,書名記不得了,作者叫斯蒂芬·布萊哈。
透明:還記得以前曾批評過一本C++書,是北航出的,整本書就沒有出現過class關鍵字。那本書,說穿了其實只是介紹了C語言和iostream庫的用法,根本不能算C++。而當時我常常推薦的一本書是電子科技大學張松梅老師的C++教程。那本書,直到今天來看也沒有太大的問題,唯一的缺憾就是由於年代久遠,許多東西已經過時了。而對於一本技術書籍來說,「過時」是最不可接受的。
總體來說,那時使用C++的人真是在「盲人摸象」。不過這也有好處,就是對C++的很多細節能搞清楚,以後看到經典好書時比較容易理解;當然壞處就是概念不清,甚至都不知道C++和Visual C++、Borland C++到底有什麼不一樣。
夢魘:整個90年代,其實大部分人對於C++的認識都似是而非。一開始是等同於Borland C++,後來是等同於Visual C++和MFC。所以一般來說,打著BC和VC旗號的書賣得很好,人們覺得這就是C++。而我比較幸運,布萊哈的那本書雖然從現在的眼光來看談不上高超,但基本路子是對的。可能是因為原書是給UNIX程序員的培訓教材,所以沒有讓我一開始就形成「C++ == VC++」的認識。
其實一直到1996年,我們那裡搞計算機的都是唯Borland C++馬首是瞻的,到了VC 4.0出來,一下子格局全變了。1997年VC5推出之後,書店裡MFC書鋪天蓋地,學MFC的人,頭抬得都比別人高一些。不過現在看來,那時候大部分的MFC書都是三流貨色。我曾經有一段時間認為,那一批程序員中間有不少被誤導了。根本原因就是相對的封閉。
透明:我覺得一本書的價值有兩方面:第一,教給你實用的技術;第二,促使你去思考。對於一本介紹VC(或者說MFC)使用方法的書,我根本不希望它能促使我有什麼思考,所以我就一定要求它在技術上精益求精完美無瑕。我剛開始用VC的時候,買的第一本書就是潘愛民老師翻譯的《VC技術內幕》(第四版),沒有受到那些「三流貨色」的誤導,應該說是很幸運的。
夢魘:1999年機械工業出版社開始出版「計算機科學叢書」,其中的《Thinking in C++》第一版受到了廣泛的歡迎。其實我一直不認為這本書很出色,雖然拿過一次大獎。然而我們都得承認,這本書在C++書籍領域里第一次建立了品牌觀念,很多初學者開始知道,不是隨便買哪一本都一樣的。再往後就是2000年的《 深入淺出MFC(第二版) 》第二版,以及侯先生在《程序員》上發表的那一篇《C++/OOP大系》,加上整個大環境的變化,品牌觀念深入人心,C++書籍市場終於開始逐漸與世界同步。
回想往事,我的感覺是,那個需要戰戰兢兢選擇入門書的時代已經過去,今天的C++初學者,大可以放心地買口碑好、自己讀起來思路順暢的書,入門不再是太大的問題。還有一些程序員已經學了幾年C++,但看到今天出版的一些新書,感覺比較陌生,這也不是什麼問題。侯先生經常說「凡走過必留下足跡」,所謂「走彎路」,未必不是一件好事。
至於具體的推薦表,就不好一概而論了。總之在我的印象里,《Essential C++》、《C++ Primer》、錢能教授的C++教程,都不錯。甚至有人一上來就看Bjarne Stroustrup的《The C++ Programming Language》,只要他喜歡,也沒什麼不可以。
透明:我同意你的觀點。不管怎麼說,編程是門實踐性非常強的學問。要想對C++對象模型有深入的了解,最好的辦法就是寫一串程序去看結果;要想學會OOP,也只能從項目中學。對於初學者,最好的學習方法就是不停地寫程序,寫真正有用的程序,寫到有問題的時候就去查書,於是自然就會知道哪本書好哪本書不好。不過我們的教育制度能不能讓大學里的學生們有這樣的學習機會,我表示懷疑。
以我的經驗,學C++有兩個門檻:入門和使用。完全看不懂C++,這是一個門檻,但是只要有一本合適的入門書,很快就能跨過。要想真正用上C++,卻不是件很容易的事情。尤其對於學生來說,接觸到的東西多是「玩具」,很難有實戰的機會。所以經常看見有人問「C++到底能做什麼」,這是C++學習中一個比較麻煩的問題。我們都是做了相當長時間的C++程序之後才看到一些真正經典的書,也正是因為走了相當長的彎路之後才知道這些書的經典之所在。所謂彎路,我想也是一種必須的積累。就算一開始就看《Essential C++》和《C++ Primer》,沒有兩三年的時間恐怕還是難有所得。
惡魔:有兩句十分有道理的話,一是我大學的C語言老師說的「寫程序不如說是抄程序」,另一句是一網友說的「好的設計來自借鑒,天才的設計來自剽竊」。對於我這個理性批判主義者來說,這兩句話的確不太適合。但是無論從哪個角度來講,對於初學者來說,剽竊大師的作品是通向成功的最快捷徑。
我個人認為,對於C++的初學者來說,首先要確定自己專業領域內主要使用的特性的方向。因為C++的特性如此眾多,初學者想貪多基本是不可能成功的。C++的編程範式基本可以分為ADT+PP、GP和OO三個方向。對於ADT+PP範式來說,初學者的主要問題不是學習C++,而是學習C的使用。對於這樣的初學者,國內的幾本書還是寫得比較清楚,符合中國人的習慣,比如譚浩強的《C語言教程》、錢能的《C++語言大學教程》。這兩本書我首推第一本,因為這一本我潛心研究了一年,這本書當中很多程序是可以剽竊的,而且可以對這些程序進行加工和提升。比如結構這一章中,它所給出的用struct來實現鏈表、二叉樹的演算法是相當蹩腳的。學習ADT+PP的初學者將這本書揣摩透以後可以嘗試修改這兩個程序。另外這本書的第二版稍微涉及了一些關於「類」的內容。學習ADT+PP的初學者,可以不被OO中的一些專有特性擾亂自己的思路,對於類層次扁平、無繼承、無多態的程序編寫是有很大好處的。
透明:你好象比較推崇國內教授寫的書。現在社會上有種不好的風氣:一捧就捧上天,一貶就貶下地。就好象對待譚教授的書,前幾年是奉為經典,這幾年又有很多人使勁批評。學C++更是有點「崇洋媚外」,總是覺得初學就應該看《Essential C++》。我看這種觀點也是片面的。
惡魔:當然《Essential C++》也值得看看。但是我個人覺得這本書沒有譚浩強的《C語言教程》來得好。主要原因是:第一,C++的所有特性都點到了,但是不深,看了以後會三心二意沒有方向;第二,可以抄襲借鑒的例子太少。《C語言教程》中有很多有趣的問題,比如猴子吃桃、漢諾塔等等,這些例子對於剛剛涉及C/C++語言編程的人來說是學習編程很好的例子。《Essential C++》只能是前兩本書看透以後,作為學習C++特性的一個過渡性的書籍。讓讀者真正領略到什麼是C++的編程、和C編程的不同點在哪裡。
透明:我發現一個很有趣的現象:初學者往往喜歡問「哪本書比較好」,這讓我很是不解。這有點像一個剛學打籃球的人問「王治郅和科比誰比較厲害」。當然科比更厲害一些。但如果你是想學打籃球,這兩個人都非常非常有資格教你,你跟誰學都能學得很強——關鍵不是在於你選哪個老師,而是在於你自己用多少功夫去學。
透明:回到原來話題。學會了C++的語法,能看懂C++代碼之後,必須有些書來指導進階(或者叫指點迷津)。我覺得《設計模式》很好,能夠讓讀者看到一些精妙的用法。不過正如我經常說的,模式帶來的麻煩和好處一樣多,甚至麻煩還要更多。而且,C++本身的問題使得在C++中使用GoF模式愈加麻煩。
夢魘:《Design Patterns》這本書絕對是不可以沒有的,而且中英文版都不可少。最初我看中文版,說實話看不懂,但是也不覺得人家翻譯得不好,所以就想,大概是原文就很難懂,加上自己水平有限。於是總是想著再找幾本patterns的書來看。後來找到幾本書,口碑還不錯,不過水平高下,一比就出來了,還是那本《Design Patterns》最經典,最耐看。英文版出來之後,兩個版本對照看,明白多了。現在覺得,其實就設計模式來講,把這本看明白了就很不錯了,不用再花費很多心思找其他的書。我現在的包里始終夾著這本書,隨身攜帶,有備無患。
至於說設計模式的副作用,和可能帶來的弊端,我的體會也挺多。不過是這樣,我們想一想,究竟什麼情況下設計模式可以用得很好呢?一種是有經驗豐富的人引導,比如要是Robert Martin帶隊,你在某個地方用錯了設計模式,他就會指出來,說這里不對,將來會產生什麼樣的弊端。對於他來說,豐富的實踐經驗足以支持他進行「預測型」設計。但是大部分人沒這個能力,因此我們只好走第二條路和第三條路,就是「試探型」設計和「重構型」設計。遇到一個問題,你覺得用某種模式挺合適的,就大膽地用了,成功是積累經驗,發現不好,出了問題了,只好改回來,那也是積累教訓。這叫做「試探型」。至於重構,應該算是最有組織、成功率最高的工程化方法。先把問題「quick and dirty」地解決了,所有的暗礁都暴露出來,然後再根據實際情況採用合適的模式優化設計。現在XP和UP都高度重視refactory,UP在Elaboration和Construction階段都鼓勵抽出專門的iterations進行重構。所以說如果組織快速的軟體開發,當然比較傾向於這條路——打成功率嘛。
透明:講到重構,我順便說說《Refactoring》這本書的影響。從工程本身的角度來說,你所謂的「重構型設計」是沒有什麼問題的。但中國的開發者(也包括我在內)往往比較沖動,比較容易相信銀彈的存在。曾經有那麼一段時間,我在Java中嘗試過了重構的方法之後,又拿到C++中去嘗試。結果發現,在Java中速度非常快的重構過程,到C++中就被減慢了。究其原因,就是因為C++和Java的約束條件不同。拿著Java中成功的案例直接套C++,不失敗才怪。
所以,我必須說:《Refactoring》這本書很有價值。但對於C++程序員來說,它的價值是讓你思考,思考這種方法的可行性。如果一個C++程序員沒有打算遷移到Java,那麼我必須告訴他:《Refactoring》這本書不是讓你照著它用的,甚至不是讓你去相信它的。對於C++程序員,《Refactoring》全書可以放心相信的只有第13章,其他的部分,都必須非常謹慎地對待。
夢魘:我還要就「試探型」的方法多說兩句,我覺得對於個人發展來講,「試探」也是必不可少的,撞牆不可怕,高水平的人不都是撞出來的嗎?你失敗了一次,就知道這個模式有什麼潛在的問題,下次再用,就會多看幾步,像下棋似的。撞的多了,路數就出來了。
我不知道你們是否有這個感覺:用錯了模式,吃了虧,再回過頭去翻翻《Design Patterns》,看到人家早就指出來這個問題,不過就是那麼幾句話,原來看上去乾巴巴的,現在覺得句句都講到心坎上,GoF的形象馬上就高大起來,還帶著光環,感覺是既興奮又懊悔。
透明:現在回頭來看,我更欣賞myan推薦給我的《Designing Object-Oriented C++ Applications Using Booch Method》。這本書能夠幫助C++程序員理清思路培養習慣,可惜國內沒有引進。相比後來商業味濃厚的UML系列書籍,我覺得這本書對於面向對象的闡釋精闢獨到,至今未有能出其右者。
夢魘:剛才我們兩人都說到Robert Martin,他可是我的榜樣。那本1995年的《Designing Object Oriented C++ Application》,我覺得是每一個C++軟體工程師都應該反復研讀的書。可惜不僅國內沒有引進,在國外的名氣也不大。如果你覺得面向對象的那些道理你好像都明白,可就是一遇到實際問題就使不上勁,那這本書就是你的最佳導師。
提到理清思路,還有一本書不得不提,就是Andrew Koenig的《Ruminations On C++》。每個人都應該問自己,我學了這么多年的C++,究竟什麼是C++最基本的設計理念?遇到問題我第一個直覺是什麼?第一個試探型的解決方案應該具有那些特點?如果你不能給出明確的答案,就應該認真地去讀這本書,讀完了你就有了「主心骨」。
透明:插一句話,談談「推薦書」的問題。入門書基本上是放之四海而皆準的,所以推薦的意義也不大。而入門後的發展方向,每個人不同,這個時候就需要「高人」的指點。舉個例子:我學C++的時候,myan還不認識我,所以也沒有給我推薦書,我還是學過來了,所以即使你當時向我推薦了《Essential C++》或者《C++ Primer》,我也不會太感謝你;但在我認真研究OO的時候,你推薦Robert Martin那本書給我,對我幫助就特別大,而且我從別的地方也很難找到類似的推薦,所以我就很感謝你。
一個程序員,必須有framework的意識,要學會用framework,還要主動去分析framework(在這方面,《Design Patterns》能有一定的幫助)。但是,真正高質量、成氣候的framework的書恐怕也就只有針對MFC的。從這個角度來說,MFC縱有千般不是,C++程序員都非常有必要先去用它、熟悉它、研究它,甚至藉助《深入淺出MFC》這樣的書來剖析它。不然,很難有framework的意識和感覺。
當然,另一個framework也很好,那就是STL。不管用不用MFC、STL,對這兩個東西的掌握和理解都是極有幫助的。最近我又在看《深入淺出MFC》,雖然已經不用MFC編程了,但幫助是一定有的。
夢魘:MFC和STL方面,我還是比較推崇侯先生的兩本書《深入淺出MFC》和《STL源碼解析》。
《深入淺出MFC》這本書,名氣自然是大得不得了,不過也有不少人批評。其實書也沒有十全十美的,批評當然是少不了的,不過有的時候我看到有人評論這本書,把它跟Inside VC相比,真的是牛頭不對馬嘴。
你剛才其實說得很對,程序員應該有一點framework意識。而這本《深入淺出MFC》與其說是在講MFC編程,不如說通篇是在拿MFC為例分析Application Framework的架構和脈絡。所以無論你對於MFC本身是什麼態度,這本書對每一個C++程序員都有很大的益處。
透明:是的。《VC技術內幕》會告訴你「DYNAMIC_CREATE這個宏怎麼用」,《深入淺出MFC》則告訴你「DYNAMIC_CREATE這個宏是怎麼實現的」。所以,如果你只需要在VC下寫一些小應用程序,《深入淺出MFC》的價值並不太大;但是,如果你需要設計一個稍微大一點的東西(不一定是framework),MFC的設計思想就會有所幫助。
夢魘:另外,我覺得對於MFC也應該有一個公允的評價。過去是吹捧得天上有地下無,書店裡鋪天蓋地都是MFC的書,搞得大家只知有MFC,不知有C++,甚至直到現在還有人問:「我是學MFC呢,還是學C++?VC++是不是比C++更高級的語言?」MFC成了一尊神像,阻礙了人們的視線。所以得把它從神壇上拉下來。這就是過去一兩年有很多人,包括我在內批評MFC的一個目的。可是現在大家視野開闊了,.NET也出來了,MFC不再是神像了,少數人就開始以貶損MFC為樂了。我覺得這種態度是不對的。
什麼叫好的框架?我覺得在十幾年的時間能夠象MFC這樣保持穩定並且不斷進步的框架就是好的框架。可能我們在一些具體的設計問題上有不同看法,覺得「這個地方這么設計不是更漂亮嗎?」很多時候是的,但是這不重要,重要的是MFC成熟穩定、有十幾年的成功經驗,這是最了不起的東西。
另外一點,MFC中間包括著學習Win32 API編程的最佳資料。這是除了其framework方面之外的另一個亮點。我現在使用Win32 API開發,但是經常參考MFC的源代碼,收獲很大。
透明:STL方面,我對於剖析它的源代碼興趣並不大,畢竟裡面源代碼多是演算法問題。所以,《STL源碼剖析》我也只是隨便翻翻就束之高閣了。我覺得這本書用來做計算機系的數據結構和演算法教材不錯,不知道有沒有老師樂意這樣做。
對於STL,我的態度一向都是「應用至上」。不過,我一直認為SGI STL本身就是一本精彩的書,一本數據結構和演算法的經典參考書,同時也是泛型技術的參考書。想知道一個演算法是如何實現的,看看STL源代碼就行;想知道如何使用type traits,STL源代碼裡面也有例子。看別人寫的書,總覺得隔著一層紗,有點撓不到癢處的感覺。SGI STL的代碼寫得非常漂亮,一個C++程序員如果不看看這本書,實在是可惜。
夢魘:至於STL,除了《STL源碼解析》之外,我舉賢不避親,強烈推薦侯先生與我合譯的那本《The C++ Standard Library》。這本書質量之高是無需懷疑的。我現在手邊常備此書,隨時查閱,對我幫助很大。
透明:C++和Java相比,最大的優勢就是它沒有一個專門的公司來管它,最大的弱點也是它沒有一個專門的公司來管它。Java程序員在學會簡單的語法之後,立刻進入SUN提供的framework,一邊用這個現成的framework做實際開發,一邊在開發過程中繼續學習Java一些幽深的特性。而這個時候,C++程序員恐怕還在問「VC和BCB哪個好」呢。這無疑是浪費時間。
夢魘:剛才你說Java和C++的優劣,這個話題已經成了我們這個年代永不消失的聲波了。我也不想再談這個。不過有一點我得說清楚:現在我們很多用C++的人吃了不少苦頭,探過脖子去看看Java,覺得它真是太可愛了,這種印象是不準確的。另外,Java也不簡單,而且會越來越龐大復雜。在很多場合,Java還不具有競爭力。至於將來如何,我看有些Java愛好者也過分樂觀了,似乎計算機科學界幾十年解決不了的問題都可以借著Java的東風解決掉,恐怕沒那麼容易。
透明:那當然。我再次強調:No Silver Bullet。讀書很重要,但古人說「行萬里路,讀萬卷書」,還是把「行路」放在「讀書」前面。尤其對於技術書籍,如果它不能幫我解決問題、不能給我帶來非常實際的利益,那麼我是不會去讀它的。惡魔說得對,我們這個社會很快餐,我們這個行業尤其很快餐,我們也只能努力適應它。
⑷ 適合初學者的c++視頻教程
王桂林《這可能是你見過「最牛逼」的C++課程》(高清視頻)網路網盤
鏈接: https://pan..com/s/13EipzVPw-wi1SB60OwzqEw
若資源有問題歡迎追問~
⑸ 跪求一份完整的嵌入式Linux方面的C項目實例
怎樣的人適合學習嵌入式?
學習嵌入式需要有一定的基礎,這些基礎大概包括下面兩點:
學過c語言,匯編;
對微控制器有一定了解。
一般理工類(計算機,自動化,電子類專業)的學生大三學比較合適。因為到了大三,一般學過了c語言及匯編,歲敏雖然大部分學生沒有獨立寫過一個程序,但至少上過這門課,自己也看過相關知識點;而且上過8051等微控制器原理的課程,也看過類似的教課書。
具備以上基礎的人,也不是誰都可以學。因為嵌入式學習門檻比較高,難度比較大,不但要有一定的毅力,而且要觸類旁通,如果太死板也很難學會。
概括的說學習嵌入式還必備下列性格:
熱愛研發!
切忌浮躁!
執著,頑強,自信!
舉一反三!
如果你符合以上條件,完全可以經過努力把嵌入式學好,我了解山渣到的在華清遠見學習的一個同學,之前基本上什麼基礎都沒有,寫一個「hello world」程序都為難,編譯了幾次才通過,但是經過四個月的努力,在華清遠見專業老師和同學們的熱心幫助下,從一個完全的菜鳥變成了入門級別的linux工程師了,找到了一份做應用開發的工作,工資大概有四千吧,還算不錯。
LZ要自學的話,可以多到華清遠見的網站上看看他們的課程設置,就知道自己該學些什乎唯枝么,還有很多學習資料和視頻可以下載,另外華清遠見出版的40多本嵌入式專業暢銷書,外面各大書店和圖書館都有,你都可以去翻翻看看。
祝你早日學有所成!
請參考,希望能幫到你。
⑹ C語言開發入門及項目實戰的目錄
第1篇 入門篇
第1章 初識C語言
( 自學視頻、源程序:
配套資源mr1) 2
1.1 編程語言的發展 3
1.1.1 機器語言 3
1.1.2 匯編語言 3
1.1.3 高級語言 4
1.2 C語言的歷史 5
1.2.1 C語言的產生 5
1.2.2 C程序的特點 6
1.2.3 C語言的發展趨勢 6
1.2.4 C語言的應用領域 7
1.2.5 如何學好C語言 7
1.3 本章小結 8
1.4 技能專項測試 8
1.5 實戰模擬 10
第2章 一個簡單的C語言程序
( 自學視頻、源程序:
配套資源mr2) 11
2.1 一個簡單的例子 12
上機演練 15
2.2 認識C語言程序 16
2.2.1 認識C語言程序的開發
環境 16
上機演練 23
2.2.2 認識標識符 23
2.2.3 認識關鍵字 25
2.2.4 認識注釋 26
2.2.5 認識變數 27
2.3 編譯錯誤信息 27
2.3.1 嚴重錯誤信息及分析 27
2.3.2 一般錯誤信息及分析 27
2.3.3 警告信息及分析 34
2.4 提高程序的可讀性 35
2.5 本章小結 36
2.6 技能專項測試 36
2.7 實戰模擬 38
第3章 演算法入門
( 自學視頻、源程序:
配套資源mr3) 39
3.1 演算法 40
3.1.1 什麼是演算法 40
3.1.2 演算法的特性 40
3.1.3 演算法的好壞 41
3.2 演算法的描述 42
3.2.1 自然語言 42
3.2.2 流程圖 42
3.2.3 3種基本結構 43
3.2.4 N-S流程圖 46
3.2.5 偽代碼 50
3.3 本章小結 50
3.4 技能專項測試 51
3.5 實戰模擬 52
第4章 常用數據類型
( 自學視頻、源程序:
配套資源mr4) 53
4.1 數據類型 54
4.1.1 什麼是數據類型 54
4.1.2 數據類型的分類 54
4.2 常量 55
4.2.1 整型常量 55
4.2.2 實型常量 57
4.2.3 字元型常量 58
4.2.4 符號常量 64
上機演練 65
4.3 變數 66
4.3.1 整型變數 66
4.3.2 實型變數 69
4.3.3 字元型變數 72
上機演練 74
4.4 變數的存儲類別 74
4.4.1 動態存儲與靜態存儲 74
4.4.2 auto變數 75
4.4.3 static變數 76
4.4.4 register變數 78
4.4.5 extern變數 79
4.5 混合運算 79
4.6 本章小結 81
4.7 技能專項測試 81
4.8 實戰模擬 83
第5章 運算符與表達式
( 自學視頻、源程序:
配套資源mr5) 84
5.1 表達式 85
5.2 賦值運算符與賦值表達式 87
5.2.1 變數賦初值 87
5.2.2 自動類型轉換 88
5.2.3 強制類型轉換 89
5.3 算術運算符與表達式 90
5.3.1 算術運算符 91
5.3.2 算術表達式 91
5.3.3 優先順序與結合性 92
5.3.4 自增自減運算符 94
上機演練 96
5.4 關系運算符與表達式 96
5.4.1 關系運算符 96
5.4.2 關系表達式 97
5.4.3 優先順序與結合性 97
5.5 邏輯運算符與表達式 99
5.5.1 邏輯運算符 99
5.5.2 邏輯表達式 99
5.5.3 優先順序與結合性 101
上機演練 101
5.6 位邏輯運算符與表達式 102
5.6.1 位邏輯運算符 102
5.6.2 位邏輯表達式 102
5.7 逗號運算符與表達式 103
5.8 條件運算符與表達式 104
5.9 復合賦值運算符 105
5.10 本章小結 106
5.11 技能專項測試 107
5.12 實戰模擬 109
第6章 數據輸入/輸出函數
( 自學視頻、源程序:
配套資源mr6) 110
6.1 語句 111
6.1.1 表達式語句 111
6.1.2 函數調用語句 111
6.1.3 空語句 112
6.1.4 控制語句 113
6.1.5 復合語句 113
6.2 字元數據輸入/輸出 114
6.2.1 字元數據輸出 114
6.2.2 字元數據輸入 115
6.3 字元串輸入/輸出 117
6.3.1 字元串輸出函數 117
6.3.2 字元串輸入函數 118
6.4 格式輸出函數 119
6.5 格式輸入函數 123
6.6 順序程序設計應用 126
上機演練 128
6.7 本章小結 128
6.8 技能專項測試 129
6.9 實戰模擬 131
第7章 選擇及分支結構程序設計
( 自學視頻、源程序:
配套資源mr7) 132
7.1 if語句 133
7.2 if語句的基本形式 133
7.2.1 if語句形式 133
7.2.2 if…else語句形式 136
7.2.3 else if語句形式 139
上機演練 142
7.3 if的嵌套形式 142
7.4 switch語句 145
7.4.1 switch語句的基本形式 145
7.4.2 多路開關模式的switch
語句 149
7.5 if…else語句和switch語句的
區別 151
7.6 選擇結構程序應用 153
7.7 本章小結 154
7.8 技能專項測試 155
7.9 實戰模擬 158
第8章 循環結構
( 自學視頻、源程序:
配套資源mr8) 159
8.1 循環語句 160
8.2 while型循環 160
8.2.1 while語句的一般形式 161
8.2.2 while語句的死循環 164
8.2.3 while語句的空循環體 165
8.2.4 while循環語句的常見
錯誤 165
上機演練 166
8.3 do…while型循環 167
8.4 for型循環 169
8.4.1 for循環語句的一般形式 169
8.4.2 靈活多變的for循環語句 172
8.4.3 應用for語句中的逗號 174
上機演練 175
8.5 比較3種循環 176
8.6 運用循環嵌套 176
8.6.1 各種結構的循環嵌套 176
8.6.2 循環嵌套實例 178
上機演練 179
8.7 轉移語句 179
8.7.1 goto語句 180
8.7.2 break語句 182
8.7.3 continue語句 183
上機演練 183
8.7.4 區別3種跳轉語句 184
8.8 本章小結 184
8.9 技能專項測試 185
8.10 實戰模擬 188
第9章 數組
( 自學視頻、源程序:
配套資源mr9) 189
9.1 數組的概念 190
9.1.1 數組的分類 190
9.1.2 數組的維數 191
9.2 一維數組 191
9.2.1 一維數組的定義 191
9.2.2 一維數組的引用 193
9.2.3 一維數組的初始化 194
9.2.4 一維數組的應用 196
9.2.5 一維數組的注意事項 198
9.3 二維數組 198
9.3.1 二維數組的定義 199
9.3.2 二維數組的引用 200
9.3.3 二維數組的初始化 200
9.3.4 二維數組的應用 202
上機演練 203
9.4 多維數組 204
9.5 字元數組 204
9.5.1 字元數組的定義 204
9.5.2 字元數組的引用 204
9.5.3 字元數組的初始化 205
9.5.4 字元數組的結束標志 206
9.5.5 字元數組的輸出 207
9.5.6 字元數組的輸入 208
9.5.7 字元數組的應用 209
上機演練 210
9.6 字元串處理函數 210
9.6.1 字元串復制 211
9.6.2 字元串連接 212
9.6.3 字元串比較 213
9.6.4 字元串大小寫轉換 215
9.6.5 獲得字元串長度 216
9.7 熟練應用數組 217
9.7.1 實現字元匹配 217
9.7.2 反轉輸出字元串 218
9.8 本章小結 219
9.9 技能專項測試 219
9.10 實戰模擬 221
第10章 函數編程基礎
( 自學視頻、源程序:
配套資源mr10) 222
10.1 函數概述 223
10.2 函數的定義 225
10.2.1 函數定義的形式 225
10.2.2 定義與聲明 228
上機演練 229
10.3 了解返回語句 230
10.3.1 從函數返回 230
10.3.2 返回值 234
10.4 傳遞函數參數 236
10.4.1 形式參數與實際參數 236
10.4.2 數組做函數參數 238
10.4.3 了解main()函數的參數 242
10.5 調用函數 242
10.5.1 函數調用方式 243
10.5.2 嵌套調用 245
10.5.3 遞歸調用 247
上機演練 249
10.6 靈活應用函數 249
10.7 本章小結 255
10.8 技能專項測試 256
10.9 實戰模擬 258
第11章 指針解析
( 自學視頻、源程序:
配套資源mr11) 259
11.1 指針概述 260
11.1.1 地址與指針 260
11.1.2 解讀變數與指針 261
11.1.3 使用指針變數 261
11.1.4 指針自加自減運算 265
上機演練 266
11.2 數組與指針 266
11.2.1 一維數組與指針 266
11.2.2 二維數組與指針 271
11.2.3 字元串與指針 273
11.2.4 字元串數組 274
上機演練 276
11.3 指向指針的指針 276
上機演練 278
11.4 函數參數的指針變數 278
上機演練 286
11.5 返回指針值的函數 286
11.6 指針數組作main()函數的
參數 288
11.7 本章小結 289
11.8 技能專項測試 289
11.9 實戰模擬 292
第2篇 提高篇
第12章 常用數據結構
( 自學視頻、源程序:
配套資源mr12) 294
12.1 結構體 295
12.1.1 結構體類型的概念 295
12.1.2 結構體變數的定義 296
12.1.3 結構體變數的引用 298
12.1.4 結構體類型的初始化 300
12.2 結構體數組 301
12.2.1 定義結構體數組 301
12.2.2 初始化結構體數組 302
上機演練 304
12.3 結構體指針 304
12.3.1 指向結構體變數的指針 304
12.3.2 指向結構體數組的指針 307
12.3.3 結構體作函數參數 308
12.4 包含結構的結構 311
12.5 鏈表 312
12.5.1 鏈表概述 312
12.5.2 創建動態鏈表 313
12.5.3 輸出鏈表 315
12.6 鏈表相關操作 318
12.6.1 鏈表的插入操作 318
12.6.2 鏈表的刪除操作 319
12.7 共用體 322
12.7.1 共用體的概念 323
12.7.2 共用體變數的引用 323
12.7.3 共用體變數的初始化 324
12.7.4 共用體類型的數據特點 325
上機演練 325
12.8 枚舉類型 326
12.9 本章小結 327
12.10 技能專項測試 327
12.11 實戰模擬 329
第13章 位運算
( 自學視頻、源程序:
配套資源mr13) 330
13.1 位與位元組 331
13.2 位運算操作符 331
13.2.1 「與」運算符 332
13.2.2 「或」運算符 333
13.2.3 「取反」運算符 335
13.2.4 「異或」運算符 336
13.2.5 「左移」運算符 338
13.2.6 「右移」運算符 339
13.2.7 位運算復合賦值運算符 340
13.2.8 長度不同的數據進行位
運算 341
上機演練 341
13.3 循環移位 341
上機演練 343
13.4 位段 343
13.4.1 位段的概念與定義 343
13.4.2 位段相關說明 345
13.5 本章小結 346
13.6 技能專項測試 346
13.7 實戰模擬 348
第14章 存儲管理
( 自學視頻、源程序:
配套資源mr14) 349
14.1 內存組織方式 350
14.1.1 內存組織方式概述 350
14.1.2 堆與棧 350
14.2 動態管理 352
14.2.1 malloc()函數 353
14.2.2 calloc()函數 353
14.2.3 realloc()函數 354
14.2.4 free()函數 355
上機演練 356
14.3 內存丟失 356
14.4 本章小結 357
14.5 技能專項測試 357
14.6 實戰模擬 359
第15章 預處理和函數類型
( 自學視頻、源程序:
配套資源mr15) 360
15.1 宏定義 361
15.1.1 不帶參數的宏定義 361
15.1.2 帶參數的宏定義 362
上機演練 363
15.2 #include指令 364
15.3 條件編譯 365
15.3.1 #if命令、#else命令和#elif
命令 366
15.3.2 #ifdef及#ifndef命令 368
15.3.3 #undef命令 369
15.3.4 #line命令 369
15.3.5 #pragma命令 370
15.4 內部函數和外部函數 371
15.4.1 內部函數 371
15.4.2 外部函數 372
15.5 本章小結 373
15.6 技能專項測試 373
15.7 實戰模擬 376
第16章 文件的讀寫操作
( 自學視頻、源程序:
配套資源mr16) 377
16.1 文件概述 378
16.2 文件基本操作 379
16.2.1 文件指針 379
16.2.2 文件的打開 380
16.2.3 文件的關閉 382
16.3 讀寫文件 382
16.3.1 寫字元函數——fputc()
函數 382
16.3.2 讀字元函數——fgetc()
函數 383
16.3.3 寫字元串函數——fputs()
函數 384
16.3.4 讀字元串函數——fgets()
函數 385
16.3.5 格式化寫入函數——fprintf()
函數 387
16.3.6 格式化讀取函數——fscanf()
函數 388
16.3.7 數據塊讀寫函數——fread()
函數和fwrite()函數 389
上機演練 391
16.4 定位文件 392
16.4.1 隨機讀寫操作——fseek()
函數 392
16.4.2 返回位置指針——rewind()
函數 394
16.4.3 得到文件位置——ftell()
函數 395
16.5 本章小結 397
16.6 技能專項測試 397
16.7 實戰模擬 399
第17章 圖形圖像處理
( 自學視頻、源程序:
配套資源mr17) 400
17.1 字元屏幕 401
17.1.1 定義文本窗口 401
17.1.2 顏色設置 401
17.1.3 文本的輸入和輸出 402
17.1.4 屏幕操作函數 403
上機演練 405
17.2 圖形顯示 406
17.2.1 圖形模式初始化 406
17.2.2 屏幕顏色設置 408
17.2.3 基本圖形函數 410
17.2.4 封閉圖形的填充 417
上機演練 419
17.3 圖形屏幕 419
17.4 圖形模式下文本輸出 421
17.4.1 文本輸出函數 421
17.4.2 文本屬性設置 422
上機演練 424
17.5 本章小結 424
17.6 技能專項測試 424
17.7 實戰模擬 426
第3篇 應用篇
第18章 圖書管理系統
( 自學視頻、源程序:
配套資源mr18) 428
18.1 概述 429
18.1.1 需求分析 429
18.1.2 開發工具選擇 429
18.2 系統設計 429
18.2.1 系統目標 429
18.2.2 系統功能結構 429
18.2.3 系統預覽 429
18.2.4 開發及運行環境 430
18.3 資料庫設計 431
18.3.1 安裝MySQL資料庫 431
18.3.2 啟動MySQL資料庫 434
18.3.3 創建資料庫 435
18.3.4 數據表結構 436
18.4 C語言開發資料庫程序的
流程 436
18.5 C語言操作MySQL資料庫 438
18.5.1 MySQL常用資料庫操作
函數 438
18.5.2 連接MySQL數據 440
18.5.3 查詢圖書表記錄 440
18.5.4 插入圖書表記錄 442
18.5.5 修改圖書表記錄 443
18.5.6 刪除圖書表記錄 444
18.6 文件引用 445
18.7 變數和函數定義 446
18.8 主要功能模塊設計 446
18.8.1 顯示主菜單信息 446
18.8.2 顯示所有圖書信息 448
18.8.3 添加圖書信息 450
18.8.4 修改圖書信息 454
18.8.5 刪除圖書信息 459
18.8.6 查詢圖書信息 463
18.9 本章小結 464
⑺ C語言開發入門及項目實戰小測do循環與指針
從題中代碼可以看出,s指針指數含向"ABC"的首地址,*s的意思是取s首地址的值,s++是指針後移,A的ascii值是65, B的ascii值是66, C的ascii值是67,*s%10這里的%是求余數的意思,所以循環輸出的結果為65%10=5, 66%10=6, 67%10=7
字元串ABC末尾在保存時默認有納櫻一個'\0'表示字元串的結束,當取到'\0'時,*s為假,跳出循薯茄笑環
⑻ 51單片機及其C語言程序開發實例的介紹
作者:戴仙金出版社:清華大學出版社本書首先簡單介紹了51系列單片機的基礎知識,然後從工程應用的角度出發,詳細地介紹了51系列單片機常用的電路模塊,主要包括鍵盤、LcD顯示、A,D轉換、D/A轉換、I。c匯流排應用、語音、實時時鍾、紅外、usB、步進電機、數字鎖相環、串口通信、DDs等,同時列舉了4個典型的實際工程,包括語音存儲與回放系統、數控直流恆流源、簡易數字邏輯分析儀、智能電動小車等,目的在於使讀者能夠迅速地掌握51系列單片機的開發與實現。本書深入淺出,力求既能使單片機的初學者迅速入門,又能使中高級開發人員在原來的基礎上進一步提高實際項目開發能力。
⑼ c語言視頻教程哪個好
1、初學者學習計算機語言要會「讀程序」,要對小型的應用型、游戲型程序感興趣,並模仿去加深對C語言程序設計的理解和操作,不斷地寫程序、調試程序能得到編寫程序的經驗,加深對程序的理解.。
2、一定要多上機練習,通過程式了解相關知識,幾經反復方得正果。
3、不要把學習C語言當成一種任務,更不要把它看成很難完成的任務,要充滿自信,智力正常的人都能學好C語言。
4、如果一個程式一時無法弄清楚最後暫時放在一邊,過一段時間可能會從其他的程式中悟出道理。
5、多動手,所有結論最好都上機驗證。
了解大綱,臨陣不亂,善於歸納,強化記憶,重視實踐,善於調試,多做練習,查漏補缺。C語言學習視頻教程可以在ios開發培訓機構官網或論壇找,都會有C語言學習相關視頻教程。
⑽ 清華大學出版社《c語言從入門到精通實例版》 和《 c語言從入門到精通》 內容上有什麼區別
實例版注重從實例中總結編程經驗,後者則強調編程原理的理解
《C語言從入門到精通》以零基礎講解為宗旨,用實例引導讀者深入學習,採取「基礎知識→核心技術→趣味題解→項目實戰」的講解模式,深入淺出地講解C語言的各項技術及實戰技能。《C語言從入門到精通》第1篇【基礎知識】主要講解步入C的世界、常量與變數、數據類型、運算符和表達式、程序控制結構和語句、輸入和輸出、數組與字元串、演算法與流程圖等;第2篇【核心技術】主要講解C語言中的函數、函數中的變數、指針、指針進階、文件、編譯與預處理指令、庫函數、位運算、結構體和聯合體、數據結構等;第3篇【趣味題解】主要講解哥德巴赫猜想、猴子選大王游戲、迷宮求解、背包問題求解、火車車廂重排、哈夫曼編碼的實現、8皇後問題的實現、商人過河游戲、K階斐波那契序列的實現、最短路徑的實現等經典數據結構問題的解決;第4篇【項目實戰】主要講解實戰前的項目規劃以及5個項目的實戰開發,包括通訊錄、圖書管理系統、簡易網路通信系統、學生成績管理系統、酒店管理系統等;第5篇【王牌資源】在DVD光碟中贈送了豐富的資源,諸如C語言標准庫函數查詢手冊、C語言常用查詢手冊、C源碼大放送、《C語言從入門到精通》【練一練】答案、C程序員職業規劃、全國計算機等級考試二級C考試大綱及應試技巧、C程序員面試技巧、C常見面試題、C常見錯誤及解決方案、C開發經驗及技巧大匯總等。
另外光碟中還包含37小時的全程同步視頻教學錄像及7小時的指導錄像(包括《C語言從入門到精通)》各章上機指導錄像及所有範例運行指導錄像)。
《C語言從入門到精通》適合任何想學習C語言的人員,無論您是否從事計算機相關行業、是否接觸過C語言,通過學習,均可快速掌握C語言的開發方法和技巧。《C語言從入門到精通(實例版)》從初學者的角度出發,通過通俗易懂的語言,豐富多彩的實例,詳細介紹了使用Visual C++ 6.0(部分使用Turbo C)進行C語言應用程序開發應該掌握的各方面技術。全書共分14章,包括初識C語言、C語言基礎、順序與選擇結構程序設計、循環控制、數組、函數、指針、結構體與共用體、演算法、位運算、預處理、文件、圖形圖像、商品信息管理系統。書中所有知識都結合具體實例進行介紹,涉及的程序代碼給出了詳細的注釋,可以使讀者輕松領會C語言應用程序開發的精髓,快速提高開發技能。另外,本書除了紙質內容之外,配書光碟中還給出了海量開發資源庫,主要內容如下:
語音視頻講解:總時長17小時,共193段 實例資源庫:881個實例及源碼詳細分析
模塊資源庫:15個經典模塊開發過程完整展現 項目案例資源庫:15個企業項目開發過程完整展現
測試題庫系統:616道能力測試題目 面試資源庫:371個企業面試真題
PPT電子教案