C语言是一种在世界范围内被普遍采用的优秀的程序设计语言,是现代最流行的通用程序设计语言之一,功能丰富,使用灵活,可移植性好,深受广大用户欢迎。C语言的数据类型丰富,既具有高级程序设计语言的优点,又具有低级程序设计语言的特点;既可以用来编写系统程序,又可以用来编写应用程序。因此,C语言正在被迅速地推广和普及。
本教材通过大量实例,系统地介绍了C语言的语法结构。本教材组织精练,例题简单,容易理解,并配备了各种类型的练习,部分章节结合任务驱动教学法和建构主义理论组织各知识点,便于学习掌握。对于C语言中重要和较难理解、容易出错的内容,书中均特别加以强调和说明。此外,在介绍C语言的语法结构的同时,也强调了计算机算法和结构化设计方法的概念和作用。本书可作为高等学校C语言程序设计课程的教材,也可作为计算机等级考试的辅导教材。
本书讲授C语言程序设计的基本思想、方法和解决实际问题的技巧。尽可能把概念、知识点与案例相结合,进行案例教学,并且每章都精心设计了习题与上机实验,突出实用性、操作性。每章的安排尽量做到从简单到复杂,在编著教材时尽量结合任务驱动法和建构主义理论教学法组织各个知识点。
全书共分13章,主要内容包括C语言程序设计概述、数据类型、运算符、表达式、顺序结构、选择结构、循环结构、数组、函数、指针、复合数据类型、文件、位运算、编译预处理和C语言的实际应用等。
本书可作为高等学校工科各专业C语言程序设计课程的教材,也可以作为全国计算机等级考试的辅导教材,以及计算机爱好者自学用书和各类工程技术人员的参考书。
第1章 C语言程序设计概述1
1.1 C语言的发展及其特点1
1.1.1 C语言发展历程1
1.1.2 C程序的特点2
1.2 C语言程序的基本结构3
1.3 C程序的上机步骤与方法5
1.3.1 有关概念6
1.3.2 运行C程序的一般步骤6
1.3.3 上机运行C程序的方法7
1.3.4 Visual C++ 6.0环境运行C程序的步骤7
习题10
第2章 数据类型、运算符和表达式12
2.1 C语言字符集、标识符与关键字12
2.1.1 C语言字符集12
2.1.2 标识符12
2.1.3 关键字13
2.2 C的基本数据类型13
2.2.1 基本数据类型概述13
2.2.2 常量和符号常量15
2.2.3 变量18
2.3 运算符及表达式20
2.3.1 运算符和表达式概述20
2.3.2 算术运算符及算术表达式21
2.3.3 关系运算符及关系表达式22
2.3.4 逻辑运算符及逻辑表达式23
2.3.5 条件运算符及条件表达式24
2.3.6 赋值运算符及赋值表达式24
2.3.7 逗号运算符及逗号表达式26
2.3.8 求字节运算符27
2.3.9 类型转换27
习题28
第3章 顺序结构30
3.1 概述30
3.2 简单顺序语句30
3.2.1 表达式语句30
3.2.2 空语句31
3.2.3 复合语句31
3.3 C语言数据的输入输出32
3.3.1 字符输入输出函数32
3.3.2 格式输入输出33
3.4 综合实例37
习题39
第4章 选择结构41
4.1 if语句41
4.1.1 if语句的基本形式41
4.1.2 if语句嵌套45
4.2 switch语句47
4.3 程序应用50
习题57
第5章 循环结构59
5.1 问题的提出59
5.2 while 循环结构60
5.2.1 while语句的基本形式60
5.2.2 while语句的应用60
5.3 do…while 循环结构63
5.3.1 do…while语句的基本形式63
5.3.2 while语句的应用64
5.4 for 循环结构66
5.4.1 for语句的基本形式66
5.4.2 for语句的应用66
5.5 转向语句70
5.5.1 break语句70
5.5.2 continue语句71
5.5.3 goto语句72
5.6 程序应用73
习题77
第6章 数组79
6.1 问题的提出79
6.2 数组的基本概念79
6.3 一维数组80
6.3.1 一维数组的声明80
6.3.2 一维数组的引用81
6.3.3 一维数组的初始化82
6.3.4 一维数组的应用83
6.4 二维数组87
6.4.1 二维数组的声明87
6.4.2 二维数组的引用88
6.4.3 二维数组的初始化88
6.4.4 多维数组89
6.4.5 二维数组的应用90
6.5 字符数组93
6.5.1 字符数组的声明93
6.5.2 字符数组的引用93
6.5.3 字符数组的初始化94
6.5.4 字符串变量95
6.5.5 字符串变量的输入输出95
6.5.6 字符串函数97
6.5.7 字符数组的应用99
习题101
第7章 函数104
7.1 概述104
7.2 函数定义的形式104
7.3 函数参数和函数的返回值106
7.3.1 形式参数和实际参数106
7.3.2 函数的返回值108
7.4 函数的调用109
7.4.1 函数调用的一般形式110
7.4.2 函数调用的方式111
7.4.3 对被调函数的声明和函数原型112
7.5 函数的嵌套调用115
7.6 函数的递归调用116
7.7 数组作为函数参数122
7.7.1 数组元素作为函数实参122
7.7.2 一维数组名作为函数参数123
7.7.3 二维数组名作为函数参数125
7.8 变量的作用域126
7.8.1 局部变量127
7.8.2 全局变量128
7.8.3 变量的优先级129
7.9 变量的存储类别130
7.9.1 auto变量131
7.9.2 用static声明的局部变量131
7.9.3 register变量134
7.9.4 用extern声明外部变量134
7.9.5 用static声明外部变量137
7.9.6 存储类别小结138
7.10 内部函数和外部函数139
7.10.1 内部函数139
7.10.2 外部函数140
习题142
第8章 指针145
8.1 指针基本概念及其指针变量的声明145
8.1.1 指针、变量的指针和指针变量145
8.1.2 指针的声明146
8.2 地址运算150
8.3 指向数组元素的指针152
8.4 二维数组元素的地址156
8.5 指向一个由n个元素所组成的数组指针158
8.6 字符指针159
8.7 指针数组161
8.8 指针函数164
8.9 函数指针165
8.10 多级指针166
8.11 void指针类型168
8.11.1 void的含义168
8.11.2 void使用规则168
8.12 带参数的main()函数171
8.13 指针的内存动态分配173
8.14 指针的应用举例175
习题178
第9章 复合数据类型179
9.1 结构体数据类型179
9.1.1 结构体变量的使用181
9.1.2 结构体数组 183
9.1.3 结构体指针 186
9.1.4 结构体及指向结构体的指针作为函数的参数191
9.1.5 结构体综合举例192
9.2 链表195
9.2.1 链表与数组的主要区别196
9.2.2 链表的操作196
9.2.3 链表应用举例202
9.2.4 由结构体形成的其他数据类型205
9.3 共用体定义和共用体变量声明206
9.4 枚举数据类型208
9.5 类型说明210
习题212
第10章 文件213
10.1 文本流和二进制流213
10.2 文件FILE的数据结构体213
10.3 标准文件的读写214
10.3.1 文件的打开(fopen()函数)214
10.3.2 关闭文件函数fclose()216
10.3.3 文件的读写217
10.3.4 清除和设置文件缓冲区223
10.3.5 文件的随机读写函数223
10.3.6 文件检测函数226
10.4 C库文件227
习题229
第11章 位运算231
11.1 位运算概述231
11.2 整数的计算机表示232
11.3 位运算符234
11.3.1 取反运算符~234
11.3.2 按位与运算符&234
11.3.3 按位或运算符¦235
11.3.4 按位异或运算符^235
11.3.5 左移运算符<<235
11.3.6 右移运算符>>236
11.3.7 位运算与赋值运算的结合236
11.3.8 位运算符的优先次序237
11.3.9 示例程序237
11.4 位段239
习题241
第12章 编译预处理243
12.1 宏声明243
12.1.1 不带参数的宏声明243
12.1.2 带参数的宏声明245
12.2 文件包含251
12.3 条件编译254
习题257
第13章 C语言的实际应用260
13.1 通讯录管理260
13.2 学生成绩管理272
习题282
附录A ASCII编码表283
附录B ctype.h文件中所包含的字符函数285
附录C math.h文件中所包含的数学函数286