• C语言零起点精进攻略 C/C++入门·提高·精通
  • C语言零起点精进攻略 C/C++入门·提高·精通
21年品牌 40万+商家 超1.5亿件商品

C语言零起点精进攻略 C/C++入门·提高·精通

正版保障 假一赔十 电子发票

52.84 5.4折 98 全新

库存4件

四川成都
认证卖家担保交易快速发货售后保障

作者爱编程的魏校长

出版社化学工业出版社

ISBN9787122357533

出版时间2020-03

装帧平装

开本16开

定价98元

货号1202050963

上书时间2024-12-21

瀚东书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
前言

上大学时,有一位教授讲大学学习之道,给我们提了一个建议:任何一门课程,*好同时采用2~3本教材来学习。教授的这一方法,让我们受益良多。我记得,当时大学里的*门程序设计语言课是PASCAL,可是我们的教材,我学起来有点吃力,后来发现学校上机实验是VAX 小型机,于是从图书馆借来了小型机和PC 机的比较类图书,关键的是我还买了一本写得更加浅显的、基于PC 机的PASCAL 图书,同时学习了这些图书,我很快就掌握了PASCAL 语言。后来的线性代数、模电数电、数据结构和算法、操作系统、计算机原理等课程,我都用这种方法,同时从图书馆借或者购买1~2本比我自己用的教材浅一点或者深一些的教材,对比着学习。有的让我快速入门,有的让我掌握更深……感谢教授提供的学习方法。

针对C 语言,我也向大家推荐这种学习方法。一方面,C 语言比较难;另一方面,如果你想成为一个编程高手,需要广泛涉猎相关图书,因为很多教材基于其定位,覆盖不到一些实际常用的编程常识。

我们认为,世界上有两种C 语言:一种是具有基本算法描述能力的C 语言,我们称为基本C ;另一种是具有内存操作等特色的系统编程能力的C 语言,我们称为系统C。所以,一本好的C 语言图书,要经得起两次阅读:*次,让读者掌握基本C,帮助读者将来顺利学习后期如算法和数据结构等相关课程,帮助读者学习C 、Java、C# 等C 派生的程序设计语言;第二次,让读者体会系统C 的关键。基本C 的学习,让读者将来可以轻松掌握其他程序设计语言,让读者具有移植能力;系统C,则让读者具有实战的开发能力。

我们这本C 语言图书,就定位于比一般讲解“基本C”的图书略微高深一点,希望可以成为读者C 语言教材之外的第二本辅助学习用书。

同时,我们也希望这本书给读者提供一些C 语言学习的闯关之道。

程序设计的水平提升是有一些关卡的。一旦你打过了这一个关隘之前的小怪兽,你的水平就提升一级。

在我们的C/C 学习交流群里,大家总结,基本上有以下这三个大关,一旦闯过,掌握程序设计语言这件事情,或者说用程序设计语言来为我们解决问题这件事情,我们认为就达标了。

*个关口:编译提示关

我记得在学习编程之初,*个程序,我觉得就是按书输入的程序啊,可是编译提示总是提醒我有问题,让我很有挫败感。十几分钟之后,我放弃了自己纠错的可能性,问旁边一个同学,同学看了一眼,说:“你有一个关键字少写了一个字母S”。

我一看,果然如此。要知道,20 年前的编译器,错误提示经常是牛头不对马嘴的,定位不准。而且,我们那时参考书和学习资料很少,*能获得信息的地方,就是IDE 提供的帮助文件(Help),而且这个Help 还是全英文的!

还好,这个编译错误之后,我的编程之路就比较顺利了,慢慢我也摸清了编译器的脾气,自己能迅速定位错误所在。嗯,有些提升也是意外的,在整整两年几乎天天和BorlandC V3.1 打交道之后,我大约找到了十来个它的缺陷(bug)和避开的方法。当我啃了这全英文的Help 之后,英文技术文档的阅读水平也大大提高了,真是让人意外。

后来,从几个学习群,还有读者来信中了解到,大量的读者,*个bug、*个过不去的关卡,是使用了全角英文的字母,读者也是看不懂错误提示,然后怀疑自己的编程能力。这里,我先提醒大家,编译器和IDE 都是给半角纯英文环境设计的,他们没有想到还会有中国人使用全角的这个问题。你们一定要跨过这个关口。实际上,我们的经验是,跨过这一关,你的学习能力开始具有加速度。当大一完成C 语言程序设计的基本学习之后,假设从大二开始,像我们当年一样每天编写100行代码,等到大四毕业的时候,你怎么也有几万行代码的编写经验,基本上,找一份薪水优渥的工作就问题不大了。所以,一定要在大一闯过IDE 工具和语言的熟练关,像我们当年熟练掌握了Borland C ,后来也很轻松就转到其他开发工具上。这些工具之间举一反三,很容易就能学会。

