第一部分 C语言程序设计 3
第1章 C程序实例 3
1.1 几个例子 3
1.2 C的基本字符与词汇 6
1.2.1 C语言的字符集 6
1.2.2 词汇 6
1.3 C程序的上机操作 8
1.3.1 启动Visual C++ 6.0 9
1.3.2 程序上机操作过程 10
习题 14
第2章 数据类型、运算及表达式 16
2.1 数据和数据类型 16
2.2 常量 17
2.2.1 整型常量 17
2.2.2 实型常量 17
2.2.3 字符常量 18
2.2.4 字符串常量 18
2.2.5 符号常量——宏定义 19
2.3 变量 20
2.3.1 整型变量 20
2.3.2 实型变量 21
2.3.3 字符型变量 21
2.4 赋值与算术运算 22
2.4.1 赋值运算 22
2.4.2 二元算术运算 22
2.4.3 自加、自减运算 24
2.4.4 复合赋值运算 24
2.5 变量赋初值 25
2.6 类型转换 25
2.6.1 自动类型转换 25
2.6.2 强制类型转换 26
2.7 位运算 26
2.7.1 按位与运算——& 27
2.7.2 按位或运算——| 28
2.7.3 按位异或运算——∧ 28
2.7.4 取反运算——~ 29
2.7.5 左移运算——<< 29
2.7.6 右移运算——>> 29
习题 30
第3章 数据的输入输出 32
3.1 字符输入输出函数 32
3.1.1 字符输入函数getchar 32
3.1.2 字符输出函数putchar 33
3.1.3 文件包含 34
3.2 格式输入输出函数 35
3.2.1 格式输出函数printf 35
3.2.2 格式输入函数scanf 40
3.3 应用举例 41
习题 43
第4章 程序设计与程序结构 45
4.1 程序设计概述 45
4.1.1 结构化程序设计 45
4.1.2 面向对象的程序设计 46
4.2 程序设计与算法 47
4.2.1 程序设计的基本步骤 47
4.2.2 算法的设计与描述 48
4.2.3 C程序的书写风格 50
4.3 程序的基本控制结构 50
4.4 顺序结构程序设计 51
4.4.1 空语句和表达式语句 51
4.4.2 复合语句 52
4.5 应用举例 52
习题 54
第5章 选择结构程序设计 55
5.1 关系运算和逻辑运算 55
5.1.1 关系运算 55
5.1.2 逻辑运算 56
5.2 if语句 57
5.2.1 if语句的3种形式 57
5.2.2 条件运算 61
5.3 switch语句 62
5.4 应用举例 64
习题 67
第6章 循环程序设计 69
6.1 while循环语句 69
6.2 do-while循环语句 70
6.3 for循环语句 71
6.4 循环的退出 74
6.4.1 break语句 74
6.4.2 continue语句 75
6.4.3 goto语句 76
6.5 应用举例 77
习题 80
第7章 数组 82
7.1 一维数组 82
7.1.1 一维数组的定义 82
7.1.2 一维数组的使用 83
7.1.3 一维数组的初始化 84
7.2 二维数组 85
7.2.1 二维数组的定义 85
7.2.2 二维数组的初始化 86
7.2.3 二维数组的引用 87
7.3 字符数组和字符串 88
7.3.1 字符数组的定义 89
7.3.2 字符串 89
7.4 应用举例 93
习题 95
第8章 函数 98
8.1 C程序与函数 98
8.2 函数的定义和说明 100
8.2.1 函数的定义 100
8.2.2 函数的说明 103
8.3 函数的调用 103
8.3.1 函数调用的格式 104
8.3.2 参数的传递 105
8.4 应用举例1 106
8.5 函数的嵌套调用与递归调用 108
8.5.1 函数的嵌套调用 108
8.5.2 函数的递归调用 110
8.6 作用域与存储类 112
8.6.1 作用域 112
8.6.2 存储类 115
8.6.3 内部函数与外部函数 118
8.7 应用举例2 119
习题 122
第9章 指针 125
9.1 指针的概念 125
9.1.1 什么是指针 125
9.1.2 指针变量的定义 126
9.1.3 指针的运算 126
9.2 指针作函数参数 128
9.3 数组与指针 131
9.3.1 一维数组与指针 131
9.3.2 多维数组与指针 136
9.3.3 字符指针与字符串 137
9.4 应用举例 141
习题 143
第10章 结构、联合和枚举 146
10.1 结构的概念 146
10.1.1 结构类型的定义 146
10.1.2 结构变量的说明 147
10.1.3 结构变量的引用 148
10.1.4 结构变量的初始化 149
10.2 结构数组 150
10.3 指向结构的指针 152
10.3.1 指向结构的指针概述 152
10.3.2 结构指针作函数参数 155
10.4 动态数据结构 156
10.4.1 内存的动态分配和释放函数 157
10.4.2 链表 159
10.5 联合 167
10.5.1 联合的定义 167
10.5.2 联合变量的说明与引用 167
10.6 枚举 169
10.7 类型定义 171
10.8 应用举例 173
习题 177
第11章 文件 179
11.1 C文件的概念 179
11.1.1 C语言文件的特点 179
11.1.2 二进制流和字符流 179
11.1.3 缓冲与非缓冲文件系统 180
11.2 文件类型指针 181
11.3 文件的打开与关闭 181
11.3.1 文件的打开——fopen函数 182
11.3.2 文件的关闭——fclose函数 183
11.4 文件的读写 184
11.4.1 字符读写函数——fputc和fgetc 184
11.4.2 字符串读写函数——fgets和fputs 186
11.4.3 数据块读写函数——fread和fwrite 188
11.4.4 格式化读写函数——fscanf和fprintf 190
11.5 文件的定位 191
11.5.1 rewind函数 191
11.5.2 ftell函数 192
11.5.3 fseek函数 192
11.6 输入输出重定向 194
11.7 应用举例 195
习题 196
第二部分 上机实验 201
第12章 实验 201
12.1 实验1 熟悉VC++编程环境与顺序结构程序设计 201
12.2 实验2 选择结构程序设计 202
12.3 实验3 循环结构程序设计 203
12.4 实验4 程序调试 204
12.5 实验5 利用数组的编程 212
12.6 实验6 函数 213
12.7 实验7 指针 215
12.8 实验8 结构和枚举 216
12.9 实验9 链表应用 217
12.10 实验10 文件操作 217
附录A 运算符的优先级及其结合性 219
附录B 标准ASCII字符集 221
附录C 常用的C库函数 224
参考文献 227