C语言程序设计
作者:陈亮,霍炜,吴涛 主编
出版时间: 2020年版
内容简介
本书是根据教育部计算机基础课程教学指导委员会制定的大纲,结合目前普通高等院校计算机基础教学的现状和全国计算机等级考试大纲,由一线教师组织编写的。全书共12章,主要内容包括C语言概述、基本数据类型与表达式、顺序结构程序设计、选择结构程序设计、循环结构程序设计、数组、函数、编译预处理、指针、结构体、共用体和枚举、文件。本书主线清晰、重点明确、叙述严谨、内容由浅入深。书中从全国计算机等级考试二级(C语言)试题中选用了大量经典试题作为例题和练习题,有很强的针对性,并有配套的教学课件。本书适合作为高等院校本科生的教学用书,也可作为参加全国计算机等级考试二级(C语言)的辅导教材,同时也是工程技术人员较好的参考用书。
目录
第1章 C语言概述\t1
1.1 程序设计的相关概念\t1
1.1.1 基本概念\t1
1.1.2 算法\t1
1.1.3 数据结构\t3
1.1.4 算法+数据结构=程序\t3
1.2 C/C++语言的产生及特点\t3
1.3 C语言程序结构的特点\t4
1.4 C语言中的词汇\t6
1.5 C语言程序编写的基本规范\t7
1.6 C语言程序的开发步骤及Microsoft Visual C++ 2010 Express集成开发环境介绍\t9
1.6.1 C语言程序的开发步骤\t9
1.6.2 Microsoft Visual C++ 2010 Express集成开发环境介绍\t9
1.6.3 利用集成开发环境进行程序开发\t10
第2章 基本数据类型与表达式\t14
2.1 C语言的数据类型\t14
2.2 标识符、常量和变量\t15
2.2.1 标识符\t15
2.2.2 常量和符号常量\t15
2.2.3 变量\t16
2.3 整型\t17
2.3.1 整型常量\t17
2.3.2 整型变量\t17
2.3.3 整型数据的存储形式\t18
2.4 实型\t19
2.4.1 实型常量\t19
2.4.2 实型变量\t19
2.4.3 实型数据在内存中的存储形式\t19
2.5 字符型\t20
2.5.1 字符常量\t20
2.5.2 字符串常量\t21
2.5.3 字符变量\t22
2.6 算术表达式\t22
2.6.1 C语言运算符简介\t22
2.6.2 数值型数据混合运算时的类型转换\t22
2.6.3 算术运算符及算术表达式\t23
2.7 赋值表达式\t25
2.7.1 赋值运算符和赋值表达式\t25
2.7.2 复合赋值表达式\t25
2.7.3 赋值运算中的类型转换\t26
2.8 关系表达式和逻辑表达式\t27
2.8.1 C语言的逻辑值\t27
2.8.2 关系运算符及关系表达式\t27
2.8.3 逻辑运算符及逻辑表达式\t27
2.9 逗号表达式\t28
2.10 位运算\t29
2.10.1 位运算符\t29
2.10.2 位域简介\t32
2.11 条件运算符和条件表达式\t33
第3章 顺序结构程序设计\t35
3.1 C语句概述\t35
3.2 程序的三种基本结构\t37
3.3 数据的输入/输出\t39
3.3.1 格式输出函数printf\t39
3.3.2 格式输入函数scanf\t44
3.3.3 字符输出函数putchar\t47
3.3.4 字符输入函数getchar\t47
3.4 顺序结构程序设计举例\t48
第4章 选择结构程序设计\t55
4.1 关系运算符与关系表达式\t55
4.1.1 关系运算符\t55
4.1.2 关系表达式\t56
4.2 逻辑运算符与逻辑表达式\t56
4.2.1 逻辑运算符\t56
4.2.2 逻辑表达式\t57
4.3 if语句\t57
4.3.1 if语句的三种形式\t57
4.3.2 if语句的嵌套使用\t62
4.4 switch语句\t64
4.5 选择结构程序设计举例\t67
第5章 循环结构程序设计\t71
5.1 概述\t71
5.2 while语句及其循环结构\t72
5.3 do-while语句及其循环结构\t75
5.4 for语句及其循环结构\t76
5.5 break、continue和goto语句\t78
5.5.1 break语句\t80
5.5.2 continue语句\t80
5.5.3 goto语句\t81
5.6 循环的嵌套\t81
5.7 循环程序举例\t83
第6章 数组\t87
6.1 一维数组\t87
6.1.1 一维数组的定义\t87
6.1.2 一维数组元素的引用\t88
6.1.3 一维数组的初始化\t89
6.1.4 一维数组程序举例\t90
6.2 二维数组\t96
6.2.1 二维数组的定义\t96
6.2.2 二维数组元素的引用\t96
6.2.3 二维数组的初始化\t97
6.2.4 二维数组程序举例\t98
6.3 字符数组\t103
6.3.1 字符数组的定义\t104
6.3.2 字符数组的初始化\t104
6.3.3 字符数组的引用\t105
6.3.4 字符串和字符串结束标志\t106
6.3.5 字符数组的输入/输出\t107
6.3.6 字符串处理函数\t109
6.3.7 字符数组应用举例\t114
第7章 函数\t118
7.1 函数概述\t118
7.2 函数的定义与返回值\t119
7.2.1 函数的定义\t119
7.2.2 函数的返回值\t121
7.3 函数的调用\t122
7.3.1 函数的参数及其传递\t122
7.3.2 函数调用方式\t124
7.3.3 函数声明和函数原型\t125
7.4 函数的嵌套调用\t126
7.5 函数的递归调用\t128
7.6 数组作为函数的参数\t132
7.6.1 数组元素作为函数实参\t132
7.6.2 数组名作为函数参数\t133
7.7 局部变量和全局变量\t137
7.7.1 局部变量及其作用域和生存期\t138
7.7.2 全局变量及其作用域和生存期\t141
7.8 内部函数和外部函数\t144
第8章 编译预处理\t147
8.1 宏定义\t147
8.1.1 无参宏的定义\t147
8.1.2 带参数的宏定义\t150
8.2 文件包含\t153
8.3 条件编译\t155
第9章 指针\t159
9.1 存储单元及其地址\t159
9.2 变量的实质\t160
9.3 指针和变量\t162
9.3.1 指针相关概念的引入\t162
9.3.2 指针变量的定义和声明\t163
9.3.3 指针变量的引用\t164
9.4 指针和数组\t168
9.4.1 指向一维数组元素的指针\t168
9.4.2 通过指针变量引用一维数组元素\t170
9.4.3 指向二维数组的指针\t171
9.4.4 指针型数组\t175
9.4.5 动态数组的实现\t178
9.5 指针和字符串\t180
9.5.1 字符指针\t180
9.5.2 字符指针变量和字符数组的比较\t182
9.5.3 字符串数组的进一步讨论\t183
9.6 指针和函数\t186
9.6.1 指针作为函数的参数\t186
9.6.2 指针型函数\t190
9.6.3 指向函数的指针\t191
9.6.4 数组和指向数组的指针变量作为函数参数的进一步讨论\t194
9.7 指针和多级指针\t196
9.7.1 指向指针的指针\t196
9.7.2 多级指针\t198
第10章 结构体与链表\t199
10.1 概述\t199
10.2 结构体类型的声明\t200
10.3 结构体变量的定义\t200
10.4 结构体变量的引用\t202
10.4.1 对结构体变量成员的引用\t203
10.4.2 对结构体变量的整体引用\t203
10.5 结构体变量的初始化\t203
10.6 结构体数组\t204
10.6.1 结构体数组的定义\t205
10.6.2 结构体数组的初始化\t206
10.6.3 结构体数组元素的引用\t207
10.7 指向结构体类型数据的指针\t208
10.7.1 指向结构体变量的指针\t208
10.7.2 指向结构体数组的指针\t209
10.7.3 结构体变量和指向结构体的指针作为函数参数\t211
10.8 链表\t216
10.8.1 链表概述\t216
10.8.2 处理动态链表所需的函数\t216
10.8.3 单链表\t217
10.8.4 双向链表\t230
10.9 用typedef定义类型\t236
第11章 共用体和枚举\t238
11.1 共用体类型\t238
11.1.1 共用体类型和共用体变量的定义\t238
11.1.2 共用体变量的引用\t240
11.1.3 共用体的特点\t240
11.1.4 共用体和结构体的比较\t241
11.2 共用体类型应用举例\t241
11.3 枚举类型\t243
11.3.1 枚举类型的定义\t243
11.3.2 枚举类型的特点\t244
11.3.3 枚举类型应用举例\t244
第12章 文件\t247
12.1 文件概述\t247
12.2 文件指针\t248
12.3 文件的打开和关闭\t249
12.3.1 文件的打开函数fopen\t249
12.3.2 文件的关闭函数fclose\t250
12.4 文件的读/写\t251
12.4.1 字符读/写函数fgetc和fputc\t251
12.4.2 字符串读/写函数fgets和fputs\t252
12.4.3 数据块读/写函数fread和fwrite\t252
12.4.4 格式化读/写函数fscanf和fprintf\t253
12.5 文件的随机读/写\t253
12.5.1 文件定位\t253
12.5.2 文件的随机读/写\t254
12.6 文件检测函数\t255
12.6.1 文件结束检测函数feof\t255
12.6.2 读/写文件出错检测函数ferror\t255
12.6.3 文件出错标志和文件结束标志置零函数clearerr\t255
12.7 库文件\t255
12.8 文件应用举例\t256
附录A ASCII码表\t261
附录B 运算符的优先级和结合方向一览\t264
附录C C语言标准库函数\t265
C.1 头文件\t265
C.2 常用库函数分类\t266
参考文献\t269