就像我们熟练使用Windows 系统,是从了解鼠标开始的一样,要学好C 语言,要先过编译提示关,而且这个关口完全靠你自己摸索,别人几乎帮助不了什么。还好,你开始学习的时候,都是小程序,错误提示都是逐步出现的,一次只会出现1个或2 个,而且会大量重复,这给了我们积累的时间。

第二个关口:理解变量和计算机对变量的操作

好多读者转不过这个弯来,始终觉得计算机程序是一个很奇怪的东西。这方面,我们从计算机的运行原理出发,给大家做了比较精彩的解释,希望能帮助大家跨越这一关。

20多年前,我们刚进大学时,是在VAX 小型机上学习编程语言,但很快又在PC 机上学习另外一种编程语言。两种平台的区别把我们折腾得苦不堪言。老师也是匆匆来上课,很难找到他们去问问题。后来我仔细研究了两个上机手册,还是学校自己编印的那种,然后借助图书馆的好多资料,才明白小型机、UNIX、PC 机、DOS 的区别。现在回头来看,没有好书,没有人指导,真的是非常痛苦,但也锻炼了我们的学习能力,慢慢积累了和各种机器打交道的经验,不亦乐乎?

在今天这个时代,你需要理解Linux 系统、Windows 系统和手机操作系统的区别,慢慢理解CPU、硬盘和内存是什么关系,逐步提升对程序和系统的理解,这有助于你编写更好的程序。很遗憾,这些内容其他C 语言图书中很少涉及,我们从现实需要出发,在本书中编写了这方面的相关内容。

第三个关口:现实问题的计算机化

中小学时期,很多人缺乏抽象训练,不能把生活中的问题数学化,以至于解决应用题时,一旦需要用到x,y,z,就感到一头雾水;如果要列出数学关系式来,更是让人绝望。但是,把现实问题用计算机来解决,建立数学模型,把数学问题计算机化,难度就小很多了。并且,这些问题的程序设计解决之道,是有规律可循的:

(1)利用计算机强大的不知疲倦的计算能力。枚举法,不停地循环计算,是常见之道。所谓暴力计算,*典型是“百钱买百鸡”问题。

(2)利用计算机强大的存储能力。我们可以把一些做法甚至结果存在内存里面,根据需要调用即可。比如,暴力解决“算24”问题。

(3)实在没办法,还有强大的函数库嘛,会使用就行了。

还有很多的数据结构和算法,可以让你体会如何把现实问题计算机化并采用一定的数据结构和算法处理,看多了,自然就会用了。这一关的意义是让读者成为一个真正的程序员。我大学毕业时接触的*个项目是体温计。我们要从大量的数据中抽象出一个数据模型来,然后用计算机去统计和适配,*后得到一个算法,用以修正我们测量的数据。

如果具有良好的现实问题数学化、计算机解决化的能力,就可以轻松跨过学生学习到的知识到现实职场能力之间的小关卡。当然,过第三关的时候,*好辅助一些数学建模等相关图书,还有一定的课程设计、毕业设计级别的编程实践才行。至少你要理解结构体在解决现实编程问题中的意义。

我们把跨过这三关的方法作为三个重点,融合在这本C 语言程序设计能力提升的参考图书之中,读者只需要按照本书的内容,加强练习,每天提升自己一点,每天理解一点C 语言的精华所在,像钻研武功秘籍一样去修炼,相信你可以轻松过关。

这三关翻过,你基本就来到了编程的自由境界,你会从不断和计算机的交互过程中获得各种乐趣。如果你和当年的我们一样爱上编程这件事情——写一个代码,很快就能看到结果,这种机器实验实在是太吸引人了——你就可以开始探索程序设计中的其他奥秘了,比如一些指针的高级用法,充满玄妙的编程技巧,开始去理解“程序= 算法 数据结构”。同时,你也积累了一些良好的编程习惯,或者说,掌握了软件构建的工程之道。毕竟,程序员除了是手工业的码农,还是一个软件工程师。

今天的读者很幸运,既有大量参考书籍,又有中文系统环境,还有网上交流的渠道。希望大家通过这本书,结合你们学习C 语言程序设计的教材,逐步精进你的程序设计水平,成为一毕业就基本可以上岗的开发人员!

爱编程的魏校长

 

 



 
 
 
 

商品简介

C语言是学习其他程序设计语言的基础,也是编写硬件相关的嵌入式系统等系统级程序的优秀工具。本书从贴近CPU和内存原理的角度,给读者提供了一个学习—实践—应用C语言的逐步掌握C语言并成为C程序员的技能提升方案。

