作者康莉 著
出版社机械工业出版社
出版时间2009-04
版次1
装帧平装
货号959
上书时间2024-11-27
商品详情
- 品相描述:八五品
图书标准信息
-
作者
康莉 著
-
出版社
机械工业出版社
-
出版时间
2009-04
-
版次
1
-
ISBN
9787111266037
-
定价
48.00元
-
装帧
平装
-
开本
16开
-
纸张
胶版纸
-
页数
378页
-
正文语种
简体中文
- 【内容简介】
-
C语言是编程方式灵活多样、功能强大、应用广泛的一种程序设计语言。从程序设计语言的发展历程来看,尽管后来出现了以C++、Java和C#等为代表的新语言,但C语言的基础地位不可撼动。
C语言的核心是结构化的编程思想,本书一共分为四篇,循序渐进地讲述了C语言的语法规则和编程思想,从基本概念到具体实践、从入门知识到高阶主题、从语法语义到数据结构和算法都进行了详细的阐述,并通过实例对具体知识点进行了详细的讲解。
本书的特点是内容全面、翔实,通俗易懂,循序渐进地介绍了C语言各方面的知识,重点突出。本书含有大量实例,代码短小精炼,紧扣所讲要点的本质,以加深读者的印象,同时结合笔者多年使用C语言的经验,阐述了很多代码编写技巧,读者可将代码复制到自己的机器上进行实验,自行实践和演练。
本书适合C语言的初级、中级读者阅读,并可作为开发人员的参考手册。
- 【作者简介】
-
康莉,毕业于西安交通大学管理学院,获得管理科学与工程专业硕士学位。研究方向是信息管理与电子商务。1997年7月至今,任职于陕西省行政学院计算机系,主讲数据库、C语言,管理信息系统、计算机应用基础等。有丰富的开发经验,参与开发过多个网络应用系统。近几年发表的论文
- 【目录】
-
写给未来的程序员
前言
第一篇C语言基础
第1章踏上征程前的思想动员/1
1.1为什么选择C语言/1
1.2如何学好C语言/2
1.3语言概述/3
1.3.1什么是语言/3
1.3.2什么是机器语言/3
1.3.3什么是汇编语言/4
1.3.4面向过程的语言/5
1.3.5什么是C语言/5
1.4程序开发周期/5
1.4.1编辑C源代码/6
1.4.2编译C源代码/6
1.4.3连接目标文件/7
1.4.4编译连接过程示例/7
1.4.5运行程序/8
1.5VC++、C++、C和TC—认识开发环境和语言的区别/8
1.6小结/11
第2章跟我写HelloWorld/12
2.1自己动手创建程序/12
2.2认识LCC-Win32开发环境/12
2.2.1为什么选择LCC-Win32/13
2.2.2启动LCC-Win32/13
2.2.3新建HelloWorld工程/13
2.2.4定义新工程/14
2.2.5添加源代码到工程/15
2.2.6编译器设置/15
2.2.7连接器设置/15
2.2.8调试器设置/16
2.2.9开始编辑代码/16
2.3编译运行—欣赏您的杰作/17
2.4查看代码如何一步一步被执行—调试排错(debug)/18
2.4.1debug一词的由来/18
2.4.2设置断点/19
2.4.3调试运行/19
2.5小结/20
第3章分解HelloWorld—最简单C程序的组成/21
3.1C程序概貌/21
3.2程序员的解释—注释/21
3.3从哪里开始,到哪里结束—main函数/23
3.4如何在屏幕上显示文字—函数调用/24
3.5编译器如何认识printf函数—#include预处理器指示符/25
3.5.1函数声明及其作用/25
3.5.2试验寻找#include的作用/26
3.5.3#include的作用/27
3.6计算1+1—有些小作为的程序/27
3.7数据从哪里来,又到哪里去—变量/28
3.7.1变量在内存中的表现形式/28
3.7.2编译器使用变量符号表/29
3.7.3变量及其使用/30
3.8自己设计C函数/31
3.8.1在main函数中计算3个整数的平均数/31
3.8.2在main函数中分3次计算3个整数的平均数/32
3.8.3自编函数实现计算3个整数的平均数/32
3.8.4如何自编写函数/33
3.8.5试验观察总结函数声明和函数定义的意义/34
3.9语句构成程序/35
3.10向好程序员看齐—代码风格/36
3.11小结/36
第4章如何存储和获取数据—变量及数据类型/37
4.1二进制、八进制、十六进制/37
4.2计算机中如何表示数据—字节和位/38
4.3内存是存储数据的“房间”—认识计算机内存/39
4.4数据类型/40
4.4.1整数类型/41
4.4.2整数的正负—有符号和无符号/42
4.4.3实数类型/44
4.4.4字符类型/45
4.4.5数据类型总结/45
4.5常量/46
4.5.1直接常量(字面常量)和符号常量/46
4.5.2符号常量的优点/48
4.5.3字面常量的书写格式/48
4.5.4转义字符/50
4.5.5字符串/51
4.6变量/52
4.6.1变量的声明/52
4.6.2变量声明的意义/53
4.6.3标识符和关键字/54
4.6.4变量在内存中占据的空间和变量的值/56
4.6.5变量赋初值/59
4.7几个与变量相关的经典算法/60
4.7.1累加和累乘/60
4.7.2交换两个变量的值/62
4.8小结/63
第5章用屏幕和键盘交互—简单的输出和输入/64
5.1输入—处理—输出:这就是程序/64
5.2向屏幕输出—printf函数详解/64
5.2.1printf函数的一般形式/65
5.2.2格式字符串的一般形式/67
5.2.3%d—十进制形式输出带符号整数/67
5.2.4%最小宽度d格式符/68
5.2.5%ld格式符—以长整型方式输出/68
5.2.6%o格式符—以八进制形式输出整数/69
5.2.7%x格式符—以十六进制的形式输出整数/69
5.2.8%u格式符—以十进制形式输出unsigned型数据/70
5.2.9%c格式符/70
5.2.10%s格式符—输出字符串/71
5.2.11%f格式符—输出实型数据/74
5.2.12%e格式符—以指数形式输出实数/75
5.2.13%g格式符—自动选择%f或者%e形式输出/76
5.2.14printf函数小结/76
5.3字符输出putchar和字符串输出puts/76
5.3.1putchar函数(字符输出函数)/77
5.3.2puts函数(字符串输出函数)/78
5.4接收键盘输入—scanf函数详解/79
5.4.1一般形式/80
5.4.2scanf函数的工作原理/80
5.4.3多数据输入分隔规则/82
5.4.4格式字符/83
5.4.5scanf使用方法说明/84
5.4.6使用scanf函数的注意事项/87
5.5字符输入函数getchar/89
5.6输入输出程序举例/89
5.7小结/92
第6章程序的基本构成—运算符和表达式/93
6.1认识C中的运算符和表达式/93
6.1.1认识运算符和表达式/93
6.1.2操作数、运算符和表达式/94
6.1.3C运算符简介/94
6.2算术运算符和算术表达式/95
6.2.1基本的算术运算符/95
6.2.2++自增、——自减运算符/96
6.2.3算术表达式和运算符的优先级及结合性/99
6.3逗号运算符和逗号表达式/100
6.3.1逗号表达式的一般形式/100
6.3.2逗号表达式的优先级和结合性/100
6.4关系运算符和关系表达式/102
6.4.1关系运算符的种类/102
6.4.2关系表达式的一般形式/102
6.5逻辑运算符和逻辑表达式/103
6.5.1逻辑运算符/103
6.5.2逻辑真值表/104
6.6赋值运算符和赋值表达式/105
6.6.1赋值表达式/105
6.6.2复合赋值运算符/105
6.6.3类型转换/106
6.6.4左值与程序实体/106
6.7强制类型转换和自动类型转换/107
6.7.1强制类型转换/107
6.7.2自动类型转换/108
6.7.3函数调用时的转换/109
6.8运算符的优先级/109
6.8.1优先级、结合性汇总/110
6.8.2短路表达式/110
6.8.3sizeof运算符与sizeof表达式/111
6.9小结/111
第7章程序的最小独立单元—语句/112
7.15种语句类型/112
7.1.1表达式语句/112
7.1.2函数调用语句/113
7.1.3空语句/113
7.1.4复合语句(块语句)/113
7.1.5流程控制语句/114
7.2结构化程序设计/114
7.2.1什么是算法/114
7.2.2算法的表示/114
7.2.3算法的伪代码表示/115
7.2.4算法的流程图表示/115
7.2.53种控制结构/115
7.2.6算法示例/116
7.3小结/117
第8章条件判断—分支结构/118
8.1简单的条件判断—if语句/118
8.1.1判断表达式/118
8.1.2花括号和if结构体/119
8.2两条岔路的选择—ifelse结构/120
8.2.1关键在else/120
8.2.2ifelse结构体/121
8.3多分支语句和分支语句嵌套/122
8.3.1多分支/122
8.3.2多分支if结构/124
8.3.3分支语句嵌套/125
8.4开关语句—switch结构/126
8.4.1一般形式/126
8.4.2为什么叫开关语句/128
8.4.3default语句/130
8.4.4if结构和switch结构之比较/130
8.5小结/130
第9章一遍又一遍—循环结构/131
9.1构造循环/131
9.1.1循环的条件/131
9.1.2当型循环和直到型循环/132
9.2简洁循环语句—while和dowhile结构/132
9.2.1语法规则/133
9.2.2代码块/133
9.3最常用的循环语句—for结构/134
9.3.1基本形式/134
9.3.2表达式省略/136
9.3.3循环终止和步长/137
9.4循环嵌套/137
9.4.1嵌套示例/137
9.4.2嵌套的效率/138
9.5与循环密切相关的流程转向控制语句/139
9.5.1跳出循环—break/139
9.5.2重来一次—continue/140
9.5.3随心所欲—goto/140
9.6小结/141
第二篇一窥C语言门庭
第10章写程序就是写函数—函数入门/143
10.1什么是函数—根据输入进行处理返回输出/143
10.1.1分割/143
10.1.2库函数和自定义函数/144
10.2自定义函数/144
10.2.1定义的语法/144
10.2.2函数定义范例/145
10.2.3不要重复定义/146
10.3函数调用与返回/146
10.3.1形参和实参/146
10.3.2传址调用/147
10.3.3函数返回/149
10.4告诉编译器有这么一个函数—函数原型声明/149
10.4.1函数声明的语法/150
10.4.2声明不同于定义/151
10.4.3标准库函数的声明/152
10.5面向过程的程序结构/152
10.5.1模块化/152
10.5.2函数的调用过程—模块的配合/152
10.5.3一个入口一个出口/153
10.5.4自顶向下,逐步求精/153
10.5.5封装和可重用/153
10.5.6高内聚,低耦合/154
10.6小结/154
第11章同一类型多个元素的集合—简单数组/155
11.1什么是数组/155
11.1.1数组是一大片连续内存空间/155
11.1.2数组元素的访问/156
11.2一维数组/156
11.2.1一维数组的声明/156
11.2.2一维数组元素的访问/156
11.2.3数组的初始化/157
11.2.4不合法的数组操作/158
11.3二维数组/159
11.3.1二维数组的声明/159
11.3.2二维数组的初始化/159
11.3.3二维数组应用举例/160
11.4更高维的数组/161
11.4.1高维数组的声明和元素访问/161
11.4.2初始化/161
11.4.3多维数组在内存中是如何排列元素的/162
11.5小结/163
第12章C语言难点—指针初探/164
12.1计算机中的内存/164
12.1.1内存地址/164
12.1.2内存中保存的内容/164
12.1.3地址就是指针/165
12.2指针的定义/165
12.2.1指针变量的声明/165
12.2.2指针变量的初始化/166
12.2.3指针变量的值/166
12.2.4取地址操作符&/166
12.2.5指针变量占据一定的内存空间/166
12.2.6指向指针的指针/167
12.3使用指针/168
12.3.1运算符*/168
12.3.2指针的类型和指针所指向的类型/169
12.3.3同类型指针的赋值/169
12.3.4指针的类型和指针所指向的类型不同/170
12.4指针的运算/172
12.4.1算术运算之“指针+整数”或“指针-整数”/172
12.4.2指针-指针/173
12.4.3指针的大小比较/174
12.5指针表达式与左值/174
12.5.1指针与整型/175
12.5.2指针与左值/175
12.5.3指针与const/175
12.6动态内存分配/176
12.6.1动态分配的好处/177
12.6.2malloc与free函数/177
12.6.3calloc与free函数/178
12.6.4free函数与指针/179
12.6.5内存泄漏/180
12.6.6释放已经释放了的内存会出问题/180
12.7小结/180
第13章字符串及字符串操作/181
13.1C风格字符串/181
13.1.1C风格字符串的声明/181
13.1.2C风格字符串在内存中的表示/181
13.2字符数组的输入输出/182
13.2.1字符数组可以进行整体输入输出/182
13.2.2使用gets函数读入整行输入/183
13.2.3访问字符数组中某个元素/184
13.2.4更便捷的输出—使用puts函数/184
13.3字符串处理函数/185
13.3.1理解:数组名是常指针/185
13.3.2strlen函数与size_t/187
13.3.3字符串复制函数strcpy/188
13.3.4字符串比较函数strcmp/189
13.3.5字符串连接函数strcat/190
13.3.6全转换为大写形式/190
13.3.7链式操作/191
13.4小结/192
第14章结构体、共用体、枚举和typedef/193
14.1结构体/193
14.1.1结构体的定义/193
14.1.2声明结构体变量/194
14.1.3初始化结构变量/194
14.1.4访问结构体成员/194
14.1.5结构体定义的位置/195
14.1.6结构体变量赋值/196
14.2特殊结构体/196
14.2.1结构体嵌套/197
14.2.2匿名结构体/200
14.3共用体/200
14.3.1什么是共用体/200
14.3.2共用体的定义/200
14.3.3声明共用体变量/201
14.3.4共用体变量的初始化/201
14.3.5共用体成员访问/201
14.3.6共用体赋值/202
14.4结构体和共用体的内存差异/202
14.4.1结构体变量和共用体变量内存形式的不同/203
14.4.2结构体变量的内存大小/203
14.4.3字节对齐/204
14.4.4最宽基本类型/204
14.4.5共用体的大小/206
14.5枚举类型/206
14.5.1枚举类型的定义/206
14.5.2声明枚举变量/207
14.5.3枚举常量是什么/207
14.6给类型取个别名—typedef/208
14.6.1typedef基本用法/208
14.6.2#define用法/208
14.7小结/208
第15章如何节省内存—位运算/209
15.1什么是位运算/209
15.1.1开灯关灯/209
15.1.2改变状态/209
15.2位逻辑运算符/210
15.2.1位取反操作/210
15.2.2位与运算/210
15.2.3位或运算/210
15.2.4位异或/210
15.2.5实例分析/211
15.3移位运算/212
15.3.1基本形式/212
15.3.2移位举例/212
15.4小结/213
第三篇C语言进阶
第16章存储不仅仅局限于内存—文件/215
16.1什么是文件/215
16.1.1文件/215
16.1.2流/216
16.1.3重定向/216
16.1.4文件的处理形式—缓冲区和非缓冲区/216
16.1.5文件的存储形式—文本形式和二进制形式/217
16.2C语言如何使用文件/217
16.2.1文件型指针/217
16.2.2文件操作的步骤/218
16.3文件的打开与关闭/218
16.3.1打开文件—fopen/218
16.3.2打开是否成功/219
16.3.3关闭文件—fclose/219
16.4文件的读写/220
16.4.1读写的相对参照/220
16.4.2如何判断文件已经结束/220
16.4.3字符读写函数—fgetc和fputc/220
16.4.4字符串读写函数—fgets和fputs/222
16.4.5块读写函数—fread和fwrite/224
16.4.6格式化文件输入输出—fprintf与fscanf/227
16.5文件的定位/229
16.5.1移到开头—rewind/229
16.5.2得到当前位置—ftell/229
16.5.3移动指针—fseek/229
16.6小结/230
第17章灵活却难以理解—指针进阶/232
17.1指针与数组/232
17.1.1数组名指针/232
17.1.2使用数组名常指针表示数组元素/233
17.1.3指向数组元素的指针变量/233
17.1.4指向数组的指针变量/234
17.1.5指针数组/235
17.2指针、结构体和结构体数组/236
17.2.1两种访问形式/236
17.2.2声明创建一个结构数组/236
17.2.3结构数组的初始化/236
17.2.4结构数组的使用/238
17.2.5指向结构数组的指针/238
17.3函数指针/239
17.3.1函数名指针/239
17.3.2指向函数的指针/240
17.3.3函数指针类型/241
17.3.4函数指针作函数参数/242
17.3.5函数指针数组/243
17.3.6指向函数指针的指针/244
17.4小结/245
第18章更深入的理解—函数进阶/247
18.1参数传递的副本机制/247
18.1.1传值调用的副本机制/247
18.1.2传址调用的副本机制/248
18.2函数返回值的副本机制/250
18.2.1return局部变量为什么合法/251
18.2.2返回指针申请动态内存/251
18.2.3不要返回指向栈内存的指针/252
18.2.4返回指向只读存储区的指针/253
18.3函数与结构体/253
18.3.1结构体变量的传值和传址调用/253
18.3.2结构体变量的成员作为函数参数/254
18.3.3返回结构体的函数/255
18.3.4返回结构体指针的函数/256
18.4函数与数组/256
18.4.1数组元素作为函数参数/257
18.4.2数组名作为函数参数/257
18.4.3多维数组名作为函数参数/259
18.4.4数组名作为函数参数时的退化/260
18.5递归/261
18.5.1递归流程/261
18.5.2递归两要素/262
18.5.3效率与可读性/262
18.6带参数的主函数/262
18.7小结/263
第19章生存期、作用域与可见域/264
19.1内存分配/264
19.1.1内存分区/264
19.1.2变量的存储类别/265
19.1.3生存期/265
19.1.4作用域与可见域/265
19.2auto变量/266
19.2.1定义格式/266
19.2.2作用域和生存期/266
19.2.3屏蔽/267
19.2.4重复定义/268
19.2.5初始化/269
19.3register变量/269
19.3.1定义格式/269
19.3.2使用举例/269
19.4extern变量/270
19.4.1全局变量定义/270
19.4.2全局变量声明/271
19.4.3可见域/272
19.4.4屏蔽/273
19.4.5利与弊/275
19.5static变量/275
19.5.1定义格式/275
19.5.2静态局部变量/276
19.5.3静态全局变量/277
19.5.4extern变量和static变量的初始化/278
19.6函数的作用域与可见域/278
19.6.1内部函数/278
19.6.2外部函数/279
19.7结构体定义的作用域与可见域/280
19.7.1定义位置与可见域/280
19.7.2允许重复定义/280
19.8小结/281
第20章编译及预处理/282
20.1编译流程/282
20.1.1编辑/282
20.1.2预处理/282
20.1.3编译/283
20.1.4连接/283
20.2程序错误/283
20.2.1错误分类/284
20.2.2编译错误/284
20.2.3连接错误/284
20.2.4逻辑错误/284
20.2.5排错/285
20.3预处理命令之宏定义/285
20.3.1宏定义/285
20.3.2不带参数的宏定义/285
20.3.3带参数的宏定义/287
20.3.4#define定义常量与const常量/289
20.3.5文件包含/290
20.3.6条件编译/291
20.4小结/292
第21章数据结构/293
21.1链表/293
21.1.1链表的结构/293
21.1.2创建链表并遍历输出/294
21.1.3链表的插入/296
21.1.4链表结点的删除/299
21.1.5链表的逆置/301
21.1.6链表的销毁/302
21.1.7综合实例/303
21.1.8循环链表/308
21.1.9双链表/308
21.2栈和队列/312
21.2.1栈的定义/312
21.2.2栈的分类/312
21.2.3栈的操作/312
21.2.4函数与栈/315
21.2.5队列/315
21.3小结/318
第四篇C语言程序设计实例
第22章C语言程序课程设计:游戏/319
22.1黑白棋/319
22.1.1程序功能要求/319
22.1.2输入输出样例/319
22.1.3程序分析/319
22.1.4程序初始化/320
22.1.5初始化图形设备/321
22.1.6绘制棋盘/321
22.1.7交替绘制黑白棋/322
22.1.8游戏(同时判断是否有一方胜利)/322
22.1.9小结/336
22.2五子棋/337
22.2.1程序功能要求/337
22.2.2输入输出样例/337
22.2.3程序分析/337
22.2.4主函数程序设计/339
22.2.5系统初始化/340
22.2.6移动棋子模块/340
22.2.7程序胜负判定/344
22.2.8小结/348
22.3扫雷游戏/348
22.3.1程序功能要求/348
22.3.2输入输出样例/348
22.3.3程序分析/348
22.3.4程序设计/351
22.3.5初始化图形设备/353
22.3.6事件处理模块/355
22.3.7游戏处理部分/360
22.3.8小结/363
22.4速算24/363
22.4.1程序功能要求/363
22.4.2输入输出样例/363
22.4.3程序分析/364
22.4.4程序设计/365
22.4.5扑克牌处理部分/367
22.4.6程序运算部分/369
22.4.7小结/371
22.5病毒检测与清除/371
22.5.1程序功能要求/371
22.5.2程序分析/372
22.5.3程序设计/372
22.5.4小结/376
附录ASCII编码表/377
点击展开
点击收起
— 没有更多了 —
以下为对购买帮助不大的评价