《C程序设计(第四版)》小记
我看的这本书很经典,它是谭浩强写的,也就是广为流传的“C语言红皮书”。在网上看了很多帖子,生活中也问过一些朋友,大多数人是不认可这本书的。很多人都说这本书很烂,看不懂,然后去“追逐”国外的一些教材。其实我想说的是这本书你真的认真看了吗?它就真如大家说的那么烂吗?
这本书的定位是“教材”,它的受众是广大的学生群体,这是一本很经典的教材。我写这篇小记是想给大家推荐一下这本书,一定要选择性地去看,学习书中的方法。
对使用本教材的建议
本书是作为高等学校学生学习C程序设计的教材,对象是没有学过计算机程序设计的大学生。
作者是按照“提出问题-解决问题-归纳分析”的思路来写这本书的,书中的例题也是按照“提出任务-解题思路-编写程序-运行程序-程序分析-有关说明”的思路展开的。这是值得我们学习的,也就是上文说的“学方法”。
2. 为什么选择C语言
进行程序设计,必须用一种计算机语言作为工具,否则只是纸上谈兵。可供选择的语言很多,各有特点和应用领域。
......
有人以为C++语言出现后,C语言过时了,淘汰了,这是一种误解。C++是为处理较大规模的程序开发而研制的大型语言,它比C语言复杂得多,难学得多。事头上,将来并不是每个人都需要用C++编制大型程序,C语言是更为基本的。
......
在需要时进一步学习C++,也是很容易过渡的。
3. 怎样处理算法和语言的关系
进行程序设计,要解决两个问题:
(1)要学习和掌握解决问题的思路和方法,即算法;
(2)学习怎样实现算法,即用计算机语言编写程序,达到用计算机解题的目的。......
语法规则不是通过孤立的学习而是在学习编程的过程中学到的。
4. 怎样学习C程序设计
(2)要把重点放在解题的思路上,通过大量的例题学习怎样设计一个算法,构造一个程序。初学时更不要在语法细节上死背死抠。一开始就要学会看懂程序,编写简单的程序,然后逐步深入。语法细节是需要通过较长期的实践才能熟练掌握的。
(5)要举一反三。学习程序设计,主要是掌握程序设计的思路和方法。学会使用一种计算机语言编程,在需要时改用另一种语言应当不会太困难。
以上部分摘自该书前言部分,作者很清楚的写明了学习C语言的思路和方法。这本“小红书”里有很多“例题”,很多都值得去积累,看过该书你应该积累一些“好题”,学习作者提供给你的这种思路。通过积累这些例子,你就有了自己的“题库”,对你以后去“刷题”都有帮助的。
以上文字就是我的小记。简言之,这本书值得去读,“取其精华弃其糟粕”的去读。
2020-01-22
《C程序设计(第四版)》小记的更多相关文章
- 《C++语言导学》小记
我看的这本是Bjarne Stroustrup写的,南开大学的杨巨峰和王刚译的.这本书不适合初学者看,我就是大概翻了翻其中感兴趣的章节. 这本书第14章的标题是“历史和兼容性”,这节内容我看了收获很深 ...
- Java语言导学笔记 Chapter 9 IO
java.io 9.1.1 字符流 Reader为读取器(reader)提供API和部分实现,读取器是读取16位字符的流: Writer为写出器(writer)提供API和部分实现,写出器是写16位字 ...
- Java语言导学笔记 Chapter 8 Thread
8.1 什么是线程 def: 线程是程序内的一个单一的顺序控制流程 作为一个顺序的控制流程,线程必须在运行它的程序中占用一些资源.例如,线程必须有它自己的执行堆栈和程序计数器.在线程内运行的代码只在此 ...
- java语言导学(5版)--第12章并发之二
1不可变对象 概念:(immutable)对象创建后,状态不可更改.不可变对象在并发程序中尤其有用,因状态不可变,不会被线程干扰,也不会出现不一致状态. 书中通过实例是可变的类,并从此类衍生出一个不可 ...
- Spring Cloud微服务安全实战_1-1_导学
这两年微服务是一个很火的话题 .在java语言的体系里,现在最火的就是SpringCloud. 本系列文章主要不是讲:怎么使用SpringSpringCloud组件搭建一个微服务的体系,如服务的认证注 ...
- springboot系列教程导学篇
spring boot2.0系列教程学习之导学篇 springboot 2.0深度学习系列教程. Spring Boot 虽然凯哥从2015年年初开始就接触了spring boot.但是在之后的公司中 ...
- 001 01 Android 零基础入门 01 Java基础语法 01 Java初识 01 导学
001 01 Android 零基础入门 01 Java基础语法 01 Java初识 01 导学 welcome to Java World 欢迎来到Java世界 一起领略Java编程世界的奥秘与奥妙 ...
- D10——C语言基础学PYTHON
C语言基础学习PYTHON——基础学习D10 20180906内容纲要: 1.协程 (1)yield (2)greenlet (3)gevent (4)gevent实现单线程下socket多并发 2. ...
- 1-1 课程导学 & 1-2 项目需求分析,技术分解.
1-1 课程导学 1-2 项目需求分析,技术分解. 要有一定的dart基础,了解安卓和ios的一些普通的开发
- 第一周<导学>
导学 欧氏距离 平方 曼哈顿距离 一次方 马氏距离 协方差(先标准化再计算距离)\(d(x_{i},x_{j})=\sqrt{(x_{i}-x_{j})^{T}s^{-1}(x_{i}-x{j})}\ ...
随机推荐
- Kali链接Xshell和更新源
一.Xshell首次链接kali系统中的ssh Xshell:帮助我们去连接各种服务平台,方便管理服务器,链路可以加密处理(ssh/vsftp) 1.开启kali中的ssh服务,service ssh ...
- 19 01 15 js 尺寸相关 滚动事件
尺寸相关.滚动事件 1.获取和设置元素的尺寸 width().height() 获取元素width和height innerWidth().innerHeight() 包括padding的width和 ...
- bzoj 4236JOIOJI
一开始忘掉特殊情况也是蛋疼2333(有一直到头的.mp[0][0]是要特判的) 做法也就是找mp[i][j]相同的东西.(貌似可以写成线性方程组(z=x+A,z=y+B)过这个的就是相等(可以先从2维 ...
- Toolbar中系统自带返回键(setDisplayHomeAsUpEnabled)与Toolbar本身的inflateMenu冲突问题
在APP的Toolbar中可以设置inflateMenu来添加右上角菜单栏,但是我又同时想用系统自带的左侧返回键,随之也产生了问题:右上角的inflateMenu会不生效,即不会产生菜单按钮,查阅资料 ...
- 65.ORM查询条件:gte,gt,lte和lt的使用
1. gte: 代表的是大于等于,英文全称为:great than equal.举例:找到文章id大于等于3等文章,示例代码如下: 定义模型的示例代码如下: from django.db import ...
- oo第四单元及课程总结
一.第四单元作业总结 第四单元有两次作业,第十三次作业是实现一个UML类图解析器,可以通过输入一些查询指令来查询一些类图的信息.程序的主干部分已经提供,我们的任务就是实现给出的接口,过程并不繁琐.第十 ...
- like not like 优化
instr(title,’手册’)>0 相当于like instr(title,’手册’)=0 相当于not like 对于LIKE语句,我们可以使用instr函数来进行SQL调优
- JZOJ-2019-11-5 A组
T1 给定由 n 个点 m 条边组成的无向连通图,保证没有重边和自环. 你需要找出所有边,满足这些边恰好存在于一个简单环中.一个环被称为简单环,当且仅当它包含的所有点都只在这个环中被经过了一次.(即求 ...
- go 的参数传递
再go语言中没有引用传递,所有都是按照值拷贝的方式传递的. 数组:实际就是堆栈上的一段连续内存,和c类似.(可以更加反编译代码推断 go tool compile -S main.go > ma ...
- pipeline简单规则
Declarative 1. pipeline{ agent options{ } stages{ stage(' '){ steps{ } } } post{ always{} changed{} ...