全书分5篇17章。前3篇分别讲述C语言的起步知识、控制程序流程的基础、编写基本C代码的组织工具;第4篇包含了编写系统级程序所需要的C指针、结构体、编译预处理等关键知识;第5篇提供了应用C开发程序所需要的技能和初步实践方法。

本书可作为高校学生学习C语言的教材和辅助读物,也可作为中学生参加NOIP竞赛的参考书,还能作为初级嵌入式程序员理解C语言的工具书。

 

 



作者简介


目录
篇起步知识

章CPU运行原理和C语言003

1.1CPU是如何工作的/003

1.1.1指令节拍和流水线/004

1.1.2摩尔定律让CPU越来越快/004

1.1.3从CPU指令到程序设计语言/006

1.2理解计算机程序设计/006

1.2.1程序是什么/006

1.2.2程序设计与程序设计语言/007

1.2.3不断细化问题的结构化程序设计思想/007

1.3C语言的初步知识/008

1.3.1C语言的历史/008

1.3.2C语言程序的特点/009

1.3.3C语言程序的开发过程/010

1.4程序生成的工具/010

1.4.1编译器的概念/011

1.4.2连接器的概念/011

1.4.3项目和Building/011

1.5一个简单的C语言程序/012

1.5.1学习写个C语言程序/012

1.5.2分析C语言程序的组成部分/012

1.5.3运行这个程序/013

1.5.4牛刀小试/013

1.5.5C程序的构成/014

本章小结/014

第2章C语言基本功015

2.1了解电脑内存的运行方式/015

2.1.1数据和代码都存储在内存中/015

2.1.2任何数据都需要标识符才能读取/016

2.2认识和使用标识符/017

2.2.1标识符的命名规则/017

2.2.2C语言中标识符的分类/018

2.3什么是变量/019

2.3.1了解变量/019

2.3.2声明变量/019

2.3.3初始化变量/020

2.4什么是常量/020

2.4.1认识常量/020

2.4.2整型常量/021

2.4.3浮点型常量/021

2.4.4字符型常量/022

2.4.5字符串常量/023

2.4.6符号常量/023

2.5C语言程序中数据存储的基本类型/024

2.5.1存储整型数据/024

2.5.2存储实型数据/027

2.5.3存储字符型数据/028

2.6基于数学程序运算符和表达式/030

2.6.1在C语句中使用算术运算符/031

2.6.2赋值运算符/032

2.6.3用自增、自减运算符来进行运算/034

2.6.4逗号运算符/035

2.6.5使用sizeof运算符求变量占用的空间大小/035

2.6.6使用关系运算符完成条件的选择/037

2.6.7注意运算符的优先级和括号/038

2.7数据类型的转换/040

2.7.1隐式自动转换/040

2.7.2显式强制转换/043

本章小结/044

第2篇代码基础

第3章使用顺序结构编写程序047

3.1语句与表达式/047

3.1.1CPU指令是如何变身汇编语言的/047

3.1.2表达式语句与空语句/048

3.1.3复合语句/049

3.2控制屏幕打印/049

3.2.1使用putchar()输出字符/049

3.2.2格式化输出函数printf()/050

3.2.3标准错误流/052

3.3读取键盘输入/052

3.3.1用getchar()函数输入字符/052

3.3.2用getch()和getche()函数输入/053

3.3.3格式化输入函数scanf()/054

3.4输入输出综合示例/057

3.5操作系统和应用程序/057

3.5.1应用程序在Windows中是如何被执行的/058

3.5.2WindowsAPI和C运行时库/058

本章小结/059

第4章使用选择结构编写程序061

4.1用逻辑运算符实现选择结构/061

4.1.1逻辑运算符的使用/062

4.1.2逻辑运算符的优先级与结合性/063

4.1.3使用逻辑运算符的程序举例/063

4.2用if语句实现选择结构/064

4.2.1if语句的使用方法/064

4.2.2使用if语句的程序举例/064

4.2.3使用if…else结构实现多项选择/065

4.2.4使用if…else结构的程序举例/066

4.2.5if语句的嵌套使用/067

4.2.6使用if语句嵌套的程序举例/069

4.3用条件运算符实现简单的选择结构/072

4.3.1CPU只有JUMP指令/072

4.3.2专业程序员都会错:悬挂else引发的问题/073

4.3.3这是语言特性,不是数学公式/074

4.3.4少用,但可以了解的语言特性/074

4.4多分支条件选择语句:switch/076

4.4.1switch语句的结构介绍/076

4.4.2大多数人理解的switch语句都是错的/077

