网上购物 货比三家
您现在的位置:快乐比价网 > 图书 > 计算机与网络 > 程序设计 > 商品详情

零基础学C语言(第2版)(预订中,估价)

分享到:
零基础学C语言(第2版)(预订中,估价)

最 低 价:¥44.25

定 价:¥59.00

作 者:康莉

出 版 社:机械工业出版社

出版时间:2012 年3月

I S B N:9787894333124

商品详情

编辑推荐

内容简介

《零基础学c语言(第2版)》站在零基础学习的角度,使初学者能尽快掌握c语言程序设计的精髓,并且少走弯路。在知识点讲解时,笔者采用由浅入深的逐级递进学习方式。本书一共分为4篇,循序渐进地讲述了c语言的语法规则和编程思想,从基本概念到具体实践、从入门知识到高阶主题、从语法语义到数据结构和算法都进行了详细的阐述。主要内容包括数据的存储和获取、屏幕的输入与输出、运算符、表达式、分支语句、循环语句、函数、数组、指针、字符串处理、结构体、共用体、枚举、位运算、文件处理、作用域、预处理、数据结构等知识点。最后一章通过一些常见的c语言面试题的解析,为读者踏入职场提供参考资料。
  《零基础学c语言(第2版)》非常适合无c语言基础或基础薄弱的程序员阅读,并可作为开发人员的参考手册。

作者简介

目录

