我是大一新生。
C语言是老外发明的,有条件还是要看老外的教材,最好是英文版的,这是最原汁原味的。英文不好的同学最好也是选择一个老外教材的中文版。我推荐两本教材,一本是谭教授的C程序设计,还有一本是C Primer Plus最新版。
一、C程序设计
这本书很适合完全不懂C语言的初学者入门,但是一些基本的计算机概念还是要知道的,比如CPU、内存、文件、计算机原理等。
C程序设计这本书用词上通俗易懂,没有什么晦涩难懂的东西,只要你认字基本上理解不会有啥问题。
整本书结构安排也很合理,从最简单的C语言介绍,到基本数据结构,到C程序三大控制结构,函数等,一直到最后的文件操作,一步步的由浅入深。
C程序设计每章的课后习题也很有针对性,针对章节中的知识点。建议把习题做一遍,这样会加深对C语言知识点的理解。
二、C Primer Plus
看完C程序设计这本教材后可以再看看C Primer Plus这本书。这本书是老外写的。
老外写教材有一个最大的特点,就是比较啰嗦。对一个知识点会用较多的篇幅来讲,而且语言也比较口语化。所以需要学习的同学有点耐心看完全书。
书中会有大量的C程序代码案例,随着知识点不断的深入,会把不完善的C程序代码不断的完善,你要特别注意在完善C程序代码中的知识点。
这本书课后的习题也很有特色,比较偏应用。建议把习题都做一遍,边做边总结,加深C语言的知识点。
上面是推荐的两本C程序设计的书。后续可根据自己的实际情况选择其他的C程序的书籍。
如何自学C++?
我是大一新生。
提起c语言,很多人都说c语言属于比较难的编程语言,但是一些大型项目设计高复杂度和高要求的项目的时候,c语言还是有很大优势,例如互联网搜索引擎,高性能科学计算,大型网络游戏服务器等等。
那么该如何着手学习c语言呢,我整理了一套系统的学习方案,只要按照这套学习方案进行学习,一定可以学有所成。
先来一张整体的学习线路图:
从基础开始,先选个简单的编程语言,比如:C,买几本书,看一下就能入门了,如果想要深造,必须不停的学习同时实践,最好再请教一下高手给指点一下,工作几年之后,问题就不大了!
推荐一本纠正C++编程习惯的书籍?
想在互联网的领域内能开发一个属于自己的小产品。
谢邀!
既然是要纠正编程习惯,那说明已经跳过C++入门级别,想要更上一层楼了。下面推荐几本C++进阶书籍作为参考,其实想要成为高手,看书只是一方面,平时工作里多实践多总结会成长更快些!
1.《The C++ Programming Language》
《C++程序设计语言》是“C++之父”Bjarne Stroustrup所著,被称为“C++圣经”。这不是一本入门级书籍,介绍标准C++以及由C++所支持的关键性编程技术和设计技术。
2.《Effective C++ 》
《More Effective C++》
这两本书都是C++软件开发技术顶级权威Scott Meyers所著,以条款的形式回答程序员使用C++常见的错误、特性和注意事项,属于提高程序开发效率,提升C++水平必看的书籍。
3. 《Inside the C++ Object Model》
《深度探索C++对象模型》作者Stanley B.Lippman是第一代C++编译器开发主管,这本书有助于开发者了解C++编译器工作原理,处理C++对象模型时底层运行机制,但只适合对C++有较深了解的读者。
学习c语言之前,可以学哪些相关的基础?买书的话,有没有什么好的推荐?
C语言不是一个独立的课程,要想学好C语言,有许多的基础课程需要学习,否则你在学习C语言过程中会感到吃力。要打好的基础大概有以下几个:
一、计算机组成
这是最简单的基础了。
- 计算机组成分为显示器、键盘、鼠标,这在C语言中叫做输入输出设备。有许多的C语言IO函数库是用来操作输入输出设备的。
- 计算机主机有CPU,内存,外存的概念。C语言中有寄存器变量,这是跟CPU有关的;有指针概念,这是跟内存有关的;有内存分配函数,这是跟内存有关的;有文件IO函数库,这是用来读取写入外存的函数,是跟外存有关的。
二、计算机导论
这也是必须要学习的基础。
- 进制。C语言的数据可以用二进制表示,也可以用八进制表示,也可以用十六进制表示。如果不懂进制,学这些你会一头雾水。
- 流程图。C语言写代码时一般都会画算法流程图,了解自己的程序会如何一步一步的执行才能开始写代码。流程图的概念很重要。
- 算法。算法是C语言代码的灵魂,写代码表面是在写代码,实际是在写一个算法。没有算法,写C语言代码那就是自娱自乐,不解决实际问题。
三、数学知识
都说数学是计算机的基础,这一点也不错。比如C语言中有一个经典的程序是找素数、找合数等,这些都是数学概念。如果都不知道素数、合数的数学定义,C语言代码压根就写不出。
上面只是浅薄地说了下学习C语言需要的基础,我们还可以继续交流。至于学习书籍,我之前推荐了几本,可以看看我以前的问答。