
《C语言王者归来》详细讲解了C语言的相关知识,从基本概念开始,逐步讲解程序流程控制、循环、字符串、指针、函数、结构、文件输入与输出,以及完整的大型项目设计。同时本书还进一步讲解了数据结构的基础知识,如串行、堆栈、队列与二叉树,奠定读者未来学习算法的基础。本书最后一章则是介绍 C++ 与 C 语言的差异,由此可以帮助读者学习面向对象的程序开发方法。
1991年,笔者还在美国读计算机博士时,出版了一本在UNIX环境撰写的C语言图书,随后基于PC环境编写了Turbo C、Borland C、Visual C、C++、电玩游戏设计中的C 语言等相关图书。本书则是将过去笔者撰写C语言的经验与目前科技发展趋势结合,进行重新诠释。
这是一本完整讲解C语言的教材,从最基本的C语言概念讲起,逐步讲解程序流程控制、循环、字符串、指针、函数、结构、文件输入与输出,以及完整的大型项目设计。同时本书还进一步讲解了数据结构的基础知识,如串行、堆栈、队列与二叉树,奠定读者未来学习算法的基础。本书最后一章则是介绍C++与C语言的差异,由此可以帮助读者学习面向对象的程序开发方法。
为了让读者可以彻底了解C语言,本书使用大量图例讲解语法运作过程与内存间的关系,特别在读者不易理解的指针、串行、堆栈、二叉树章节,更是全程记录每个环节内存的变化。整本书用460多个活泼、生动、实用的程序实例辅助解说。每章附带的是非题、选择题、填充题等习题可以加深读者对重点知识的理解,程序实操题则可以加强读者的程序设计技能,实现举一反三。所有习题答案可在最后扫码下载。本书也讲解了丰富的函数,读者可以了解系统资源,加快未来的工作效率。通过本书内容,读者可以彻底理解下列C语言的相关知识。
..C语言的输入与输出。
..C语言解数学方程式。
..程序流程控制与循环设计。
..基础数学与统计知识。
..排序的内涵。
..递归函数设计。
..斐波那契(Fibonacci)数列的产生。
..C语言的前端处理器。
..计算机内存地址及指针。
..将struct应用到平面坐标系统、时间系统。
..将enum应用在结账系统、薪资计算系统。
..字符串加密。
..文件管理。
..C语言低阶应用 —— 处理位运算。
..建立项目执行大型程序设计。
..基础数据结构。
..C++与C语言的差异。
笔者编写过许多计算机图书,本书沿袭笔者图书的特色,程序实例丰富,相信读者只要遵循本书内容,必定可以在短时间内精通C语言,奠定学习进阶计算机知识的基础。本书虽力求完美,但错误难免,尚祈读者不吝指正。
洪锦魁
第1章 C语言基本概念
1-1 C语言的价值.....................................2
1-2 C 语言的特色....................................2
1-3 C语言开发过程.................................3
1-4 规划程序...........................................5
1-5 程序除错...........................................6
1-6 程序的名称........................................7
1-7 C语言程序结构分析...........................8
1-8 C语言程序实例ch1_3.c的解说..........9
1-8-1 程序的行号....................................9
1-8-2 程序的批注....................................9
1-8-3 引用头文件....................................9
1-8-4 主程序int main( )声明 ...............12
1-8-5 程序的内容..................................12
1-8-6 变量的声明..................................12
1-8-7 程序实例ch1_3.c的解说 ...........13
1-9 习题...............................................13
第2章 C语言数据处理的概念
2-1 变量名称的使用................................16
2-1-1 认识C语言的变量 .....................16
2-1-2 认识不需事先声明变量的
程序语言 ......................................17
2-2 变量的声明......................................17
2-3 基本数据形态...................................18
2-3-1 整数 .............................................18
2-3-2 字符 .............................................21
2-3-3 浮点数 .........................................22
2-3-4 sizeof( )函数 ...............................23
2-3-5 字符串数据形态 ..........................24
2-4 常数的表达方式................................24
2-4-1 整数常数 ............................................................24
2-4-2 浮点常数 ............................................................26
2-4-3 字符常数 ............................................................26
2-4-4 字符串常数 .......................................................27
2-4-5 一次设定多个变量值 ...................................27
2-5 程序设计的专有名词.........................28
2-5-1 程序代码 ............................................................28
2-5-2 表达式 ..................................................................28
2-5-3 运算符与操作数 .............................................28
2-5-4 操作数也可以是一个表达式 ...................29
2-5-5 指定运算符 .......................................................29
2-5-6 单元运算符 .......................................................29
2-5-7 二元运算符 .......................................................29
2-5-8 三元运算符 .......................................................30
2-6 算术运算.........................................30
2-6-1 基础算术运算符号 ......................30
2-6-2 负号运算 .....................................32
2-6-3 否运算 .........................................32
2-6-4 运算优先级..................................32
2-6-5 程序代码指令太长的处理 ..........33
2-7 数据形态的转换................................33
2-7-1 基础数据形态的转换 ..................34
2-7-2 整数和字符混合使用 .................35
2-7-3 学生买球鞋..................................36
2-8 C 语言的特殊表达式.........................36
2-8-1 递增和递减表达式 ......................36
2-8-2 设定的特殊表达式 ......................38
2-9 专题实操:圆面积/圆周长/圆周率.....39
2-9-1 圆面积与周长的计算 ..................39
2-9-2 计算圆周率..................................39
2-10 习题.............................................40
第3章 基本的输入与输出
第4章 简易数学函数的使用
第5章 程序的流程控制
第6章.程序的循环设计
6-1 for循环........................................111
6-1-1 单层for循环 ..............................111
6-1-2 for语句应用到无限循环 ...........114
6-1-3 双层或多层for循环 ..................114
6-1-4 for循环指标递减设计 ...............117
6-2 while循环.....................................117
6-2-1 单层while循环 ..........................117
6-2-2 while语句应用到无限循环 ......120
6-2-3 双层或多层while循环 .............120
6-3 do … while循环............................122
6-3-1 单层do … while循环 ...............122
6-3-2 do … while语句的无限循环 ....124
6-3-3 双层或多层do … while循环 ...124
6-4 循环的选择....................................125
6-5 break语句....................................125
6-6 continue语句...............................126
6-7 随机数函数....................................128
6-7-1 rand( )函数 ................................128
6-7-2 srand( )函数 ..............................128
6-7-3 time( )函数 ................................129
6-7-4 建立某区间的随机数 ................130
6-7-5 建立0~1的随机浮点数 ........130
6-8 休息函数.......................................131
6-8-1 sleep( )函数 ..............................131
6-8-2 usleep( )函数.............................131
6-9 专题实操:计算成绩/圆周率/最大公
约数/国王的麦粒...........................131
6-9-1 计算平均成绩和不及格人数 ....131
6-9-2 猜数字游戏................................132
6-9-3 利用辗转相除法求最大
公约数 .......................................133
6-9-4 计算圆周率................................133
6-9-5 鸡兔同笼:使用循环计算 ........134
6-9-6 国王的麦粒 .............................135
6-9-7 离开无限循环与程序结束
Ctrl + C组合键 .........................135
6-9-8 银行账号冻结 ............................136
6-9-9 自由落体 ...................................136
6-10 习题...........................................137
第7章 数组
7-1 一维数组.......................................145
7-1-1 基础概念 ...................................145
7-1-2 认识数组的残值 ........................146
7-1-3 C语言不做数组边界的检查 .....146
7-1-4 一维数组的初值设定 ................147
7-1-5 计算数组所占的内存空间和
数组长度 ...................................148
7-1-6 读取一维数组的输入 ................149
7-1-7 自行设计数组边界检查程序 ....150
7-1-8 一维数组的实例应用 ................150
7-2 二维数组.......................................151
7-2-1 基础概念 ...................................151
7-2-2 二维数组的初值设定 ................152
7-2-3 读取二维数组的输入 ................153
7-2-4 二维数组的实例应用 ................154
7-2-5 二维数组的应用解说 ................154
7-3 更高维的数组.................................155
7-3-1 基础概念 ...................................155
7-3-2 三维或更高维数组的应用解说 ...157
7-4 排序.............................................157
7-4-1 排序的概念与应用 ....................157
7-4-2 排序实操 ...................................158
7-5 专题实操:斐波那契数列/魔术方块....161
7-5-1 斐波那契数列 ............................161
7-5-2 二维数组乘法 ............................162
7-5-3 4 ×4魔术方块 ..........................162
7-5-4 奇数矩阵魔术方块 ....................163
7-5-5 基础统计 ...................................165
7-6 习题.............................................166
第8章 字符串彻底剖析
8-1 由字符组成的一维数组....................173
8-2 比较字符数组和字符串....................173
8-3 完整解说字符串的输出与输入...........176
8-3-1 标准字符串的输出 ....................176
8-3-2 标准字符串的输入 ....................176
8-4 gets( )函数和puts( )函数..............177
8-4-1 gets( )函数 ................................178
8-4-2 puts( )函数 ................................178
8-5 C语言的字符串处理的函数..............179
8-5-1 strcat( )函数 ..............................180
8-5-2 strcmp( )函数 ............................180
8-5-3 strcpy( )函数 .............................181
8-5-4 strlen( )函数 ..............................181
第9章 函数的应用
第10章 C语言前端处理器
第11章 指针
11-1 认识地址.....................................250
11-2 认识指针.....................................252
11-3 使用指针变量...............................252
11-3-1 声明指针变量 ..........................252
11-3-2 从认识到精通“&”和“*”
运算符 ......................................253
11-3-3 指针变量的地址 ......................254
11-3-4 指针变量的长度 ......................256
11-3-5 简单指针实例 ..........................256
11-3-6 指针常发生的错误:指针
没有指向地址 ..........................260
11-3-7 用指针读取输入数据 ..............262
11-3-8 指针的运算 ..............................263
11-3-9 指针数据形态不可变更 ..........264
11-3-10 再谈指针声明方式 ................265
11-3-11 空指针NULL .....................266
11-4 指针与一维数组............................266
11-4-1 认识数组名和数组的地址 ......266
11-4-2 数组名不是指针常数的
场合 .........................................267
11-4-3 数组索引与数组名 ..................268
11-4-4 数组名就是一个指针 ..............269
11-4-5 定义和使用数组指针变量 ......270
11-4-6 移动指针读取输入数组数据...271
11-4-7 使用指针读取和加总数组
元素 .........................................272
11-5 指针与二维数组............................273
11-5-1 认识二维数组的元素地址 ......273
11-5-2 二维数组名是一个指针 ..........275
11-5-3 建立指针遍历二维数组 ..........275
11-5-4 双重指针 ..................................276
11-5-5 双重指针与二维数组 ..............277
11-6 将指针应用在字符串.....................279
11-6-1 认识与建立字符指针 ..............279
11-6-2 字符指针 ..................................280
11-6-3 将指针指向字符串 ..................281
11-7 指针与字符串数组.........................282
11-7-1 字符串数组 ..............................282
11-7-2 二维的字符串数组 ..................283
11-7-3 字符串内容的更改与指针
内容的更改 ..............................283
11-7-4 声明空字符串 ..........................284
11-8 专题实操:4×4魔术方块/奇数魔术
方块...........................................285
11-8-1 使用指针执行数组元素相加...285
11-8-2 使用双重指针输出二维
数组“洪” ................................285
11-8-3 使用指针设计4×4魔术方块 ...286
11-9 习题...........................................287
第12章 指针与函数
第13章 结构struct数据形态
第14章 union、enum和typedef
第15章 测试符号与符号转换函数
第16章 文件的输入与输出
16-1 文件的输入与输出........................352
16-2 认识文本文件与二进制文件............352
16-3 有缓冲区的输入与输出函数............353
16-3-1 fopen( )函数 ............................353
16-3-2 fclose( )函数 ...........................355
16-3-3 putc( )函数 ..............................355
16-3-4 getc( )函数 ..............................356
16-3-5 fprintf( )函数...........................357
16-3-6 fscanf( )函数 ...........................358
16-3-7 feof( )函数 ..............................358
16-3-8 ferror( )函数 ............................359
16-4 有缓冲区的输入与输出应用在二进制
文件...........................................360
16-4-1 fwrite( )函数 ...........................360
16-4-2 fread( )函数.............................360
16-4-3 fseek( )函数 ............................361
16-4-4 rewind( )函数 ..........................362
16-4-5 输出数据到二进制文件 ..........362
16-4-6 读取二进制文件数据 ..............363
16-5 C 语言默认的文件指针..................363
16-6 无缓冲区的输入与输出..................364
16-6-1 open( )函数 .............................365
16-6-2 close( )函数.............................366
16-6-3 read( )函数 ..............................367
16-6-4 creat( )函数 .............................367
16-6-5 write( )函数.............................368
16-7 无缓冲区的输入与输出应用在二进制
文件 ..........................................368
16-8 专题实操:随机读取二进制文件
数据/字符串加密.........................370
16-8-1 随机读取数据的应用 ..............370
16-8-2 lseek( )函数.............................371
16-8-3 字符串加密 ..............................373
16-9 习题...........................................373
第17章 文件与文件夹的管理
17-1 文件的删除..................................377
17-1-1 remove( )函数 .........................377
17-1-2 unlink( )函数 ...........................377
17-2 文件名的更改...............................378
17-3 文件长度计算...............................378
17-4 子文件夹的建立............................379
17-5 删除子文件夹...............................379
17-6 获得目前文件夹路径.....................380
17-7 习题...........................................380
第18章 数据转换函数
18-1 atof( )函数..................................383
18-2 atoi( )函数..................................383
18-3 atol( )函数..................................384
18-4 gcvt( )函数.................................385
18-5 itoa( )函数..................................385
18-6 ltoa( )函数..................................386
18-7 习题...........................................387
第19章 基本位运算
19-1 二进制系统..................................389
19-1-1 十进制转二进制 ......................389
19-1-2 二进制转十进制 ......................389
19-2 位运算基础概念............................390
19-3 & 运算符.....................................391
19-4 | 运算符......................................392
19-5 ^ 运算符......................................393
19-6 ~ 运算符.....................................394
19-7 << 运算符...................................394
19-8 >> 运算符...................................395
19-9 位字段........................................396
19-10 习题.........................................398
第20章 建立项目:适用大型程序
20-1 程序项目的缘由............................401
20-2 基础程序实操...............................401
20-3 模块化程序..................................402
20-4 建立项目与执行............................403
20-5 增加功能的项目............................405
20-6 不同文件的全局变量与extern........406
20-7 习题...........................................407
第21章 基本链表结构
第22章 栈与队列
第23章 二叉树
第24章 C语言迈向C++之路
"《C语言王者归来》语言生动,图片及程序案例丰富,同时附有习题,便于读者巩固重点知识。
本书适合所有对C语言感兴趣的读者阅读,也可以作为院校和培训机构相关专业的教材。"