《零基础学c语言(第2版)》
前言
第一篇 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 面向过程的语言4
1.3.5 什么是c语言4
1.4 深刻认识程序如何开发出来—程序开发周期5
1.4.1 编辑c源代码6
1.4.2 编译c源代码6
1.4.3 连接目标文件7
1.4.4 编译连接过程示例7
1.4.5 运行程序9
1.5 vc++、c++、c和tc—认识开发环境和语言的区别9
1.6 小结11
.1.7 上机实践11
第2章 跟我写hello world12
2.1 自己动手创建程序12
2.2 认识lcc-win32开发环境12
2.2.1 为什么选择lcc-win3213
2.2.2 启动lcc-win3213
2.2.3 新建hello world工程13
2.2.4 定义新工程13
2.2.5 添加源代码到工程14
2.2.6 编译器设置15
2.2.7 连接器设置15
2.2.8 调试器设置15
2.2.9 开始编辑代码16
2.3 编译运行—欣赏你的杰作17
2.4 查看代码如何一步一步被执行—调试排错(debug)18
2.4.1 debug一词的由来18
2.4.2 设置断点19
2.4.3 调试运行19
2.5 小结20
2.6 上机实践20
第3章 分解helloworld—最简单c程序的组成22
3.1 c程序概貌22
3.2 为何有必要在代码里留下程序员的解释—注释23
3.3 从哪里开始,到哪里结束—main函数24
3.4 如何在屏幕上显示文字—函数调用25
3.5 编译器如何认识printf函数—#include预处理器指示符26
3.5.1 函数声明及其作用26
3.5.2 试验寻找#include的作用27
3.5.3 #include的作用28
3.6 计算1+1—有些小作为的程序29
3.7 数据从哪里来,又到哪里去—变量30
3.7.1 变量在内存中的表现形式30
3.7.2 编译器使用变量符号表30
3.7.3 变量及其使用31
3.8 自己设计c函数32
3.8.1 在main函数中计算3个整数的平均数33
3.8.2 在main函数中分3次计算3个整数的平均数33
3.8.3 自编函数实现计算3个整数的平均数34
3.8.4 如何自编写函数35
3.8.5 试验观察总结函数声明和函数定义的意义36
3.9 语句构成程序37
3.10 向好程序员看齐—代码风格38
3.11 小结38
3.12 上机实践38
第4章 如何存储和获取数据—变量及数据类型40
4.1 二进制、八进制、十六进制40
4.2 计算机中如何表示数据—字节和位41
4.3 内存是存储数据的“房间”—认识计算机内存43
4.4 数据类型43
4.4.1 整数类型44
4.4.2 整数的正负—有符号和无符号46
4.4.3 实数类型47
4.4.4 字符类型48
4.4.5 数据类型总结48
4.5 常量49
4.5.1 直接常量(字面常量)和符号常量49
4.5.2 符号常量的优点51
4.5.3 字面常量的书写格式52
4.5.4 转义字符53
4.5.5 字符串55
4.6 变量55
4.6.1 变量的声明56
4.6.2 变量声明的意义56
4.6.3 标识符和关键字57
4.6.4 变量在内存中占据的空间和变量的值60
4.6.5 变量赋初值62
4.7 几个与变量相关的经典算法63
4.7.1 累加和累乘63
4.7.2 交换两个变量的值65
4.8 小结66
4.9 上机实践66
第5章 用屏幕和键盘交互—简单的输出和输入68
5.1 输入—处理—输出:这就是程序68
5.2 向屏幕输出—printf函数详解68
5.2.1 printf函数的一般形式69
5.2.2 格式字符串的一般形式71
5.2.3 %d—十进制形式输出带符号整数71
5.2.4 %最小宽度d格式符72
5.2.5 %ld格式符—以长整型方式输出73
5.2.6 %o格式符—以八进制形式输出整数73
5.2.7 %x格式符—以十六进制的形式输出整数74
5.2.8 %u格式符—以十进制形式输出unsigned型数据74
5.2.9 %c格式符75
5.2.10 %s格式符—输出字符串76
5.2.11 %f格式符—输出实型数据78
5.2.12 %e格式符—以指数形式输出实数79
5.2.13 %g格式符—自动选择%f或者%e形式输出80
5.2.14 printf函数小结80
5.3 字符输出putchar和字符串输出puts81
5.3.1 putchar函数(字符输出函数)81
5.3.2 puts函数(字符串输出函数)83
5.4 接收键盘输入—scanf函数详解84
5.4.1 一般形式84
5.4.2 scanf函数的工作原理85
5.4.3 多数据输入分隔规则86
5.4.4 格式字符88
5.4.5 scanf使用方法说明89
5.4.6 使用scanf函数的注意事项91
5.5 字符输入函数getchar93
5.6 输入输出程序举例94
5.7 小结97
5.8 上机实践97
第6章 程序的基本构成—运算符和表达式98
6.1 认识c中的运算符和表达式98
6.1.1 认识运算符和表达式98
6.1.2 操作数、运算符和表达式99
6.1.3 c运算符简介99
6.2 算术运算符和算术表达式100
6.2.1 基本的算术运算符100
6.2.2 ++自增、--自减运算符102
6.2.3 算术表达式和运算符的优先级及结合性104
6.3 逗号运算符和逗号表达式105
6.3.1 逗号表达式的一般形式105
6.3.2 逗号表达式的优先级和结合性106
6.4 关系运算符和关系表达式107
6.4.1 关系运算符的种类107
6.4.2 关系表达式的一般形式107
6.5 逻辑运算符和逻辑表达式109
6.5.1 逻辑运算符109
6.5.2 逻辑真值表109
6.6 赋值运算符和赋值表达式110
6.6.1 赋值表达式110
6.6.2 复合赋值运算符111
6.6.3 类型转换111
6.6.4 左值与程序实体112
6.7 强制类型转换和自动类型转换112
6.7.1 强制类型转换112
6.7.2 自动类型转换113
6.7.3 函数调用时的转换115
6.8 运算符的优先级115
6.8.1 优先级、结合性汇总115
6.8.2 短路表达式116
6.8.3 sizeof运算符与sizeof表达式116
6.9 小结116
6.10 上机实践117
第7章 程序的最小独立单元—语句118
7.1 5种语句类型118
7.1.1 表达式语句118
7.1.2 函数调用语句119
7.1.3 空语句119
7.1.4 复合语句(块语句)119
7.1.5 流程控制语句120
7.2 结构化程序设计120
7.2.1 什么是算法120
7.2.2 算法的表示120
7.2.3 算法的伪代码表示121
7.2.4 算法的流程图表示121
7.2.5 3种控制结构121
7.2.6 算法示例122
7.3 小结122
7.4 上机实践122
第8章 条件判断—分支结构123
8.1 简单的条件判断—if语句123
8.1.1 判断表达式123
8.1.2 花括号和if结构体124
8.2 两条岔路的选择—if else结构125
8.2.1 关键在else125
8.2.2 if else结构体126
8.3 多分支语句和分支语句嵌套127
8.3.1 多分支127
8.3.2 多分支if结构128
8.3.3 分支语句嵌套130
8.4 开关语句—switch结构131
8.4.1 一般形式131
8.4.2 为什么叫开关语句133
8.4.3 default语句135
8.4.4 if结构和switch结构之比较135
8.5 小结135
8.6 上机实践135
第9章 一遍又一遍—循环结构137
9.1 构造循环137
9.1.1 循环的条件137
9.1.2 当型循环和直到型循环138
9.2 简洁循环语句—while和do while结构138
9.2.1 语法规则139
9.2.2 代码块140
9.3 最常用的循环语句—for结构140
9.3.1 基本形式140
9.3.2 表达式省略142
9.3.3 循环终止和步长143
9.4 循环嵌套143
9.4.1 嵌套示例144
9.4.2 嵌套的效率144
9.5 与循环密切相关的流程转向控制语句145
9.5.1 跳出循环—break145
9.5.2 重来一次—continue146
9.5.3 随心所欲—goto147
9.6 小结148
9.7 上机实践148
第二篇 一窥c语言门庭
第10章 写程序就是写函数—函数入门149
10.1 什么是函数—根据输入进行处理返回输出149
10.1.1 分割149
10.1.2 库函数和自定义函数150
10.2 自定义函数150
10.2.1 定义的语法150
10.2.2 函数定义范例151
10.2.3 不要重复定义152
10.3 函数调用与返回152
10.3.1 形参和实参152
10.3.2 传址调用154
10.3.3 函数返回155
10.4 告诉编译器有这么一个函数—函数原型声明156
10.4.1 函数声明的语法156
10.4.2 声明不同于定义158
10.4.3 标准库函数的声明158
10.5 面向过程的程序结构158
10.5.1 模块化159
10.5.2 函数的调用过程—模块的配合159
10.5.3 一个入口一个出口159
10.5.4 自顶向下,逐步求精159
10.5.5 封装和可重用160
10.5.6 高内聚,低耦合160
10.6 小结160
10.7 上机实践161
第11章 同一类型多个元素的集合—简单数组162
11.1 什么是数组162
11.1.1 数组是一大片连续内存空间162
11.1.2 数组元素的访问163
11.2 一维数组163
11.2.1 一维数组的声明163
11.2.2 一维数组元素的访问164
11.2.3 数组的初始化164
11.2.4 不合法的数组操作165
11.3 二维数组166
11.3.1 二维数组的声明166
11.3.2 二维数组的初始化167
11.3.3 二维数组应用举例167
11.4 更高维的数组168
11.4.1 高维数组的声明和元素访问169
11.4.2 初始化169
11.4.3 多维数组在内存中是如何排列元素的170
11.5 小结170
11.6 上机实践171
第12章 c语言难点—指针初探172
12.1 计算机中的内存172
12.1.1 内存地址172
12.1.2 内存中保存的内容173
12.1.3 地址就是指针173
12.2 指针的定义173
12.2.1 指针变量的声明174
12.2.2 指针变量的初始化174
12.2.3 指针变量的值174
12.2.4 取地址操作符&175
12.2.5 指针变量占据一定的内存空间175
12.2.6 指向指针的指针176
12.3 使用指针176
12.3.1 运算符*176
12.3.2 指针的类型和指针所指向的类型177
12.3.3 同类型指针的赋值178
12.3.4 指针的类型和指针所指向的类型不同178
12.4 指针的运算180
12.4.1 算术运算之“指针+整数”或“指针-整数”180
12.4.2 指针-指针181
12.4.3 指针的大小比较182
12.5 指针表达式与左值183
12.5.1 指针与整型183
12.5.2 指针与左值183
12.5.3 指针与const183
12.6 动态内存分配185
12.6.1 动态分配的好处185
12.6.2 malloc与free函数185
12.6.3 calloc与free函数187
12.6.4 free函数与指针187
12.6.5 内存泄漏188
12.6.6 释放已经释放了的内存会出问题188
12.7 小结189
12.8 上机实践189
第13章 字符串及字符串操作190
13.1 c风格字符串190
13.1.1 c风格字符串的声明190
13.1.2 c风格字符串在内存中的表示190
13.2 字符数组的输入输出191
13.2.1 字符数组可以进行整体输入输出191
13.2.2 使用gets函数读入整行输入192
13.2.3 访问字符数组中某个元素193
13.2.4 更便捷的输出—使用puts函数193
13.3 字符串处理函数194
13.3.1 理解:数组名是常指针194
13.3.2 strlen函数与size_t196
13.3.3 字符串复制函数strcpy197
13.3.4 字符串比较函数strcmp198
13.3.5 字符串连接函数strcat199
13.3.6 全转换为大写形式200
13.3.7 链式操作201
13.4 小结201
13.5 上机实践201
第14章 结构体、共用体、枚举和typedef203
14.1 结构体203
14.1.1 结构体的定义203
14.1.2 声明结构体变量204
14.1.3 初始化结构变量204
14.1.4 访问结构体成员205
14.1.5 结构体定义的位置205
14.1.6 结构体变量赋值206
14.2 特殊结构体207
14.2.1 结构体嵌套207
14.2.2 匿名结构体210
14.3 共用体210
14.3.1 什么是共用体210
14.3.2 共用体的定义210
14.3.3 声明共用体变量211
14.3.4 共用体变量的初始化211
14.3.5 共用体成员访问211
14.3.6 共用体赋值213
14.4 结构体和共用体的内存差异213
14.4.1 结构体变量和共用体变量内存形式的不同213
14.4.2 结构体变量的内存大小213
14.4.3 字节对齐214
14.4.4 最宽基本类型215
14.4.5 共用体的大小216
14.5 枚举类型216
14.5.1 枚举类型的定义216
14.5.2 声明枚举变量217
14.5.3 枚举常量是什么217
14.6 给类型取个别名—typedef218
14.6.1 typedef基本用法218
14.6.2 #define用法218
14.7 小结219
14.8 上机实践219
第15章 如何节省内存—位运算220
15.1 什么是位运算220
15.1.1 开灯关灯220
15.1.2 改变状态220
15.2 位逻辑运算符221
15.2.1 位取反操作221
15.2.2 位与运算221
15.2.3 位或运算221
15.2.4 位异或221
15.2.5 实例分析222
15.3 移位运算223
15.3.1 基本形式223
15.3.2 移位举例223
15.4 小结224
15.5 上机实践224
第三篇 c语言进阶
第16章 存储不仅仅局限于内存—文件227
16.1 什么是文件227
16.1.1 文件227
16.1.2 流228
16.1.3 重定向228
16.1.4 文件的处理形式—缓冲区和非缓冲区228
16.1.5 文件的存储形式—文本形式和二进制形式229
16.2 c语言如何使用文件229
16.2.1 文件型指针229
16.2.2 文件操作的步骤230
16.3 文件的打开与关闭230
16.3.1 打开文件—fopen230
16.3.2 打开是否成功231
16.3.3 关闭文件—fclose232
16.4 文件的读写232
16.4.1 读写的相对参照232
16.4.2 如何判断文件已经结束232
16.4.3 字符读写函数—fgetc和fputc233
16.4.4 字符串读写函数—fgets和fputs234
16.4.5 块读写函数—fread和fwrite236
16.4.6 格式化文件输入输出—fprintf与fscanf239
16.5 文件的定位241
16.5.1 移到开头—rewind241
16.5.2 得到当前位置—ftell242
16.5.3 移动指针—fseek242
16.6 小结243
16.7 上机实践243
第17章 灵活却难以理解—指针进阶245
17.1 指针与数组245
17.1.1 数组名指针245
17.1.2 使用数组名常指针表示数组元素246
17.1.3 指向数组元素的指针变量246
17.1.4 指向数组的指针变量247
17.1.5 指针数组248
17.2 指针、结构体和结构体数组249
17.2.1 两种访问形式249
17.2.2 声明创建一个结构数组249
17.2.3 结构数组的初始化250
17.2.4 结构数组的使用251
17.2.5 指向结构数组的指针251
17.3 函数指针252
17.3.1 函数名指针252
17.3.2 指向函数的指针253
17.3.3 函数指针类型254
17.3.4 函数指针做函数参数256
17.3.5 函数指针数组256
17.3.6 指向函数指针的指针258
17.4 小结258
17.5 上机实践258
第18章 更深入的理解—函数进阶260
18.1 参数传递的副本机制260
18.1.1 传值调用的副本机制260
18.1.2 传址调用的副本机制261
18.2 函数返回值的副本机制264
18.2.1 return局部变量为什么合法264
18.2.2 返回指针申请动态内存265
18.2.3 不要返回指向栈内存的指针266
18.2.4 返回指向只读存储区的指针266
18.3 函数与结构体267
18.3.1 结构体变量的传值和传址调用267
18.3.2 结构体变量的成员作为函数参数268
18.3.3 返回结构体的函数269
18.3.4 返回结构体指针的函数270
18.4 函数与数组270
18.4.1 数组元素作为函数参数270
18.4.2 数组名作为函数参数271
18.4.3 多维数组名作为函数参数273
18.4.4 数组名作为函数参数时的退化274
18.5 递归274
18.5.1 递归流程274
18.5.2 递归两要素276
18.5.3 效率与可读性276
18.6 带参数的主函数276
18.7 小结277
18.8 上机实践277
第19章 生存期、作用域与可见域279
19.1 内存分配279
19.1.1 内存分区279
19.1.2 变量的存储类别280
19.1.3 生存期280
19.1.4 作用域与可见域280
19.2 auto变量281
19.2.1 定义格式281
19.2.2 作用域和生存期282
19.2.3 屏蔽282
19.2.4 重复定义283
19.2.5 初始化284
19.3 register变量284
19.3.1 定义格式284
19.3.2 使用举例285
19.4 extern变量286
19.4.1 全局变量定义286
19.4.2 全局变量声明286
19.4.3 可见域287
19.4.4 屏蔽289
19.4.5 利与弊290
19.5 static变量291
19.5.1 定义格式291
19.5.2 静态局部变量291
19.5.3 静态全局变量292
19.5.4 extern变量和static变量的初始化293
19.6 函数的作用域与可见域294
19.6.1 内部函数294
19.6.2 外部函数295
19.7 结构体定义的作用域与可见域295
19.7.1 定义位置与可见域295
19.7.2 允许重复定义296
19.8 小结297
19.9 上机实践297
第20章 编译及预处理299
20.1 编译流程299
20.1.1 编辑299
20.1.2 预处理300
20.1.3 编译300
20.1.4 连接300
20.2 程序错误301
20.2.1 错误分类301
20.2.2 编译错误301
20.2.3 连接错误301
20.2.4 逻辑错误302
20.2.5 排错302
20.3 预处理命令之宏定义302
20.3.1 宏定义302
20.3.2 不带参数的宏定义303
20.3.3 带参数的宏定义304
20.3.4 #define定义常量与const常量307
20.3.5 文件包含307
20.3.6 条件编译308
20.4 小结310
20.5 上机实践310
第21章 数据结构311
21.1 链表311
21.1.1 链表的结构311
21.1.2 创建链表并遍历输出312
21.1.3 链表的插入314
21.1.4 链表结点的删除317
21.1.5 链表的逆置319
21.1.6 链表的销毁321
21.1.7 综合实例321
21.1.8 循环链表326
21.1.9 双链表327
21.2 栈和队列330
21.2.1 栈的定义330
21.2.2 栈的分类330
21.2.3 栈的操作331
21.2.4 函数与栈333
21.2.5 队列334
21.3 小结337
21.4 上机实践337
第四篇 c语言程序设计实例与面试题解析
第22章 c语言程序课程设计:游戏339
22.1 黑白棋339
22.1.1 程序功能要求339
22.1.2 输入输出样例339
22.1.3 程序分析340
22.1.4 程序初始化341
22.1.5 初始化图形设备341
22.1.6 绘制棋盘341
22.1.7 交替绘制黑白棋342
22.1.8 游戏(同时判断是否有一方胜利)342
22.1.9 小结357
22.2 五子棋357
22.2.1 程序功能要求357
22.2.2 输入输出样例358
22.2.3 程序分析358
22.2.4 主函数程序设计360
22.2.5 系统初始化361
22.2.6 移动棋子模块361
22.2.7 程序胜负判定365
22.2.8 小结369
22.3 扫雷游戏369
22.3.1 程序功能要求369
22.3.2 输入输出样例370
22.3.3 程序分析370
22.3.4 程序设计372
22.3.5 初始化图形设备374
22.3.6 事件处理模块377
22.3.7 游戏处理部分382
22.3.8 小结385
22.4 速算24385
22.4.1 程序功能要求385
22.4.2 输入输出样例385
22.4.3 程序分析386
22.4.4 程序设计387
22.4.5 扑克牌处理部分389
22.4.6 程序运算部分392
22.4.7 小结393
第23章 面试题解析394
23.1 基础知识394
23.1.1 指针自增自减有什么不同394
23.1.2 什么是递归394
23.1.3 宏定义与操作符的区别395
23.1.4 引用与值传递的区别395
23.1.5 指针和引用有什么区别395
23.1.6 什么是栈395
23.1.7 main函数执行前还会执行什么代码395
23.1.8 static有什么用途395
23.1.9 定义int **a[3][4], 则变量占用的内存空间为多少396
23.1.10 什么是预编译396
23.1.11 int (*s[10])(int)表示什么意义396
23.1.12 结构与联合有何区别396
23.2 算法和思维逻辑知识396
23.2.1 100美元哪里去了397
23.2.2 将16升水平均分给四个人397
23.2.3 算出小王买了几瓶啤酒、几瓶饮料397
23.2.4 找出不同的苹果398
23.2.5 找出不同的球398
23.2.6 猜自己的帽子颜色399
23.2.7 三筐水果各是什么400
23.2.8 最后剩下的是谁401
23.2.9 聪明的商人402
23.2.10 红球和白球402
23.2.11 乌龟赛跑402
23.2.12 投硬币402
附录 ascii编码表403

商品评论(0条)

暂无评论!

您的浏览历史

loading 内容加载中,请稍后...