《C语言其实很简单》这本书是2015年清华大学出版社出版的图书,作者是张宁。
基本介绍
- 书名C语言其实很简单
- 作者张宁
- ISBN9787302397519
- 定价59元
- 出版社清华大学出版社
- 出版时间2015-07-01
内容简介
本书是为零基础的C语言初学者量身定做的,特别适合非计算机专业的读者自学C语言。本书儘量避免使用专业术语,利用大量贴近生活的实例,用通俗易懂的方式讲解C语言的基本概念和基本编程方法,并提供许多独特的小窍门、小技巧、小口诀等,使读者在轻鬆的环境中花费很少的时间就能掌握C语言,并套用自如。
目录
第1章 从这里爱上编程—程式设计
1.1 水面下的冰山——电脑程式和计算机语言 1
1.2 第一次亲密接触——纵览C语言 3
1.2.1 一窥程式之美——C语言程式的结构 3
1.2.2 循序渐进,快乐学习——语句的光和影 4
1.2.3 程式里的说明书——注释 6
1.2.4 免费翻译服务——编译和连结 8
1.3 先其利器——Visual C++ 6.0上机指导 10
1.4 天平称物问题——进制转换 15
1.4.1 这些进制是哪来的——二进制、八进制、十六进制 15
1.4.2 你还应知道这几招——不同进制之间的转换 15
第2章 色彩斑斓的积木
——数据类型、运算符和表达式
2.1 标识符、常量和变数 21
2.1.1 给我起个名字吧——标识符 21
2.1.2 有一说一——常量 22
2.1.3 程式里的储物盒——变数 23
2.2 追根“数”源——细说数据类型 25
2.2.1 整型数据用C语言怎样说 25
2.2.2 实型数据用C语言怎样说 28
2.2.3 字元型数据用C语言怎样说 32
2.2.4 字元串型常量用C语言怎样说 36
2.3 诸算达人——运算符和表达式 39
2.3.1 再谈加减乘除——算术运算 39
2.3.2 走,给我进去!——赋值 45
2.3.3 加加和减减——自增、自减 48
2.3.4 神秘的倒数第一——逗号运算 50
2.4 位在我心中——位运算 52
2.4.1 按位与& 52
2.4.2 按位或 | 52
2.4.3 按位异或 ^ 53
2.4.4 按位求反 ~ 54
2.4.5 按位左移 << 54
2.4.6 按位右移 >> 54
2.4.7 位运算的複合赋值 55
第3章 一战到底——顺序结构
3.1 整装待发——C语言中的语句 56
3.2 别急,一个一个来——单个字元的输出与输入 57
3.2.1 拿好了钥匙进仓库——输出与输入概述 57
3.2.2 向萤幕开火——单个字元的输出 58
3.2.3 饭要一口一口地吃——单个字元的输入 59
3.3 更过瘾的输出与输入——格式输出与输入 62
3.3.1 我有私人警察——格式输出函式printf 62
3.3.2 我是快乐的快递员——格式输入函式scanf 68
3.4 常用系统数学函式 73
3.5 是不是有点专业级软体的意思了——顺序结构程式举例 74
第4章 程式也能跑捷径——选择结构
4.1 计算机的判断力——关係运算和逻辑运算 76
4.1.1 判断真假的符号——关係运算符和逻辑运算符 76
4.1.2 火眼金睛断真假——关係表达式和逻辑表达式 78
4.1.3 挑剔的“吗+否则”——条件运算 82
4.2 如果——if语句 83
4.2.1 教室停电就不上课了——if语句的基本形式 83
4.2.2 一朝天子一朝臣——if语句的完整形式 88
4.2.3 如果里的如果——if语句的嵌套 94
4.3 多路开关——switch语句 98
4.3.1 司令的锦囊——switch语句的一般形式 99
4.3.2 我爱读小说——switch语句的执行过程 100
4.4 goto去哪?想去哪就去哪!——goto语句 105
第5章 不必亲手愚公移山——循环结构
5.1 看好了情况再下手——while语句 107
5.2 先下手干了再说——do...while语句 110
5.3 我勤奋?我劳动?我光荣——for语句 112
5.3.1 按劳分配——for语句的基本形式 112
5.3.2 劳动者的工作模式——for语句的常见套用 114
5.3.3 有人接班我偷懒——表达式的变化 119
5.4 循环里的循环——循环的嵌套 122
5.5 埋头干活中的抬头看路——continue语句和break语句 125
5.5.1 来源于生活——continue语句和break语句概述 125
5.5.2 下一个上——continue语句 127
5.5.3 前方施工请绕行——break语句 129
5.6 轻车熟路——程式控制结构小结和综合举例 130
第6章 把平房升级为高楼大厦——数组 137
6.1 直线升级——一维数组 137
6.1.1 一维数组的定义和引用 137
6.1.2 一维数组的初始化(定义时赋初值) 144
6.1.3 一维数组的套用 147
6.2 找东西和整理东西的艺术——查找和排序 152
6.2.1 这个经常有——查找技术 152
6.2.2 混乱之治——排序技术 156
6.3 立体升级——二维数组 163
6.3.1 二维数组的定义和引用 163
6.3.2 二维数组在记忆体中的存储形式 164
6.3.3 二维数组的初始化(定义时赋初值) 164
6.3.4 二维数组可被看做是由一维数组组成的 169
第7章 蒙着面干活——函式 171
7.1 从讲故事开始——函式概述 171
7.2 该是学写多段文章的时候了——函式定义和调用 173
7.2.1 自己创造函式——函式的定义 173
7.2.2 把自己写的“段落”用起来——函式的调用 175
7.2.3 你歇着,我劳动——函式调用的过程 177
7.2.4 做好的菜端出来——函式的返回值 179
7.3 喂!听到了吗——函式的声明 185
7.3.1 函式声明的形式 186
7.3.2 函式声明的位置 187
7.4 函式的嵌套调用和递归调用 189
7.4.1 函数里的函式——函式的嵌套调用 189
7.4.2 克隆函式——函式的递归调用 190
7.5 变数的时空範围——变数的作用域及存储类别 196
7.5.1 空间範围——局部变数和全局变数 196
7.5.2 时间範围——变数的存储类别 202
7.5.3 时空统一——局部变数和全局变数的存储类别 206
7.6 给编译做点儿手脚——预编译处理 207
7.6.1 潜伏代号——宏定义 207
7.6.2 程式的自动複製贴上——档案包含 211
7.6.3 早知当初,何必如此——条件编译 212
第8章 璀璨的星星——指针 213
8.1 记忆体里的门牌号——地址和指针的基本概念 213
8.2 别拿地址不当值——指针变数 214
8.2.1 找张字条记地址——定义指针变数 215
8.2.2 这可不是说我——指针变数的基类型 217
8.2.3 把地址记下来——为指针变数赋值 218
8.2.4 指针运算俩兄弟——两个运算符 220
8.3 原来咱俩是一个朋友圈的——数组与指针 223
8.3.1 下一站到哪了——指针变数的运算 223
8.3.2 我原来是指针变数——一维数组的指针 227
8.3.3 我是你的上级——二维数组的指针和行指针 232
8.3.4 来自星星的数组——指针数组和指针的指针 238
8.3.5 指针三家人——指针小结 242
8.4 有了地址也可以找我帮忙啊——函式与指针 244
8.4.1 地址给我,我来帮忙——指针变数做函式参数 244
8.4.2 吃葡萄不抓葡萄粒,抓住葡萄的把柄——数组做函式参数 249
8.4.3 指针私房菜——返回地址值的函式 256
8.4.4 函式遥控器——函式的指针 256
8.5 一两拨千斤——字元串的指针 259
8.5.1 字元串的存储 259
8.5.2 字元串的输出和输入 263
8.5.3 字元串处理技术 267
8.6 另类运行程式——main函式的参数 286
第9章 我的类型我做主——结构体与共用体 289
9.1 多功能收纳盒——结构体 289
9.1.1 绘製收纳盒设计图——定义结构体类型 289
9.1.2 收纳盒製作——使用结构体变数 290
9.1.3 一本通讯录——结构体类型的数组 294
9.1.4 结构体的弓箭手——结构指针变数 296
9.1.5 重口味与轻口味——结构体类型数据做函式参数 297
9.1.6 大收纳盒里套小收纳盒——结构体类型的嵌套 301
9.2 公路桥洞——共用体 302
9.3 给类型起个“绰号”——类型定义符typedef 304
9.4 记忆体空间的批发和零售——动态存储分配 306
9.5 电影院里的座次问题——鍊表 310
9.5.1 鍊表的建立和遍历 311
9.5.2 鍊表结点的插入和删除 317
9.5.3 鍊表的高级兄弟——高级鍊表简介 320
第10章 得档案者得天下——档案 322
10.1 一针hold住全档案——档案指针 322
10.1.1 与档案牵手——档案的打开 322
10.1.2 与档案分手——档案的关闭 326
10.1.3 档案操作流程 326
10.2 搬运流水线——档案的读写 327
10.2.1 手指和笔尖——档案位置指针 327
10.2.2 文本档案的读写 328
10.2.3 二进制档案的读写 332
10.3 这是手工活儿——档案的随机读写 337
第11章 编程的经验财富——算法与数据结构基础 345
11.1 “一招鲜”——算法 345
11.1.1 何谓算法 345
11.1.2 算法的控制结构 346
11.1.3 算法複杂度 346
11.2 数据结构概述 347
11.2.1 何谓数据结构 347
11.2.2 数据结构的类型 348
11.3 早出晚归的勤快人——栈(堆叠) 349
11.3.1 何谓栈(堆叠) 349
11.3.2 堆叠的基本运算 350
11.3.3 堆叠的逻辑结构和存储结构 350
11.3.4 堆叠的套用 351
11.4 先来后到——伫列 352
11.4.1 何谓伫列 352
11.4.2 伫列的逻辑结构和存储结构 352
11.4.3 循环伫列的基本运算 353
11.5 倒置的树——树与二叉树 354
11.5.1 树和树的基本概念 354
11.5.2 二叉树的基本概念 355
11.5.3 二叉树的存储结构 356
11.5.4 二叉树的遍历 356
第12章 程林高手武功秘籍——软体开发基础 360
12.1 编程之道——程式设计方法 360
12.1.1 编程Style——程式设计风格 360
12.1.2 组装零件——结构化程式设计 361
12.1.3 这个feel,爽!——面向对象程式设计 361
12.2 不懂门道看热闹,看完咱也吊一吊——软体工程基础 364
12.2.1 何谓软体 364
12.2.2 软体生命周期 365
12.2.3 需求分析及其方法 366
12.2.4 软体设计及其方法 367
12.2.5 我是来找茬的——软体测试 369
12.2.6 谁来改正——程式的调试 371
12.3 资讯时代是怎样炼成的——资料库和资料库设计初步 371
12.3.1 关係型资料库及相关概念 372
12.3.2 关係代数 374
12.3.3 资料库系统 378
12.3.4 资料库设计者眼里的世界——E-R模型 380
12.3.5 资料库设计 381
附录一 常用字元ASCII码对照表 383
附录二 C语言中的关键字 384
附录三 C语言运算符的优先权和结合性 385
索引 386
参考文献 391