① c語言學習
首先是純C的教材
第一本:H.M.Deitel和P.J.Deitel的《C HOW TO PROGRAM》(C程序設計教程)。
作者是父子,從事語言教材的編寫合計超過40年,本書被美國眾多高校選用為教材,既可入門也可翻閱,甚好。本FAQ作者認為如果你只打算看一本的話,那就選他好了。
第二本:Brian W.Kernighan和Dennis M.Ritchie 的《The C Programming Language 》(C程序設計語言)。
此書簡稱K&R,由C語言的創建者撰寫,是全球銷售最多的C語言教材,其品質不容置疑。不過不適合入門,適於在入門之後鞏固提高。實體書有原版和譯本購買,電子版英文較多。
第三本:譚浩強的《C程序設計》。
優點在於,面向中國學生,語言易於理解,而且全書篇幅小,看過的人多,容易找到人請教。但是各方面的概念不深入,淺嘗輒止,實際上還有些小錯誤,不是很嚴謹。因此適合第一次入門學習,例題做完基本就可以拋棄了。有實體書和電子版下載。同時配套有習題集和習題解答,適合自學。
第四本:王大剛先生的《C語言編程寶典》。
質量不錯,與老譚的書一樣非常適合中國學生,而且對於TC的圖形編程講解非常透徹。本人沒有發現實體書,可能只發布在網路上,在VCgood論壇有轉載:
http://www.vcgood.com/bbs/forum_posts.asp?TID=1560&PN=2
http://book.chinaz.com/C/C/index.html
第五本:無名作者的《C語言初學者入門講座》
VCgood論壇轉載,作者未知,質量同上一本。http://www.vcgood.com/bbs/forum_posts.asp?TID=1294&PN=4
第六本:Kenneth A.Reek 的《C和指針》
進階讀物,把指針一章演繹為一本書可見其技術精度。指針是C的靈魂,能領會本書中的理念,才能算是真正明白了C指針的奧妙,才算懂得了C。
第七本:Andrew Koenig 的 《C陷阱與缺陷》
進階讀物,在認真讀完上面的入門書之前,暫勿閱讀。本書暢銷14年歷久不衰,足證品質。
最後一本:ISO C89規范/C99規范
一切關於C語言的疑問,只有一件東西最權威,那就是ISO的規范。但這不是正式出版物,是類似法律文本的技術說明,而且只有英文版。新手閱讀,提防吐血而亡。
然後是C++的教材
C++比C復雜的多,所以教材也就紛繁蕪雜。既有綜合性入門性的,也有專項深入的,閱讀要循序漸進,以下分階段介紹(以下文字有部分引用自他人評介)。
首先是毫無基礎的時候,先要初步掌握語法並形成編程的概念
level 0:
H.M.Deitel和P.J.Deitel的《 C++ How to Program 》(C++大學教程)。
又是這對父子。有很多號稱C++入門的書,但經我的觀察,如果要選擇能推薦給毫無編程概念的新手用的書,這本算是佼佼者了。此父子的《C程序設計教程》我已推薦了。
仍然是K&R,Brian W.Kernighan和Dennis M.Ritchie 的《The C Programming Language》(C程序設計語言)。
盡管C++之父親口說,最好把C++看作一門新語言來學習,但我個人認為,一開始學習C至少有兩大好處。相比C++,C還是非常簡單的,易於掌握,避免你過早陷入C++的語法泥潭。同時,學C能讓你對計算機的底層運行有所認識,建立良好的概念。
錢能的《C++程序設計教程》
國內C++教材中較好的一本,作者是教師,總結多年教學實踐的經驗寫成的,比較適合國內學生。
PS:老譚也有一本C++教材,在此就不太推薦了,它完全是用C的思維來看C++。
當讀者有一定c/c++基礎
推薦的閱讀順序:
level 1
從Stanley B.lippman著 侯捷 譯的《essential c++》開始,短小精悍,可以對c++能進一步了解其特性。Stanley B.Lippman的職業是提供關於C++和面向對象的訓練、咨詢、設計和指導。他也是Bjarne Stroustrup領導的Bell實驗室Foundation項目的成員之一,負責C++程序設計環境中的對象模型部分。簡單說,他是C++的創建者之一。
以Stanley B.Lippman,Josee LaJoie,Barbara E.Moo的《c++ primer》作字典和課外讀物,因為太厚不可能一口氣看完,當然你也可以用它作為主力教材。Lippman說過了,Josee LaJoie是C++標准委員會原負責人,Barbara E.Moo 是獨立咨詢顧問,參與了第一個使用C++編寫的商業產品的開發,領導了公司中第一個C++編譯器項目。
C++之父Bjarne Stroustrup的《the c++ programming language》,簡稱BS的TCPL,全面而深入的書,缺點也是太厚。
這個階段 也可以延用前階段Detiel父子的教材。
level 2 這個階段就要養成好習慣
然後從Scott Meyers的《effective c++》開始轉職,這是聖經,請遵守10誡,要經常看,沒事就拿來翻翻
接著是 Herb Sutter的《exceptional c++》。此人是C++標准委員會的主席,主席說話,誰有異議。
順下來就是Scott Meyers的《more effective c++》和Herb Sutter的《more exceptional c++》,請熟讀並牢記各條款
level 3 這個階段 把C++的類搞透
Stanley B.lippman的《insied the c++ object model》(深度探索C++對象模型)看過後如一縷清風掃去一直以來你對語言的疑惑,你終於能明白compiler到底都背著你做了些什麼了,這本書要細細回味,比較難啃,最好反復看幾遍,加深印象。
看完上一本之後,這本Bjarne Stroustrup的《The design and evolution of c++》(C++的設計與演化)會重演一次當年C++他爹在設計整個語言過程中的歷程。
Stephen C. Dewhurst的《C++ Gotchas: Avoiding Common Problems in Coding and Design》(C++程序設計陷阱)會幫你在設計層面避免錯誤。
level 4 這個階段深入STL吧
Nicolai M.Josuttis的《the c++ standard library》(C++標准程序庫—自修教程與參考手冊) 是stl的字典,什麼都可以查得到。
Scott Meyers的《effective stl》,它和聖經一樣是你日常行為的規范。發現沒有,Scott Meyers先生一直在搞effective系列。
Matthew H. Austern的《generic programming and the stl》(泛型編程與STL)讓你從OO(面向對象)向GP(泛型編程)轉變。
光用不行,我們還有必要了解stl的工作原理,那麼侯捷的 《stl源碼剖析》會解決你所有的困惑。
level 5 徹底掌握模版泛型編程
對於c++無非是OO和GP,想進一步提升OO,Herb Sutter的《exeptional c++ style》是一本主席這么多年的經驗之談,是很長esp的。
一位stl高手是不能不去了解template的,《c++ template》是一本網路全書,足夠你看完後對於GP游刃有餘。
Andrei Alexandrescu的《modern c++ design》是太過聰明的人寫給明眼人看的。
level 6
這個時候,對於C++語法本身,你應該是已經到了隨心所欲的境界,你所要練習的大概就是大規模的C++程序的設計以及一些通用的高效庫的使用,以及為什麼要這樣做的理由。
所以,《C++ 輸入輸出流及本地化》《C++ Network Programming》《大規模C++程序設計》是你需要的。
同時,C++教材中的異類:Barbara E.Moo和Andrew Koenig的《Ruminations On C++》(C++ 沉思錄)是值得你一看的,他集中反映了C++的關鍵思想和編程技術,說明了C++是什麼樣的以及能夠做些什麼,不僅告訴你如何編程,還告訴你為什麼要這樣編程。本書曾出現在眾多的C++專家推薦書目中。
和C一樣,同樣有最後一本書
ISO+IEC+14882-1998 C++規范。這可不是寶典聖經,這就是C++的法律,一切疑問以此為准到此打住。不過,有個腳注,某些具體情況取決於編譯器實現。
接下來是Windows編程
至少在國內來說,Windows環境下的編程還是很有市場的。
第一本書:Charles Petzold 的 《Programming Windows》(Windows程序設計)。
如果說,在windows編程領域只能翻閱一本書的話,那就是他了。《Windows程序設計》由微軟出版社在1988年首次出版,後來被認為是這方面最好的導論性讀本。在1994年5月,Petzold作為僅有的七個人之一(並且是唯一的作家)被《Windows Magezine》和Microsoft公司授予Windows Pioneer獎,以表彰他對Microsoft Windows的成功做出的貢獻。這本書經典到這個程度,以至對於Windows程序員來說,「從Chares 的(Window程序設計)一書中尋找答案。」幾乎成了一句至理名言。
你可以在這個地方觀看到他的外觀,http://www.charlespetzold.com/pw5/,國內書店有售,電子版則需要仔細搜索。
第二本:Jeffrey Richter 的《》(Windows核心編程)和《Advanced Windows》(Windows 高級編程指南)
和上面這本書難分伯仲。這么說吧,你讀了之後就會後悔,後悔為什麼沒有早點讀他。建議先看高級,再看核心。
個人認為除非windows發生革命性的變化,否則看完這三本書,足以應付通常的Windows編程。
上面三本書介紹的是直接使用WindowsAPI實現應用,總的來說那是一種很基礎但很繁瑣的方式。Windows下有很多的編程庫可以使用,VC和BCB都自備了優良的庫。
在VC來說,存在版本的差異,如果是6.0版本,那麼你基本只有MFC這一種選擇,但對於2002以後的版本,包括新推出的2008,MFC、ATL、.net都不錯。
對於MFC。
要學會怎麼用,可以看一下這幾本:
微軟出版社授權的中文版系列書 由David J.Kruglinski,Scot Wingo,George Shepherd寫的《Programming Visual C++ 6.0 技術內幕(第5版)》,經典的「Visual C++技術內幕」的第5版。
清華大學出版社出版 楊永國 的《Visual C++ 6.0實用教程(第2版) 》,這本不是那麼經典,同類多得很,但好處是便宜,而且能夠買到,有些書已經買不到了。
如果想知道MFC的原理,侯俊傑先生的《深入淺出MFC 》(Dessecting MFC)就值得你仔細閱讀。
對於VC2002--2008中的.net,單獨講授的似乎目前還沒有像《Windows程序設計》那樣經典的書出現,畢竟.net出現的時間也不長。但把.net MFC ATL等綜合在一起講的,倒還是有一些。
由H.M.Deitel,P.J.Deitel,J.P.Liperi和C.H.Yaeger共同編寫的《Visual C++.NET:How To Program 》(Visual C++.NET大學教程)品質算是上乘。還記得Deitel這對父子作者么,在chinapub上可以看到父子倆合著的教材有47套之多,而且個個暢銷,我覺得他們儼然就是美國的譚浩強,只是水平高出不少。
George Shepherd,David Kruglinski 的 《Visual C++ .NET技術內幕(第6版)》,就是上面那本書的.net升級。
IVOR HORTON的《VISUAL C++ 2005入門經典》也可一看。
BCB在版本6以前用的是著名的VCL庫,BCBX另起爐灶,用的是wxWidgets庫。由於對BC,作者自己涉獵不多,所以這兩套庫的教材,請大家自行查找。
就像C++和C的規範文件一樣,Windows編程中,也有一件類似萬寶全書的神物,那就是Microsoft自己推出的MSDN。
MSDN是Microsoft Software Developer Network的簡稱。這是微軟的針對開發者的開發計劃。你可以在http://msdn.microsoft.com看到有關軟體開發的資料。在VisualStudio中包括MSDN Library的光碟,其中包括VisualStudio的幫助文件和許多與開發相關的技術文獻。MSDN Library每個季度更新一次,可以向微軟訂閱更新光碟,不過價格不便宜。
MSDN就是微軟的技術大全,所有微軟的軟體系統的開發的已公開資料,都在上面。如果在那裡也無法找到答案,那你只能想辦法咨詢微軟的內部工程師求得隱藏秘籍。不要妄想能夠完全閱讀它,3G容量的文檔(大部分是文本,不是圖片和視頻),實在太過巨大了。
② C語言初學者應該看什麼書籍
c programming language,現在應該是第二版,這是c語言創始人和另一個人合寫的,如果有能力最好看英文原版,網上中英文pdf都有,不過還是建議去購買正版
最好和課後答案一起買,兩本書都不厚,但絕對值得研究
實在不放心就買個譚浩強的書,這書和手冊沒什麼區別
所有的編程語言都建議看英文原版
③ C++語言是誰發明的
C語言是美國Dennis Ritchie在1972年設計發明的,C語言主體誕生於1973年,正式發行於1977年。是一門面向過程、抽象化的通用程序設計語言,廣泛應用於底層開發。
C語言就是分析出解決問題所需要的步驟 ,然後利用函數一步步的實現,使用的時候一個一個依次調用就可以。
一種以事物本身為中心的編程思想,是把構成問題的事物分解成各個對象,同時建立對象的目的不是為了完成某一個步驟,而是為了描述某個事物在整個解決問題的步驟中的行為。
(3)c語言創建人擴展閱讀
1、C語言經歷過幾個修訂版本,其中影響比較大的是1989年修訂的C89版與1999年修訂的C99版。C89版也是當代C語言通行的基礎版本。
2、C語言主要用於編寫操作系統內核、底層驅動程序、小型應用程序、資料庫等,藉助操作系統,C語言長期處於編程語言排行榜前幾位的位置。
④ C語言的創始人是誰
C語言的原型ALGOL 60語言。(也稱為A語言)
1963年,劍橋大學將ALGOL 60語言發展成為CPL(Combined Programming Language)語言。
1967年,劍橋大學的Matin Richards 對CPL語言進行了簡化,於是產生了BCPL語言。
1970年,美國貝爾實驗室的Ken Thompson將BCPL進行了修改,並為它起了一個有趣的名字「B語言」。意思是將CPL語言煮干,提煉出它的精華。並且他用B語言寫了第一個UNIX操作系統。
而在1973年,B語言也給人「煮」了一下,美國貝爾實驗室的D.M.RITCHIE在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。
為了使UNIX操作系統推廣,1977年Dennis M.Ritchie 發表了不依賴於具體機器系統的C語言編譯文本《可移植的C語言編譯程序》。即是著名的ANSI C。
1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《C語言程序》(The C Programming Language),從而使C語言成為當時世界上流行最廣泛的高級程序設計語言。
1988年,隨著微型計算機的日益普及, C語言出現了許多版本。由於沒有統一的標准,使得這些C語言之間出現了一些不一致的地方。為了改變這種情況,美國國家標准研究所(ANSI)為C語言制定了一套ANSI標准, 成為現行的C語言標准3.C語言的主要特點 。C語言發展迅速, 而且成為最受歡迎的語言之一, 主要因為它具有強大的功能。許多著名的系統軟體, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 語言編寫的。用C語言加上一些匯編語言子程序, 就更能顯示C語言的優勢了,象PC- DOS 、WORDSTAR等就是用這種方法編寫的。
參考資料: http://ke..com/view/1219.html?wtp=tt
⑤ 《C語言程序設計》)此書是C語言創始人之一Brian W. Kernighan和Dennis M.Ritchie編著 本人想學電腦編程
最好還是看視頻教學吧,速度會快不少。郝斌的一部視頻不錯
⑥ 設計一個通訊錄C語言程序中,怎樣設計將新建的聯系人保存起來
通訊錄直接寫入文件就好 ,這是練習程序吧,直接調用 fopen、fread、fwrite之類的函數,對文件操作就行了!
⑦ C語言用結構數組建立5人通訊錄,包括姓名地址,電話號且能根據輸入的名字查找對應電話
so easy!!
#include<stdio.h>
#include<string.h>
main()
{char student1[20];
struct student
{char name[20];
unsigned long int phone;
char add[100];
};
struct student stud[3]={{"1",1,"1"},{"2",2,"2"},{"3",3,"3"}};
printf("請輸入你要找的人:");
scanf("%s",student1);
for(int i=0;i<=4;i++)
{if(strcmp(student1,stud[i].name)==0)
{ printf("姓名:%s\n電話:%d\n地址:%s\n",stud[i].name,stud[i].phone,stud[i].add);
}
}
}
⑧ C語言的創始人是誰
在1972年,美國貝爾實驗室的D.M.Ritchie在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言