C程序设计(谭浩强)——第五版和第三版对比
谭浩强,对大学生来说很熟悉的一个名字,大学习C语言基本上都是他的这本《C程序设计》作为教材。笔者上大学时学习的是第三版,现在流行的是第五版。当初学C语言的时候是一知半解,纯粹为了应付考试,后来工作主要是PHP、Python等高级语言为主。如果恰巧你是刚入学的大一新生,或者对编程感兴趣,那不妨我们一起来学习一下C语言,希望我这个互联网打拼10余载的老鸟能帮助一些新手完成编程第一课。
看一本书先看目录,了解这本书的篇幅结构和布局,不仅为我们的学习计划做铺垫,还能把我全局,学起来不会像无头苍蝇毫无目的,而是每一次学习都有比较明确的目标,大大增强我们学习的信心。
虽然这本书修订到了第五版,和我当初的第三版在章节和内容顺序上略有不同,但是总体基本一致。下面我们通过对比这些章节上的区别来了解这本书的布局和结构,为后面的学习打下基础。
整体来看,第五版比第三版少了四章,是知识点少了吗?下面看具体分析。
- 第五版将第3章、第4章合并为第三章,内容基本一致
- 第五版第6章“循环控制”改为“循环结构程序设计”为了和第五章命名保持一致
- 第五版第7章、第8章命名加长,可能为了更好地体现出“数组”和“函数”的作用,内容基本一致
- 第五版第9章“用户自己建立数据类型”对应第三版第11章“结构体与共同体”
- 第五版舍弃第三版第9章“预处理命令”这个章节
- 第五版舍弃第三版第12章“位运算”这个章节
可以看出,第五版舍弃了一些章节,看书本开头的介绍是把这些章节移入了《C程序设计辅导》中,因为有些知识点对于非计算机专业的同学来说难度较高,所以,谭浩强的目的还是为了让这本书有普适性,作为不同专业同学的入门书籍是他的初衷。
与其答“如何学好C语言”,不如答“如何学好编程”。基于我的经验来讲,学编程只是手段,解决问题才是目的。
解决问题的手段有很多种,可以用C语言,也能用C++、Java、PHP、Python等语言实现,不同编程语言组织形成的代码最终都会编译成二进制交给计算机去处理,这叫殊途同归。
学习编程就是学习使用一款电脑软件一样,只不过这款软件没有图形化的界面,它只是定义了一些规则,你在遵循它的规则之下去编写一些字符,这样就可以交给它去执行了。和普通软件相比,它肯定难以上手,而且规则较多,但是它没有图形界面,没有条条框框,更适合让我们自由地去发挥想象,也具有十足的潜力。
讲了这么多,学习编程到底如何进行呢?
学习编程语言本身。也就是学习它的规则,如数据类型、逻辑控制、数据结构、函数对象,这个整体思路在各编程语言是相通的。
学习思路,举一反三。编程只是手段,是为我们解决问题而服务的。如何控制利用好编程,即用什么来指导编程,这个就是我们的思路。如同做数学题,要有清晰的解题思路,才不会感觉无从下手;而且要学会举一反三,这个要求我们在解决好一个问题之后要思考、去总结,不断地精炼、提升我们的编程思路,最好是把一般性的业务抽象成纯粹的数学题(工作后会明白这句话的深刻含义)。
接下来,我会集中利用闲余的时间来学习《C程序设计(第五版)》,期限暂定一个月之内。正如文章开头所讲,正巧你也要学习C语言,那不妨我们一起学习交流、成长。
有任何想法和问题可以留言或者私信,见后即回。
《C程序设计》第五版
选择排序:20年前在谭浩强《c语言程序设计上》学习过(43)
小朋友们好,大朋友们好!
我是猫妹,一名爱上Python编程的小学生。
和猫妹学Python,一起趣味学编程。
今日主题
什么是选择排序?
用Python写段代码,实现插入排序。
选择排序
选择排序是一种简单的排序算法,它的基本思想是在待排序的数列中,找到最小(大)的元素,然后将其放到数列的起始位置,再从剩余的未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
以此类推,直到所有元素均排序完毕。具体实现过程如下:
- 在未排序序列中,找到最小元素,记录其位置。
- 将最小元素与未排序序列的第一个元素交换位置。
- 在剩余未排序元素中,重复步骤1和步骤2,直到整个序列排序完成。
选择排序的时间复杂度为 O(n^2),适用于数据量较小的情况。
认真看下图,秒懂:
Python实现
如果你理解了上述过程,不妨写代码实现下,看能否把思路变成代码,这很重要。
猫爸说,二十年前,他上大学那会,学的第一门编程语言是c语言,作者是谭浩强教授。
c语言也是一门非常流行的语言,应用领域非常广。
那本书中有讲到选择排序和冒泡排序,必考内容,刚毕业时,面试也经常考试这个,发张A4纸手写代码。
好长时间不用,都忘记了。
好了,我们今天就学到这里吧!
如果遇到什么问题,咱们多多交流,共同解决。
我是猫妹,咱们下次见!
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。