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程序设计》第五版
如何用C语言编写杨辉三角,以及程序题解题思路
开局不多bb,直接上成品
#include<stdio.h>
#define MAX 15 //宏定义最多层数
int num[MAX][MAX]; //定义二维数组存储杨辉三角
void main()
{
int i,j;
for(i=0;i<MAX;i++) //外层循环控制层数
{
num[i][0]=1; //每一层的第一个数字均为1
for(j=1;j<=i;j++) //内层控制每一层的个数
{
if(i==j) //如果是每一层的最后一个数
num[i][j]=1; //则赋值1给num[i][j]
else
num[i][j]=num[i-1][j-1]+num[i-1][j]; //否则每个数=上一层的左边数加右边的数
}
}
printf(\”1\\n\”);
for(i=1;i<MAX;i++) //输出结果
{
for(j=0;j<=i;j++)
printf(\”%d\\t\”,num[i][j]);
printf(\”\\n\”);
}
}
首先,首先我们可以看出杨辉三角是第一行是一,第二行是1,1,第三行是1,2,1由此可看出第二行的1+1=2第三行1+2=3;可的规律
1. 设置一个用于存储杨辉三角值的空二维数组arr。
2. 将arr[0][0]设置为1。
3. 遍历二维数组,根据杨辉三角规律赋值:arr[i][0]=1; arr[i][i]=1; arr[i][j]=arr[i-1][j-1]+arr[i-1][j](i≥2, 1≤j≤i-1)
4. 打印出二维数组arr中的值形成杨辉三角的形状,完成杨辉三角的编写
对于这类的的程序设计题我们可以有以下思路
首先,要了解自己要解决的问题。在解决问题的过程中,了解问题背后的原理,这是一个重要的步骤。这样你就可以更好地理解问题,更容易找到有效的解决方案。
其次,根据所要解决的问题,确定程序的大体思路。具体情况而定,可以分为循环,选择,函数等多种算法和结构,结合实际情况来确定。确定程序的大体思路之后,就可以开始进行编写了,要仔细规划每一步的内容,以在编写程序的过程中更有效地完成程序。
再次,编写程序的过程中,要注意每一个细节,确保程序的可读性和可调试性,这样可以更好地理解程序,减少并消除程序中的错误。
最后,在编写程序完成后,应采用穷举法,多次运行程序,检查程序的正确性。此外,还可以使用编译检查工具,以确定程序中没有编译错误。
在C语言程序设计中,解决实际问题的关键是了解问题、确定程序解决思路、编写程序以及测试程序。只有经过了上述步骤,才能确保程序的有效性和可靠性,才能够得到想要的结果。
总之,C语言程序设计可以用来解决各种实际问题,要解决问题,首先要了解问题的背景,根据实际情况确定程序的大体思路,编写出符合要求的程序,确保程序的可读性和可调试性,最后使用穷举法,多次运行程序,检查程序的正确性,以确保程序的可靠性。
实用C语言编程(第三版)高清PDF
编写C 程序不仅仅需要语法正确,最关键的是所编代码应该便于维护和修改。现在有很多介绍C 语言的著作,但是本书在这一方面的确与众不同,例如在讨论C中运算优先级时, 15种级别被归纳为下面两条原则:
需要的朋友关注后私信我,大量优质电子资料分享!
关注我,为你提供更多电子学习资料!如果感觉好记得点赞哦!
– 先乘除,后加减;- 在所有该加括号的地方都加上括号 第三版除介绍UNIX上的编程工具之外,还介绍了流行的Windows系统上集成开发环境 (Integrated Development Environments)。 最实用的C编程经验介绍良好的编程风格和编程习惯节省软件维护时间和成本的法宝
目录:
第一部分 基 础第一章 什么是c?第二章 编程基础第三章 风格第四章 基本定义与表达式第五章 数组、修饰符与读取数字第六章 条件和控制语句第七章 程序设计过程第二部分 简单程序设计第八章 更多的控制语句第九章 变量作用域和函数第十章 c预处理器第十一章 位运算第十二章 高级类型第十三章 简单指针第十四章 文件输入/输出第十五章 调试和优化第十六章 浮点数第三部分 高级编程观念第十七章 高级指针第十八章 模块化编程第十九章 旧式编译器第二十章 移植问题第二十一章 c内的\”角落\”第二十二章 组合到一起第二十三章 程序设计格言第四部分 其他语言特性附录一 ascii表附录二 范围和参数传递转换附录三 运算符优先规则附录四 使用幂级数计算正弦函数的程序词汇表
需要的朋友关注后私信我,大量优质电子资料分享!
关注我,为你提供更多电子学习资料!如果感觉好记得点赞哦!
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。