
能不能给我一篇C语言课程设计的心得体会
给C++初学者的50个忠告 1.把C++当成一门新的语言学习(和C没啥关系
真的。
); 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看; 4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言; 5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点; 6.会用Visual C++,并不说明你会C++; 7.学class并不难,template、STL、generic programming也不过如此——难的是长期坚持实践和不遗余力的博览群书; 8.如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的C++水平并没有和你通关的能力一起变高——其实可以时刻记住:学C++是为了编游戏的; 9.看Visual C++的书,是学不了C++语言的; 10.浮躁的人容易说:XX语言不行了,应该学YY;——是你自己不行了吧
11.浮躁的人容易问:我到底该学什么;——别问,学就对了; 12.浮躁的人容易问:XX有钱途吗;——建议你去抢银行; 13.浮躁的人容易说:我要中文版
我英文不行
——不行
学呀
14.浮躁的人容易问:XX和YY哪个好;——告诉你吧,都好——只要你学就行; 15.浮躁的人分两种:a)只观望而不学的人;b)只学而不坚持的人; 16.把时髦的技术挂在嘴边,还不如把过时的技术记在心里; 17.C++不仅仅是支持面向对象的程序设计语言; 18.学习编程最好的方法之一就是阅读源代码; 19.在任何时刻都不要认为自己手中的书已经足够了; 20.请阅读《The Standard C++ Bible》(中文版:标准C++宝典),掌握C++标准; 21.看得懂的书,请仔细看;看不懂的书,请硬着头皮看; 22.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍; 23.请看《Effective C++》和《More Effective C++》以及《Exceptional C++》; 24.不要停留在集成开发环境的摇篮上,要学会控制集成开发环境,还要学会用命令行方式处理程序; 25.和别人一起讨论有意义的C++知识点,而不是争吵XX行不行或者YY与ZZ哪个好; 26.请看《程序设计实践》,并严格的按照其要求去做; 27.不要因为C和C++中有一些语法和关键字看上去相同,就认为它们的意义和作用完全一样; 28.C++绝不是所谓的C的“扩充”——如果C++一开始就起名叫Z语言,你一定不会把C和Z语言联系得那么紧密; 29.请不要认为学过XX语言再改学C++会有什么问题——你只不过又在学一门全新的语言而已; 30.读完了《Inside The C++ Object Model》以后再来认定自己是不是已经学会了C++; 31.学习编程的秘诀是:编程,编程,再编程; 32.请留意下列书籍:《C++面向对象高效编程(C++ Effective Object-Oriented Software Construction)》《面向对象软件构造(Object-Oriented Software Construction)》《设计模式(Design Patterns)》《The Art of Computer Programming》; 33.记住:面向对象技术不只是C++专有的; 34.请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码; 35.把在书中看到的有意义的例子扩充; 36.请重视C++中的异常处理技术,并将其切实的运用到自己的程序中; 37.经常回顾自己以前写过的程序,并尝试重写,把自己学到的新知识运用进去; 38.不要漏掉书中任何一个练习题——请全部做完并记录下解题思路; 39.C++语言和C++的集成开发环境要同时学习和掌握; 40.既然决定了学C++,就请坚持学下去,因为学习程序设计语言的目的是掌握程序设计技术,而程序设计技术是跨语言的; 41.就让C++语言的各种平台和开发环境去激烈的竞争吧,我们要以学习C++语言本身为主; 42.当你写C++程序写到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和编写(参见43); 43.别心急,设计C++的class确实不容易;自己程序中的class和自己的class设计水平是在不断的编程实践中完善和发展的; 44.决不要因为程序“很小”就不遵循某些你不熟练的规则——好习惯是培养出来的,而不是一次记住的; 45.每学到一个C++难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清楚才说明你真的理解了; 46.记录下在和别人交流时发现的自己忽视或不理解的知识点; 47.请不断的对自己写的程序提出更高的要求,哪怕你的程序版本号会变成Version 100.XX; 48.保存好你写过的所有的程序——那是你最好的积累之一; 49.请不要做浮躁的人; 50.请热爱C++!建议你买本书,书比网上的电子版教程好的多,如计算机届超级权威教授 谭浩强 老先生写的《C语言程序设计(第三版)》,全国发行了700万册,可以说是学C语言的人必看的书,我们大学就用这本书,很适合自学,通俗易懂 建议你学习其它计算机知识时也看他的书,他出的书很多,涵盖面广,每一本都很经典 这里有他的教程word版下载 另外,机械工业出版社的 计算机丛书系列也相当经典,全是翻译国外经典教材,国外计算机发展早,水平比国内高很多,看这些教材事半功倍,推荐(美)Al Kelley Ira Pohl的《C语言教程第4版》 学习程序语言要持之以恒,不浮躁,祝你成功
\ \ Brian W.Kernighan, Dennis M.Ritchie,《C程序设计语言》 清华影印版、习题集;机械译文版(新版、老版):习题集 这是迄今为止在所有程序设计语言书籍中最广受尊敬的一部经典,是任何一名C程序员的必读之作。
因为出自C语言的设计者Dennis M.Ritchie和著名的计算机科学家Brian W.Kernighan之手,它被昵称为“K&R C”。
是它首先引入了“Hello World
”程序,这个程序几乎成了后来任何一本入门性程序设计语言书籍中的第一个例子。
如同C语言本身简洁紧凑而极具威力一样,这本书轻薄短小而极富张力。
通过简洁的描述和典型的示例,它全面、系统、准确地讲述了C语言的各个特性以及C程序设计的基法,内容涵盖基本概念、类型和表达式、控制流、函数与程序结构、指针与数组、结构、输入与输出、UNIX系统接口以及标准库等内容。
简洁清晰是这本书最大的特色。
这本小书可以教给你许多比它厚几倍的“大部头”的知识。
我认为那些动辄洋洋洒洒拼凑出好几百页乃至上千页的技术作者应该好好向K&R学一学。
对于中、高级程序员而言,如果希望迅速获得C语言的严肃知识而又不愿意多花费哪怕一丁点时间,这本书就是首选。
顺便说一句,这本书的索引制作非常出色,极具实用价值,这可能首先要归功于正文部分的简明扼要。
此外,尽管它看上去很像一本教程,但其实更是一本写给专业程序员的指南。
如果你不具备任何其他语言程序设计背景或基本的C语言知识,这本书也许并不适合用作你的C语言启蒙读物。
2. Perter Van Der LinDen,《C专家编程》 C专家编程 C语言是严肃的程序员语言,但这并不意味着C语言书籍必须板着面孔说教。
在这本被C程序员昵称为“鱼书”(封面上有一条“丑陋的”腔棘鱼)的著作中,作为SUN公司编译器和操作系统核心开发组成员之一,Peter淋漓尽致地展示了其深厚的技术沉淀、丰富的项目经验、高超的写作技巧以及招牌式的幽默。
在这部作品中,作者以流畅的文字、诙谐的笔法将逸闻典故、智慧和幽默自然地融入技术描述中,读来宛若一本小说,极富趣味。
本书讲述了C语言的历史、语言特性、声明、数组、指针、连接、运行时以及内存使用等知识,揭示了C语言中许多隐晦之处,尤其深入解析了声明、数组和指针、内存使用等方面的细节。
要想成为一名专家级C程序员,这些内容都是必须掌握的。
和其他满是抽象例子的C语言书籍不同,这本书充满了大量的来自真实世界的C程序设计实例,它们对C程序员具有很高的参照价值。
另外,每一章都以极富趣味的“轻松一下”收尾,而附录A“程序员工作面试的秘密”则是任何语言的程序员在应聘工作前增强自信的好材料。
我怀疑真正的C专家可能用不着看这本书 ——从内容到组织方式到行文风格都决定了这是一本轻松愉快的“从菜鸟到高手”的进阶读本,所以,它理应拥有更广泛的读者群。
初级程序员往往更需要热情的鼓励,在阅读这本书的过程中,你定会深深地被作者对编程的激情所感染。
世间并无完美。
我认为这本书的缺陷在于,和大多数平庸的C语言书籍一样,它画蛇添足地加入了一章关于C++的描述。
在今天看来,这个描述既不全面也有失公允。
不过,鉴于作者是在1994年从一名C程序员的角度去观察C++,这一点也就不足为奇了。
3. Samuel P. Harbison, Guy L. Steele,《C语言参考手册(第五版)》 影印版(机械工业出版社)、中文版(机械工业出版社) 在C语言参考手册类书籍里,Samuel P. Harbison 和Guy L. Steele合著的C: A Reference Manual是非常出色的一本。
这本手册的第五版新增了对C99标准的介绍,以便满足新时期C语言学习的需要。
全书共分为两大部分,第一部分专注于C语言特性,第二部分则全面讨论了C标准库。
本书涵盖C99、C89、传统的C、所有版本的C运行库以及编写与C++兼容的C代码等一切知识。
这本手册只是中等厚度,但它比“比它更厚”的其他参考手册更清晰地描述了C语言的现在和过去的方方面面。
整本手册技术细节描述精确,组织条理清楚,内容完备详尽而又简明扼要。
可以这么说,它在广度、深度和精度方面都是出类拔萃的。
对于中、高级C程序员而言,这本手册值得常备案头,它几乎肯定要比K&R的著作使用频率更高。
4. David Hanson,《C语言接口与实现:创建可重用软件的技术》,机械工业出版社 C语言接口与实现:创建可重用软件的技术 C语言能够历经三十多年而不衰,一个重要的原因在于它的适应能力。
在这“复用”、“面向对象”、“组件”、“异常处理”等先进机制漫天飞舞的年代,C语言仍然能够凭借它小而优雅的语言特性,在相当程度上满足现代软件体系架构提出的要求。
只不过,想要达到这个程度,必须要在C的应用功力上达到最高层次。
在嵌入式、系统软件以及对性能要求极高的系统开发中,开发人员必须达到这样的层次,熟练掌握C语言的高级特性,才能够同时满足效率和灵活性、复用性的要求。
可惜,虽然C语言技术图书汗牛充栋,但是关注这个峰顶之域的作品却是屈指可数。
David Hanson的C Interfaces and Implementations就是个中翘楚。
David Hanson是业内大名鼎鼎的自由编译器lcc的合作者。
在这个项目中,他负责提供高度可复用的基础架构。
在不断的实践中,他完全使用ANSI C形成了一整套可复用组件库。
这套组件库架构清晰,性能优异,而且提供了很多高级的特性,比如类Win32 SEH的异常处理机制、可移植的线程库、高性能的内存池、丰富的可复用数据结构组件。
David Hanson把他在创作这些组件的过程中所积累的心得以及对其源码的精致剖析原原本本地写在了这本书里。
这样的著作,当然堪称C语言领域里的铭心绝品。
难怪已故著名技术作家Richard Stevens对此书赞不绝口,他说:“这本书中的技术,对于大部分C程序员来说,已经遗忘得太久了。
”对于希望能在C语言应用上达到最高层次的核心程序员而言,这本书是难得的必读之作。
其他除了以上四本书以外,我还乐意推荐Andrew Koenig的著作《C陷阱和缺陷》(人民邮电出版社)和Deitel父子合著的C How to Program两本书。
C专家编程 Andrew Koenig是世界上屈指可数的C++专家,他的这本书可能是最薄的一本C语言经典。
它简明扼要地讲述了C程序设计中的陷阱和缺陷,包括词法陷阱、语法陷阱、语义陷阱、连接、库函数、预处理器以及可移植性缺陷等,最后一章还给出了关于如何减少程序错误的建议以及前面各章问题的参考答案。
尽管这个小册子成书于C89标准制定之前,然而,即使到了C99早已颁布的今天,书中提到的大多数陷阱和缺陷一如十五年前那样使我们警醒。
C程序设计教程 Deitel父子合著的C How to Program一直是非常好的C语言入门教程,我手头的中译本名为《C程序设计教程》(机械工业出版社出版,原书第二版)。
除了对技术的正规描述(辅以许多简明扼要的例子)外,每一章后面都带有小结、术语、常见的程序设计错误、良好的程序设计习惯、性能忠告、可移植性忠告、软件工程评述、自我测验练习及答案等。
整书内容清晰,组织良好,易于阅读和理解。
值得一提的是,有许多入门书读完一遍即可扔掉,而这一本是个例外。
结语以上这几本书很大程度上局限于描述C语言及标准库本身,如果希望学习更专业的、领域相关的C程序设计技术,你可以在选择阅读这几本书的基础上继续查阅专门书籍。
此外,在C语言书籍领域,水平不相上下的作品有很多,这几本只是根据我自身的阅读体验
讨论学习C语言算法的心得
关键是:存在 对比 客观 简化 实践存在:算法中存在什么,目的是什么,怎么实现的,必要的话可以了解一下何人发明的,因为经典算法的设计者本身都是著作等身的,由此你可以通过“存在”了解一个事实:算法不是孤立的,是新和旧之间的更替。
对比:对比类似和不同算法,同在哪里,不同在哪里,以及这些差异导致了什么结果,过程有什么差异,这个过程为什么会导致那个结果。
客观:不凭空臆测,算法本身有什么思想以及借用了什么数学思想实现不能扭曲,以及何种状态适合这样的算法。
简化:当你深刻了解算法的本质(通过推导、证明和实际运用和改进),就不可避免的要把不同算法有机的结合在一起,不是线性的也不是单纯的组合,而是从内涵和外延的角度站在不同的立场把算法划分成不同的层次,每个层次什么时候运用。
简化操作往往要运用一些更加直观的快速的方法:联想。
关于联想,通常,你需要在思考线性表的时候想到一串隔开的纸带,当细化到链表还是顺序表时,需要加以限制为是否可随机存取还是顺序存取。
算法本身都可以通过数据结构表现得很清晰,这时候运用算法的时候,就可以脱离实际的ADT载体。
分类讨论以及回溯通常要结合树去分析,就一目了然。
字符串处理以及跟优先级和记忆索引等问题通常要结合栈结构去设计算法。
路径问题结合图结构设计算法。
当然,要加深对C语言算法的设计能力,需要从最根源出发:实践。
有专门的机构提供了实践平台,检验你设计的算法是否高效。
可以去搜索ACM POJ ZOJ 等关键字,找到相关的算法在线竞赛网站,从最基本的题开始训练。
另外,好的书籍是成功的一半:《算法导论》 (虽然名为导论,但是算法著作中最权威也最有深度的一本书)《数据结构(C语言)》(严蔚敏的著作,一般重点高校使用,虽然比较抽象,但比较简化)《算法与数据结构(C语言)》(电子科技出版社,对算法的实际实现讲的比较透彻)Finally,you need 'coding' and programming again and again.
学习c语言看什么书好
如果学的话,最好不要看潭浩强的书,他用数学公式题,不适学者或自学。
其实潭浩强的书并不怎么样,比国外的教程差远了,只是国内高校缺乏创新意识,跟风现象严重,从高校到职校,《C程序设计》几乎人手一本,这才创下了“发行量第一”现象。
而且潭浩强已公开表示:不再就他的书回答任何技术性的问题
这分明是对自己技术没信心、落后于时代的表现。
国外教程:《21天学通C语言》《C语言三日通》(很多人国外自学者都是看了这本书才入门的,所用的例题简单易懂)再介绍以下两本真正经典的教材:1.《The C Programming Language》2.《Expert C Programming --- Deep C Secrets》如果E文好就看原版,否则只有买译本了。
强调一句:如果您是自学(初学者),千万别表谭浩强的书,否则你很难看懂。
他的书到处都是,您自己找一本先体验一下就知道了。
我想学习C语言,请大家推荐一本学习C语言基础的书籍
我现在正在学习C,手中有 C primer plus。
然后想要提高,想要购买书籍:1、数据结构与算法分析:C语言描述(原书第2版)2、你必须知道的495个C语言问题3、编程珠玑(续 修订版)4、编程之法:面试和算法心得5、编程珠玑(第2版 修订版)6、C和C++经典著作:C专家编程Expert C Programming Deep C Secrets7、C和C++经典著作:C陷阱与缺陷
跪求C学习体会
校报凡老师打电话给我,希望能对学生谈谈有关C语言的学习问题,帮助同学们学好该课程,我也希望如此。
下面从三个方面来谈一谈。
一、 对编程语言的认识C语言只是计算机编程语言中的一种语言,但不管是哪一种编程语言,它们都有一个共性和目的:编写程序(即针对要解决的问题(如1+2+……+100=
),用计算机思维提出问题解决方案,并最终用计算机语言编写程序来实施方案)。
我们学习编程语言的目的就是学会用计算机思维程序编写,用程序告诉计算机该做些什么、该完成些什么任务。
总体来说,不管哪种计算机语言,计算机编程思维是相通的、一致的,只要掌握了一门语言,其它语言就很容易触类旁通。
各种编程语言不同的是:语法(根据其所面向的应用方向制定),所以学习不同语言,就是学习它的语法,把你的计算机编程思维用该语法的语句实现。
从上述可以看出,学习计算机编程语言关键的是学会计算机的编程思维,同时采用哪种语言实现该思维,还需要学好这种语言的语法。
二、 如何建立计算机编程思维计算机编程思维的形成不是一蹴而就的,来自于平时的学习积累,不可能靠学期期末突击产生。
语言学习中,无论平时的例题、作业题或上机题都是计算机思维的实现,看的做的多了,自然而然地就会形成一种思维模式,也就是计算机中所说的算法思想,当然算法的好坏直接影响着所编写程序的质量,所以编程思维的形成对程序质量很重要。
初学计算机语言的同学,要快速形成编程思维是有一定难度的,但要拥有该思维并不难(关键是你愿不愿意付出),多找些编程题来练习,熟能生巧,和做数学题一个道理。
特别注意一个误区,有好些同学大量做题,可是程序编写能力仍然上不去,为什么
看看他们做的习题集是一些诸如等级考试的选择题,而选择题、填空题带给大家更多的是关于语言语法的熟悉和了解,甚至有的题太钻牛角尖,对真正的目的——编程没有什么帮助。
这个方法不可取
应该做的是编程题,而专门针对编程题的书很少,此外程序编写得对不对也不知道,再说一个题目要求可以有很多种编写答案,这可怎么办呢
我建议,找一些带有编程答案的题目进行编写,你先不看答案,根据题目先按自己的思维编写程序,之后再看答案(和答案不一样很正常,一道题有多种编写方法),重要的是从答案中体会答案的思路,反过来再从答案思路考察你编写的程序,看看能带来什么启发。
另外,验证自己所编程序正确与否的最直接方法:上机运行。
真正做到上述方法的话,读程序、写程序都不在话下。
接下来的问题是,带有答案的题目上哪里去找
上课例题、教材例题、其他教材例题、等级考试编程题、网络上的C网站等等均可,实际上你只要能把上课例题、教材例题、作业题自己重新独立完成,也就掌握了相关的编程思想,若能一道题多考虑集中编程方法则更好。
三、 C语言学习中应注意的问题语言学习中,上机调试也是重要的一环,调试能力的提高对编程能力的提高很有帮助。
因为程序正确与否、存在什么问题上机调试并运行正确后就可以知道,编程能力的提高也正是在不断改正错误中提高的,再者程序最终也是在计算机上实现的,抛开计算机只做一些纸张上的编程很难提高编程能力。
TC2.0上机调试的主要困难是:操作界面不熟悉,英文出错信息难理解,调试技巧欠缺。
这些困难大家可以从《C程序设计题解与上机指导(第二版)》(谭浩强主编 清华大学出版社)书中第14章得到一定的解答。
调试方法在该书中14.11章节已作相应的介绍,而调试技巧主要指程序编译连接通过后,运行结果不正确时如何查错的技巧,其也是靠平时上机积累经验产生。
调试时,注意单步跟踪调试(快捷键F7或F8)应结合监测表达式(Watch)和程序中加入适当的输出函数实现,并且调试运行中随时可以到User Screen窗口观测运行到该步的输出结果和对Watch表达式进行增删改。
需要观测整个数组时Watch内容为数组名即可,需要观测链表结点(p指针指向该结点)时Watch内容为*p即可。
C语言学习过程中,同学们感到特别困难的是循环和指针两部分的内容,其实难点不是在于语法,而是针对这些方面如何用相关语法的语句实现编程。
解决的办法就是第二点所谈,并且需要通过上机调试深入掌握。
要注意的是:循环部分正是计算机编程思维形成的重要一步,循环之后所学内容的编程实现都是建立在循环的基础上的,要学好C语言,首先得解决循环编程问题;指针部分一般都安排在教材较后的章节中,往往由于前面的内容没有学好或很浮躁,学习指针内容时,除了指针部分的难理解点外,还要加上前面部分的难理解点,越学越困难,结果成了问题积累,很难达到好的效果。
以上是我教学多年,对于同学们学习C语言的一些看法,希望对你们的学习有所帮助。