4.4.3多个执行结果共用一个条件/079

4.4.4使用switch语句的程序综合举例/080

本章小结/081

第5章使用循环结构编写程序083

5.1用while实现带条件的循环语句/083

5.1.1while循环语句的结构和功能/083

5.1.2while循环语句的程序实例/084

5.2另一种带条件的循环语句:do…while/086

5.2.1比较do…while与while的差异/086

5.2.2用do…while循环的程序实例/086

5.3用for语句实现循环/087

5.3.1for循环的结构与功能介绍/087

5.3.2使用for循环的程序实例/088

5.3.3for循环的几种不同的格式/089

5.3.4在for语句中添加逗号运算符/091

5.4不错流程控制语句/092

5.4.1用goto语句在程序中任意跳转/092

5.4.2用break语句中断循环/093

5.4.3用continue语句跳出当前循环/094

5.5各种循环语句的嵌套使用/096

本章小结/098

第3篇能力提高

第6章用函数把程序分块101

6.1函数的概念/101

6.1.1明白什么是函数/101

6.1.2使用函数的好处/102

6.1.3main()函数的概念及用途/102

6.2函数的定义/102

6.2.1自己定义一个函数/102

6.2.2定义一个有参函数/104

6.2.3函数的参数/105

6.2.4函数的返回值/106

6.2.5空函数/108

6.3函数的调用原理与声明/108

6.3.1函数的声明/108

6.3.2函数调用表达式/109

6.3.3函数调用的方式/109

6.3.4不加()的函数调用会出现什么/111

6.3.5嵌套调用/111

6.3.6函数在结构化程序设计中的意义/112

6.4递归函数/113

6.5变量的作用域和存储类别/116

6.5.1什么是变量的作用域/116

6.5.2块结构/117

6.5.3局部变量和局部变量的作用域/117

6.5.4全局变量和全局变量的作用域/118

6.5.5变量的存储类别/119

6.5.6静态变量存储/119

6.5.7自动变量存储/121

6.6内部函数与外部函数/122

6.6.1内部函数/122

6.6.2外部函数/124

本章小结/125

第7章数组127

7.1数组的概念及内存占用/127

7.1.1数组的概念/127

7.1.2数组在内存中的存储/128

7.1.3数组的溢出/129

7.2一维数组/129

7.2.1一维数组的定义/130

7.2.2一维数组的初始化/130

7.2.3一维数组元素的引用/131

7.2.4一维数组的应用实例/132

7.3二维数组/132

7.3.1二维数组的定义/133

7.3.2二维数组的初始化/134

7.3.3二维数组元素的引用/134

7.3.4二维数组的应用实例/135

7.4字符数组/136

7.4.1字符数组的定义/136

7.4.2字符串与字符数组/136

7.4.3字符数组的初始化/137

7.4.4字符数组的输入和输出/137

7.4.5使用scanf()函数接收字符串/138

7.4.6字符数组的应用/139

7.5字符数组元素作为函数参数/140

7.6数组在程序中的实际应用举例/141

7.7数组的专业用法/143

本章小结/146

内容摘要
C语言是学习其他程序设计语言的基础,也是编写硬件相关的嵌入式系统等系统级程序的很好工具。本书从贴近CPU和内存原理的角度,给读者提供了一个学习—实践—应用C语言的逐步掌握C语言并成为C程序员的技能提升方案。全书分5篇17章。前3篇分别讲述C语言的起步知识、控制程序流程的基础、编写基本C代码的组织工具;第4篇包含了编写系统级程序所需要的C指针、结构体、编译预处理等关键知识;第5篇提供了应用C开发程序所需要的技能和初步实践方法。本书可作为高校学生学习C语言的教材和辅助读物,也可作为中学生参加NOIP竞赛的参考书,还能作为初级嵌入式程序员理解C语言的工具书。

主编推荐

1、本书是一本一线程序员教授零起点读者掌握C语言的经验性图书。

2、从计算机原理和数据内存控制原理角度讲解C语言的指令、变量和语句等内容,帮助读者真正理解C语言。

3、C语言的应用陷阱特别多,本书总结整理了这些使用中的陷阱,分布在相关章节,供读者提升内力之用。 

4、本书讲解了Linux、Windows系统和手机上操作系统的区别,分析了CPU、硬盘和内存是什么关系,逐步提升读者对程序和系统的理解,这有助于编写更好的程序。

5、跨关思想。书中设定了三个大关,每章设定了一些小的关卡,读者学完一章,想一想,测一测,看自己在哪些知识和技能方面已经过关,就会发现距离自己成为专业程序员更近一步,给读者以学习的动力。

 


【内容简介】

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP