第1章 概述 1
1.1 计算机程序设计语言的发展 1
1.1.1 机器语言和汇编语言 1
1.1.2 高级语言 2
1.2 C语言简介 3
1.2.1 C语言的产生与发展 3
1.2.2 C语言的作用 4
1.2.3 C语言的特点 4
1.3 如何学习C语言程序设计 5
1.3.1 认识程序设计 5
1.3.2 学习C语言程序设计的有效方法 6
1.3.3 创建C语言程序的一般步骤 6
1.4 C语言程序的基本结构及书写规范 8
1.4.1 C语言程序的基本结构 8
1.4.2 一个简单的C程序 9
1.4.3 C语言的程序书写规范 12
1.5 Visual C++集成编译环境介绍 13
1.5.1 Visual C++集成编译环境的安装 13
1.5.2 Visual C++集成编译环境的简单使用 15
1.6 算法及算法表示 19
1.6.1 算法与程序设计 19
1.6.2 算法的表示 20
习题 24
第2章 基本数据类型 25
2.1 C语言的字符集与词汇 25
2.1.1 C语言的字符集 25
2.1.2 C语言的词汇 26
2.1.3 信息的计算机存储 29
2.1.4 什么是常量和变量 30
2.1.5 赋值操作 31
2.2 C语言中的基本数据类型 31
2.2.1 理解数据类型 31
2.2.2 整数类型 32
2.2.3 浮点类型 38
2.2.4 字符类型 40
2.2.5 字符串类型 41
2.2.6 枚举类型 42
2.3 混合运算及强制类型转换 43
2.3.1 基本运算符 43
2.3.2 优先级和结合性 44
2.3.3 类型转换 53
2.3.4 极限值 55
习题 56
第3章 顺序结构程序设计 60
3.1 C语句简介 60
3.1.1 表达式语句 61
3.1.2 赋值语句 61
3.1.3 函数调用语句 62
3.1.4 空语句 62
3.1.5 控制语句 62
3.1.6 复合语句 63
3.2 基本的信息输出函数 63
3.2.1 printf()函数 63
3.2.2 字符输出函数 69
3.3 数据输入语句 70
3.3.1 scanf()函数 70
3.3.2 键盘输入函数 75
3.4 关系运算和逻辑运算 76
3.4.1 C语言中的关系运算符 77
3.4.2 关系表达式 77
3.4.3 逻辑运算符和表达式 78
3.5 顺序结构程序设计实例 80
习题 83
第4章 选择结构程序设计 87
4.1 用if语句实现选择结构 87
4.1.1 条件语句 88
4.1.2 条件运算符 91
4.2 用switch语句实现多分支选择结构 93
4.3 选择结构的嵌套 96
4.3.1 if语句的嵌套 96
4.3.2 switch语句的嵌套 97
习题 99
第5章 循环结构程序设计 100
5.1 for循环结构 100
5.2 while和do...while循环结构 103
5.2.1 while语句实现循环 103
5.2.2 do...while语句实现循环 104
5.3 continue语句和break语句 105
5.3.1 continue语句 105
5.3.2 break语句 107
5.4 循环的嵌套 109
习题 112
第6章 数组 113
6.1 一维数组和多维数组的定义、引用和初始化 113
6.1.1 一维数组 116
6.1.2 多维数组 125
6.2 字符串与字符数组 129
6.2.1 字符数组的定义、引用和初始化 129
6.2.2 字符串和字符串的结束标志 132
6.2.3 字符串的输入和输出 133
6.2.4 字符串处理函数 138
习题 141
第7章 C语言中的函数 142
7.1 为什么要使用函数 142
7.1.1 规划程序 143
7.1.2 自顶向下的程序设计方法 144
7.1.3 C语言中的函数 145
7.2 定义函数 147
7.2.1 无参函数的定义 148
7.2.2 有参函数的定义 149
7.3 函数的调用 150
7.3.1 函数的调用 150
7.3.2 函数的递归调用 154
7.4 函数的参数 156
7.4.1 函数的参数 156
7.4.2 函数调用中的参数传递形式 158
7.4.3 数组在函数间的传递 165
7.5 函数的值 166
7.6 C语言变量的作用域和存储类型 169
7.6.1 变量的作用域和生存期 169
7.6.2 变量存储类型 177
习题 185
第8章 编译预处理 191
8.1 宏定义 191
8.1.1 不带参数的宏定义 192
8.1.2 带参数的宏定义 197
8.2 文件包含 198
8.3 条件编译 200
习题 204
第9章 指针 205
9.1 指针与地址 206
9.1.1 指针变量 207
9.1.2 取地址运算符与间接寻址运算符 209
9.1.3 指针与函数 210
9.2 指针与数组 214
9.2.1 指针的算术运算 216
9.2.2 指针与一维数组 219
9.2.3 指针与多维数组 221
9.3 特殊的指针 223
9.3.1 指向字符串的指针 225
9.3.2 指向函数的指针 227
9.3.3 指向指针的指针 229
9.4 动态内存分配 230
9.4.1 C语言内存分配函数 232
9.4.2 动态分配数组和字符串 235
9.4.3 释放存储 238
习题 239
第10章 结构与联合 241
10.1 结构 242
10.1.1 结构的定义 244
10.1.2 结构数组 247
10.1.3 结构指针 248
10.1.4 结构类型作为函数参数 254
10.1.5 typedef类型定义符 256
10.2 联合 257
10.2.1 联合的定义 257
10.2.2 结构与联合的区别 259
习题 260
第11章 文件 261
11.1 文件概述 261
11.2 文件的分类 264
11.3 C语言文件操作相关函数 265
11.3.1 文件指针 270
11.3.2 文件的打开与关闭 270
11.3.3 文件的读/写 272
11.3.4 文件检测函数 278
习题 279
第12章 程序调试方法 280
12.1 程序调试基本步骤 280
12.2 程序调试方法 286
12.2.1 开始调试与停止调试 286
12.2.2 单步执行 287
12.2.3 观察变量 290
12.2.4 查看内存与寄存器等 290
12.2.5 运行栈切换 291
附录A 常用ASCII码对照表 293
参考文献 298