姜成志等编著的《C语言程序设计教程》是编者总结多年的一线教学经验,精心编写而成的。本书系统地介绍了C语言的基本知识和程序设计方法,其内容丰富,结构合理,实践性强,深入浅出,既注重理论知识,又注重程序设计方法的训练,突出了实践性与实用性。在讲解基本概念、基本理论、基本方法的基础上,通过精心编写的应用实例或例题进行程序设计实践,有利于读者对C语言基本知识的掌握和程序设计能力的提高。并且为了有利于读者进一步学习C++或Visual C++,本书选择Microsoft Visual C++ 6.0作为C程序的集成开发环境,本书中所有的例题程序都已在该集成开发环境中逐一运行通过。
姜成志等编著的《C语言程序设计教程》是根据教育部高等学校计算机基础课程教学指导委员会于2009年10月发布的《高等学校计算机基础教学发展战略研究报告暨计算机基础课程教学基本要求》的指导精神,侧重于“语言级程序设计”层面而编写的一门C语言程序设计基础教程。本书系统地介绍了C语言的基本知识和程序设计方法,并且为了有利于读者进一步学习C++或Visual C++,本书选择MiCrosoft Visual C++ 6.0作为C程序的集成开发环境。本书既注重理论知识,又注重程序设计方法的训练,突出了实践性与实用性,内容安排循序渐进,深入浅出,有利于读者对C语言基本知识的掌握和程序设计能力的提高。
《C语言程序设计教程》可供高等学校计算机专业和非计算机专业本科生和专科生作为学习C语言程序设计的教材,也可供参加计算机等级考试的读者学习与参考。
第1章 计算机语言及C语言概述 1
1.1 计算机语言和计算机程序 1
1.2 C语言概述 3
1.2.1 C语言的产生和发展 3
1.2.2 C语言的特点 4
1.2.3 C程序的结构 5
1.2.4 C程序的格式特点 8
1.3 C程序的运行步骤与运行环境 8
1.3.1 C程序的运行步骤 8
1.3.2 Visual C++ 6.0集成开发环境 9
1.3.3 用Visual C++ 6.0运行C程序 13
习题1 18
第2章 算法及算法的流程图表示 19
2.1 算法的概念及特性 19
2.1.1 算法的概念 19
2.1.2 算法的特性 20
2.2 算法的流程图表示 20
2.2.1 传统流程图 20
2.2.2 结构化程序的3种基本结构 22
2.2.3 结构化流程图 22
习题2 23
第3章 C语言的数据类型 24
3.1 计算机存储信息的方法 24
3.1.1 位、字节及内存地址 24
3.1.2 数值数据的表示 24
3.1.3 字符数据的表示 27
3.2 C语言的数据类型 28
3.3 常量与变量 28
3.3.1 标识符 28
3.3.2 常量 29
3.3.3 变量 30
3.4 整型数据 31
3.4.1 整型数据的分类 31
3.4.2 整型常量 32
3.4.3 整型变量 32
3.5 实型数据 33
3.5.1 实型数据的分类 33
3.5.2 实型常量 33
3.5.3 实型变量 33
3.6 字符型数据 34
3.6.1 字符常量 34
3.6.2 字符变量 35
3.6.3 字符串常量 36
3.7 变量的初始化 37
习题3 38
第4章 简单的C程序设计 41
4.1 数据的输入与输出 41
4.1.1 格式输出函数printf 41
4.1.2 格式输入函数scanf 45
4.1.3 字符输出函数putchar 49
4.1.4 字符输入函数getchar 49
4.2 C运算符与表达式概述 50
4.3 基本算术运算符与算术表达式 51
4.3.1 基本算术运算符 51
4.3.2 算术表达式 51
4.4 赋值运算符与赋值表达式 52
4.4.1 赋值运算符与赋值表达式 52
4.4.2 复合赋值表达式 53
4.4.3 赋值语句 53
4.5 自增、自减运算符及其表达式 54
4.6 逗号运算符与逗号表达式 54
4.7 数据类型的转换 55
4.7.1 自动转换 55
4.7.2 强制转换 55
4.8 复合语句与空语句 55
4.8.1 复合语句 55
4.8.2 空语句 56
4.9 顺序程序设计举例 56
习题4 58
第5章 选择结构程序设计 61
5.1 关系运算符与关系表达式 61
5.1.1 关系运算符 61
5.1.2 关系表达式 61
5.2 逻辑运算符与逻辑表达式 62
5.2.1 逻辑运算符 62
5.2.2 逻辑表达式 62
5.3 if语句 64
5.3.1 if语句的语法及流程 64
5.3.2 if语句的嵌套 66
5.4 条件运算符与条件表达式 71
5.5 switch语句 71
习题5 73
第6章 循环结构程序设计 76
6.1 while语句 76
6.2 do-while语句 79
6.3 for语句 81
6.4 循环嵌套 84
6.5 break语句和continue语句 85
6.5.1 break语句 85
6.5.2 continue语句 86
6.6 goto语句 87
习题6 88
第7章 数组 90
7.1 一维数组 90
7.1.1 一维数组的定义 90
7.1.2 一维数组的初始化 92
7.1.3 一维数组元素的引用 92
7.1.4 一维数组程序举例 94
7.2 二维数组 97
7.2.1 二维数组的定义 97
7.2.2 二维数组的初始化 98
7.2.3 二维数组元素的引用 98
7.2.4 二维数组程序举例 99
7.2.5 多维数组 102
7.3 字符数组 102
7.3.1 字符数组的定义 102
7.3.2 字符数组的初始化 103
7.3.3 字符数组的格式输入与输出 104
7.3.4 字符串处理函数 106
7.3.5 字符数组应用举例 109
习题7 111
第8章 函数 117
8.1 模块化程序设计思想及函数分类 117
8.1.1 模块化程序设计思想 117
8.1.2 函数的分类 117
8.2 系统函数 118
8.3 用户自定义函数 118
8.3.1 函数的定义 118
8.3.2 函数的参数和函数的返回值 121
8.3.3 函数的调用 123
8.4 函数的嵌套调用 126
8.5 数组作为函数参数 129
8.6 函数的递归调用 132
8.7 变量的作用域与存储类别 135
8.7.1 局部变量和全局变量 135
8.7.2 变量的存储类别 138
习题8 144
第9章 指针 150
9.1 指针与指针变量的概念 150
9.2 指向简单变量的指针变量 151
9.2.1 指针变量的定义 151
9.2.2 指针变量的引用 152
9.2.3 指针作为函数的参数 155
9.3 利用指针处理数组 158
9.3.1 指针与一维数组 158
9.3.2 指针与二维数组 164
9.4 利用指针处理字符串 167
9.5 返回指针值的函数 170
9.6 指针数组与带有参数的main函数 171
9.6.1 指针数组 171
9.6.2 带有参数的main函数 172
9.7 指向“指针变量”的指针变量 174
9.8 指向函数的指针变量 176
习题9 179
第10章 结构体、共用体和枚举类型 184
10.1 结构体类型与变量的定义 184
10.1.1 结构体类型的定义 184
10.1.2 结构体类型的嵌套定义 186
10.1.3 结构体变量的初始化 187
10.2 结构体类型变量的引用 188
10.3 结构体数组 191
10.4 指向结构体变量的指针变量 192
10.5 共用体 195
10.5.1 共用体类型的说明和变量定义 195
10.5.2 共用体变量的引用 196
10.6 枚举类型数据 198
10.6.1 枚举类型的定义 198
10.6.2 枚举类型变量的声明 198
10.6.3 枚举类型变量的使用 199
10.7 typedef命令的使用 200
习题10 202
第11章 编译预处理 206
11.1 宏定义 206
11.1.1 不带参数的宏 206
11.1.2 带参数的宏 208
11.1.3 终止宏 211
11.2 文件包含 212
11.3 条件编译 214
11.3.1 #if命令 215
11.3.2 #ifdef命令 215
11.3.3 #ifndef命令 216
习题11 216
第12章 文件 219
12.1 文件概述 219
12.1.1 文件的概念及文件分类 219
12.1.2 文件系统 220
12.1.3 文件指针 221
12.2 文件的打开与关闭 222
12.2.1 文件的打开 222
12.2.2 文件的关闭 224
12.3 文件的读写 224
12.3.1 字符读写函数 224
12.3.2 字符串读写函数 226
12.3.3 格式化读写函数 228
12.3.4 数据块读写函数 230
12.4 文件读写指针的定位及文件检测 234
12.4.1 文件读写位置指针的概念 234
12.4.2 文件读写位置指针的定位 235
12.4.3 文件的检测 238
习题12 240
第13章 位运算 243
13.1 位运算符 243
13.1.1 位运算符的简介 243
13.1.2 位运算符的应用 243
13.2 位段 248
习题13 251
附录A ASCII码表 253
附录B C语言常用关键字表 254
附录C 运算符优先级与结合性表 255
附录D C语言库函数 257
参考文献 262