C语言程序设计教程(第2版) / 高等院校计算机类专业“互联网+”创新规划教材
定价:¥49.00
作者: 杨忠宝,陈洋主编
出版时间:2025-06
最新印次日期:2025-8
出版社:北京大学出版社
- 北京大学出版社
- 9787301361481
- 2版
- 575275
- 16开
- 2025-06
- 工学
- 计算机类
- 计算机科学与技术
- 本科
作者简介
内容简介
本书是学习C语言程序设计的基础教材。本书的特点是在内容安排上采用循序渐进的方式,在组织形式上采用通俗易懂的案例教学和启发式教学的方式,并辅以大量的便于说明问题的案例,用案例带动知识点的方法进行讲解,以一节为一个单元,对知识点进行了细致的取舍和编排,按小节细化知识点并结合知识点介绍了相关的实例,将知识和案例放在同一节中,知识和案例相结合。
本书可作为高校各专业C语言程序设计课程的教材和全国计算机等级考试的参考书,也可供对C语言感兴趣的其他读者自学使用。
本书可作为高校各专业C语言程序设计课程的教材和全国计算机等级考试的参考书,也可供对C语言感兴趣的其他读者自学使用。
目录
目录
第1章 C语言概述1
1.1 C语言的历史1
1.2 C语言的特点2
1.3 C语言程序的开发过程3
1.3.1 C语言调试步骤3
1.3.2Microsoft Visual C++ 2010
Express环境下调试程序方法4
1.4 简单的C语言程序12
习题14
第2章 数据类型、运算符和表达式16
2.1 数据类型16
2.2 标识符、常量与变量17
2.3 整型数据20
2.4 实型数据22
2.5 字符型数据24
2.6 基本运算符和表达式27
2.6.1 算术运算符和算术表达式28
2.6.2 赋值运算符和赋值表达式30
2.6.3 逗号运算符和逗号表达式31
2.6.4 求字节数运算符31
2.7 类型转换32
习题34
第3章 顺序结构程序设计37
3.1 结构化程序设计37
3.2 C语言的语句39
3.3 数据的输出40
3.3.1 格式输出函数——printf
函数40
3.3.2 字符输出函数——putchar
函数44
3.4 数据的输入44
3.4.1 格式输入函数——scanf
函数44
3.4.2 字符输入函数——getchar
函数47
3.5 顺序结构程序举例48
习题49
第4章 选择结构程序设计53
4.1 关系运算符、逻辑运算符、条件
运算符53
4.1.1 关系运算符和关系表达式53
4.1.2 逻辑运算符和逻辑表达式54
4.1.3 条件运算符和条件表达式56
4.2 选择结构程序设计56
4.2.1 if语句56
4.2.2 switch语句65
4.3 选择结构程序设计举例68
习题71
第5章 循环结构程序设计75
5.1 while语句75
5.2 do-while语句78
5.3 for语句79
5.4 break语句和continue语句82
5.4.1 break语句82
5.4.2 continue语句83
5.5 循环嵌套84
5.6 程序举例87
习题90
第6章 数组95
6.1 一维数组95
6.1.1 一维数组的定义和引用95
6.1.2 一维数组的初始化98
6.1.3 一维数组程序举例100
6.2 二维数组105
6.2.1 二维数组的定义和引用105
6.2.2 二维数组的初始化106
6.2.3 二维数组程序举例108
6.3 字符数组与字符串110
6.3.1 字符数组的定义和初始化111
6.3.2 字符串112
6.3.3 字符串处理函数117
6.3.4 程序举例119
习题122
第7章 函数126
7.1 函数概述126
7.2 函数定义128
7.2.1 函数定义的一般形式128
7.2.2 函数的返回值128
7.3 函数调用129
7.3.1 函数调用的一般形式130
7.3.2 对被调函数的声明130
7.3.3 参数传递131
7.4 数组作函数参数133
7.4.1 数组元素作函数实参133
7.4.2 数组名作函数参数134
7.5 函数的嵌套调用135
7.6 函数的递归调用137
7.7 局部变量和全局变量139
7.7.1 局部变量139
7.7.2 全局变量140
7.8 变量的存储类别141
7.8.1 静态存储方式和动态存储
方式141
7.8.2 变量的存储类别142
习题145
第8章 指针151
8.1 指针的基本概念151
8.1.1 变量与地址151
8.1.2 指针与指针变量152
8.1.3 直接访问与间接访问152
8.2 指针变量的定义和引用153
8.2.1 指针变量的定义153
8.2.2 指针变量的引用154
8.2.3 指针变量的算术运算156
8.2.4 指针变量作为函数的参数157
8.3 指针与一维数组158
8.3.1 通过指针变量引用数组
元素158
8.3.2 用数组名及指针作为函数的
参数161
8.4 指针与二维数组164
8.4.1 二维数组的地址164
8.4.2 指向二维数组的指针变量167
8.5 指针与字符串168
8.5.1 字符串的表现形式及
访问方式168
8.5.2 使用字符数组和字符型指针
变量处理字符串的区别171
8.6 指针与函数173
8.6.1 返回指针值的函数173
8.6.2 指向函数的指针174
8.7 二级指针和指针数组175
8.7.1 二级指针175
8.7.2 指针数组176
8.7.3 main函数的参数179
习题181
第9章 结构体与链表188
9.1 结构体类型变量的定义188
9.2 结构体类型变量的引用191
9.3 结构体的初始化192
9.4 结构体与数组194
9.4.1 结构体中包含数组194
9.4.2 结构体数组195
9.5 结构体和指针197
9.5.1 结构体中包含指针197
9.5.2 指向结构体的指针198
9.6 用结构体指针处理链表202
9.6.1 链表介绍202
9.6.2 动态存储分配203
9.6.3 链表的基本操作205
9.7 共用体216
9.8 枚举219
9.8.1 枚举类型的定义和枚举变量的
定义219
9.8.2 枚举变量的使用220
9.9 类型定义222
9.10 应用举例223
习题225
第10章 文件232
10.1 文件概述232
10.2 文件类型指针234
10.3 文件的打开与关闭234
10.3.1 文件打开函数fopen234
10.3.2 文件关闭函数fclose236
10.4 文件的读写操作236
10.4.1 字符读写函数:fputc和
fgetc236
10.4.2 格式化读写函数:fprintf和
fscanf238
10.4.3 数据块读写函数:fwrite和
fread240
10.4.4 字符串读写函数:fputs和
fgets242
10.5 文件定位函数243
10.5.1 rewind函数243
10.5.2 fseek函数244
习题246
第11章 编译预处理249
11.1 宏定义249
11.1.1 无参数的宏定义250
11.1.2 带参数的宏定义252
11.2 文件包含253
11.3 条件编译256
11.3.1 #if命令256
11.3.2 #ifdef … #else … #endif256
11.3.3 #ifndef … #else … #endif258
11.3.4 #undef258
11.3.5 应用举例258
习题259
第12章 位运算262
12.1 二进制位逻辑运算262
12.1.1 “按位与”运算符263
12.1.2 “按位或”运算符264
12.1.3 “按位异或”运算符265
12.1.4 “按位取反”运算符266
12.2 移位运算266
12.2.1 左移运算符266
12.2.2 右移运算符267
习题268
参考文献270
附录271
附录A ASCII表271
附录B C语言中的关键字272
附录C 运算符的优先级和结合性273
附录D C语言常用库函数275
第1章 C语言概述1
1.1 C语言的历史1
1.2 C语言的特点2
1.3 C语言程序的开发过程3
1.3.1 C语言调试步骤3
1.3.2Microsoft Visual C++ 2010
Express环境下调试程序方法4
1.4 简单的C语言程序12
习题14
第2章 数据类型、运算符和表达式16
2.1 数据类型16
2.2 标识符、常量与变量17
2.3 整型数据20
2.4 实型数据22
2.5 字符型数据24
2.6 基本运算符和表达式27
2.6.1 算术运算符和算术表达式28
2.6.2 赋值运算符和赋值表达式30
2.6.3 逗号运算符和逗号表达式31
2.6.4 求字节数运算符31
2.7 类型转换32
习题34
第3章 顺序结构程序设计37
3.1 结构化程序设计37
3.2 C语言的语句39
3.3 数据的输出40
3.3.1 格式输出函数——printf
函数40
3.3.2 字符输出函数——putchar
函数44
3.4 数据的输入44
3.4.1 格式输入函数——scanf
函数44
3.4.2 字符输入函数——getchar
函数47
3.5 顺序结构程序举例48
习题49
第4章 选择结构程序设计53
4.1 关系运算符、逻辑运算符、条件
运算符53
4.1.1 关系运算符和关系表达式53
4.1.2 逻辑运算符和逻辑表达式54
4.1.3 条件运算符和条件表达式56
4.2 选择结构程序设计56
4.2.1 if语句56
4.2.2 switch语句65
4.3 选择结构程序设计举例68
习题71
第5章 循环结构程序设计75
5.1 while语句75
5.2 do-while语句78
5.3 for语句79
5.4 break语句和continue语句82
5.4.1 break语句82
5.4.2 continue语句83
5.5 循环嵌套84
5.6 程序举例87
习题90
第6章 数组95
6.1 一维数组95
6.1.1 一维数组的定义和引用95
6.1.2 一维数组的初始化98
6.1.3 一维数组程序举例100
6.2 二维数组105
6.2.1 二维数组的定义和引用105
6.2.2 二维数组的初始化106
6.2.3 二维数组程序举例108
6.3 字符数组与字符串110
6.3.1 字符数组的定义和初始化111
6.3.2 字符串112
6.3.3 字符串处理函数117
6.3.4 程序举例119
习题122
第7章 函数126
7.1 函数概述126
7.2 函数定义128
7.2.1 函数定义的一般形式128
7.2.2 函数的返回值128
7.3 函数调用129
7.3.1 函数调用的一般形式130
7.3.2 对被调函数的声明130
7.3.3 参数传递131
7.4 数组作函数参数133
7.4.1 数组元素作函数实参133
7.4.2 数组名作函数参数134
7.5 函数的嵌套调用135
7.6 函数的递归调用137
7.7 局部变量和全局变量139
7.7.1 局部变量139
7.7.2 全局变量140
7.8 变量的存储类别141
7.8.1 静态存储方式和动态存储
方式141
7.8.2 变量的存储类别142
习题145
第8章 指针151
8.1 指针的基本概念151
8.1.1 变量与地址151
8.1.2 指针与指针变量152
8.1.3 直接访问与间接访问152
8.2 指针变量的定义和引用153
8.2.1 指针变量的定义153
8.2.2 指针变量的引用154
8.2.3 指针变量的算术运算156
8.2.4 指针变量作为函数的参数157
8.3 指针与一维数组158
8.3.1 通过指针变量引用数组
元素158
8.3.2 用数组名及指针作为函数的
参数161
8.4 指针与二维数组164
8.4.1 二维数组的地址164
8.4.2 指向二维数组的指针变量167
8.5 指针与字符串168
8.5.1 字符串的表现形式及
访问方式168
8.5.2 使用字符数组和字符型指针
变量处理字符串的区别171
8.6 指针与函数173
8.6.1 返回指针值的函数173
8.6.2 指向函数的指针174
8.7 二级指针和指针数组175
8.7.1 二级指针175
8.7.2 指针数组176
8.7.3 main函数的参数179
习题181
第9章 结构体与链表188
9.1 结构体类型变量的定义188
9.2 结构体类型变量的引用191
9.3 结构体的初始化192
9.4 结构体与数组194
9.4.1 结构体中包含数组194
9.4.2 结构体数组195
9.5 结构体和指针197
9.5.1 结构体中包含指针197
9.5.2 指向结构体的指针198
9.6 用结构体指针处理链表202
9.6.1 链表介绍202
9.6.2 动态存储分配203
9.6.3 链表的基本操作205
9.7 共用体216
9.8 枚举219
9.8.1 枚举类型的定义和枚举变量的
定义219
9.8.2 枚举变量的使用220
9.9 类型定义222
9.10 应用举例223
习题225
第10章 文件232
10.1 文件概述232
10.2 文件类型指针234
10.3 文件的打开与关闭234
10.3.1 文件打开函数fopen234
10.3.2 文件关闭函数fclose236
10.4 文件的读写操作236
10.4.1 字符读写函数:fputc和
fgetc236
10.4.2 格式化读写函数:fprintf和
fscanf238
10.4.3 数据块读写函数:fwrite和
fread240
10.4.4 字符串读写函数:fputs和
fgets242
10.5 文件定位函数243
10.5.1 rewind函数243
10.5.2 fseek函数244
习题246
第11章 编译预处理249
11.1 宏定义249
11.1.1 无参数的宏定义250
11.1.2 带参数的宏定义252
11.2 文件包含253
11.3 条件编译256
11.3.1 #if命令256
11.3.2 #ifdef … #else … #endif256
11.3.3 #ifndef … #else … #endif258
11.3.4 #undef258
11.3.5 应用举例258
习题259
第12章 位运算262
12.1 二进制位逻辑运算262
12.1.1 “按位与”运算符263
12.1.2 “按位或”运算符264
12.1.3 “按位异或”运算符265
12.1.4 “按位取反”运算符266
12.2 移位运算266
12.2.1 左移运算符266
12.2.2 右移运算符267
习题268
参考文献270
附录271
附录A ASCII表271
附录B C语言中的关键字272
附录C 运算符的优先级和结合性273
附录D C语言常用库函数275













