本书从实例出发讲解C语言语法、算法设计和结构化程序设计。以ANSI C标准为主线,不仅涵盖了C语言基本知识,还介绍了软件开发的良好程序设计风格。内容包括算法设计及其表示、结构化程序设计的思想和方法、数据类型、运算符和表达式、数据的输入输出,以及程序的顺序、选择和循环3种基本控制结构,函数、数组、指针、结构体等数据组织形式及其应用,并对程序代码给出详细的注释讲解,以大量实例讲述解决问题的思路和过程。本书讲解深入浅出,循序渐进,利于读者从入门到精通掌握C语言。
样章试读
目录
- 目录
第1章 绪论 1
1.1 计算机程序设计语言发展过程 1
1.2 C语言的发展及应用领域 3
1.3 剖析一个简单的C程序 4
1.3.1 程序注释 4
1.3.2 预处理指令 4
1.3.3 定义主函数 5
1.4 C语言函数的定义及其组成部分 5
1.5 由多个函数构成的C程序 6
1.6 C程序的开发运行步骤和环境 9
习题 11
第2章 算法 12
2.1 算法及其分类 12
2.2 程序的形成 13
2.3 算法设计举例及算法表示 14
2.3.1 自然语言表示算法 14
2.3.2 用流程图表示算法 15
2.3.3 3 种基本结构 16
2.3.4 用N-S结构化流程图表示算法 18
2.3.5 用伪代码表示算法 19
2.3.6 用计算机语言表示和实现算法 20
2.4 结构化程序设计思想 20
2.4.1 结构化程序设计思想的产生 20
2.4.2 结构化程序设计过程 21
习题 23
第3章 顺序程序设计及编程初步 24
3.1 标识符和关键字 24
3.2 顺序结构程序设计 25
3.3 常量和变量、内存及其地址 26
3.3.1 数据在计算机内的存储及表示形式 26
3.3.2 常量和变量 26
3.3.3 内存及其地址 26
3.4 数据类型 28
3.4.1 整型数据 28
3.4.2 浮点型数据 29
3.4.3 字符型数据 30
3.5 运算符和表达式 31
3.5.1 算术运算符 31
3.5.2 赋值运算符 32
3.5.3 表达式 32
3.5.4 关系运算符和关系表达式 32
3.5.5 逻辑运算符和逻辑表达式 33
3.5.6 自增、自减运算符 33
3.5.7 强制类型转换运算符 34
3.5.8 类型转换 34
习题 35
第4章 C语言的标准函数库和数据的输入输出 37
4.1 C语言的标准函数库及软接口 37
4.2 字符数据的输入输出 38
4.2.1 putchar函数 38
4.2.2 getchar函数 39
4.3 C语言的格式输入输出函数 40
4.3.1 printf函数 40
4.3.2 scanf函数 43
习题 45
第5章 选择结构程序设计 47
5.1 if语句的形式 47
5.1.1 只含有if语句的形式 47
5.1.2 完整的if else语句形式 48
5.2 if语句的嵌套 50
5.3 条件运算符“?:” 53
5.4 switch语句 54
5.5 选择结构程序设计综合举例 57
习题 60
第6章 循环结构程序设计 62
6.1 用while语句实现入口条件循环 62
6.2 用for语句实现入口条件循环 63
6.3 用do…while语句实现出口条件循环 65
6.4 循环的嵌套 65
6.5 用break语句和continue语句终止循环 68
6.5.1 break语句 68
6.5.2 continue语句 69
6.6 循环结构的应用举例 70
习题 73
第7章 数组 75
7.1 一维数组 75
7.1.1 一维数组的定义和引用 75
7.1.2 一维数组的初始化 76
7.1.3 一维数组的应用举例 77
7.2 二维数组 80
7.2.1 二维数组的定义和引用 80
7.2.2 二维数组的初始化 82
7.2.3 二维数组的应用举例 82
7.3 字符串和字符数组 85
7.3.1 字符数组的定义和初始化 86
7.3.2 字符数组的引用 86
7.3.3 字符数组的输入输出 87
7.4 字符串处理函数 88
7.4.1 puts函数 88
7.4.2 gets函数 88
7.4.3 strlen函数 89
7.4.4 strcat函数 89
7.4.5 strcpy和strncpy函数 89
7.4.6 strcmp函数 90
7.4.7 strlwr和strupr函数 91
7.5 字符数组及字符串处理函数应用举例 91
习题 95
第8章 再论函数 97
8.1函数参数的值传递方式 97
8.2函数参数的地址传递方式及参数的作用 100
8.2.1 一维数组名做函数参数 100
8.2.2 多维数组名做函数参数 106
8.3函数的嵌套调用 107
8.4函数的递归调用 108
8.5 局部变量和全局变量 115
8.5.1 局部变量 115
8.5.2 全局变量 116
*8.6 变量的存储类别和生存期 118
8.6.1 动态存储方式和静态存储方式 118
8.6.2 局部变量的存储类别 119
8.6.3 全局变量的存储类别及其作用域的扩展 121
8.6.4 变量的作用域和生存期 122
*8.7 内部函数和外部函数 123
8.7.1 内部函数 123
8.7.2 外部函数 124
习题 128
第9章 指针 130
9.1 指针和指针变量 130
9.1.1 指针变量的定义 131
9.1.2 指针变量的引用 131
9.1.3 指针变量做函数参数 132
9.2 指针和数组 137
9.2.1 一维数组元素的指针 137
9.2.2 数组名和指针做函数参数 138
9.2.3 多维数组的指针 140
9.2.4 二维数组名和指针做函数参数 145
9.3 指针与字符串 147
9.3.1 用字符指针变量引用字符串 147
9.3.2 字符指针做函数参数 150
*9.4 指向函数的指针 152
9.4.1函数指针及其定义 152
9.4.2 用函数指针变量调用函数 153
9.4.3 用指向函数的指针作函数参数 154
9.5 返回指针值的函数 156
*9.6 指针数组 157
*9.7 多重指针 160
习题 161
第10章 结构体数据类型 163
10.1 结构体变量的定义和使用 163
10.1.1 声明结构体数据类型 163
10.1.2 结构体类型变量的定义和使用 165
10.2 结构体变量的初始化和引用 167
10.2.1 结构体变量的初始化 167
10.2.2 结构体变量成员的引用 168
10.3 结构体数组 169
10.4 指向结构体的指针 172
10.4.1 指向结构体变量的指针 172
10.4.2 指向结构体数组的指针 173
10.5 向函数传递结构的信息 174
10.5.1 传递结构成员 174
10.5.2 传递结构体变量的地址和传递整个结构体变量 175
*10.6 用指针处理链表 177
10.6.1 链表概述 177
10.6.2 建立静态链表 178
10.6.3 建立动态链表 180
10.7 枚举类型 184
*10.8 typedef 简介 187
习题 189
第11章 文件操作 190
11.1 文件及其存储形式 190
11.2 文件的操作及其输入输出 191
11.3 打开和关闭文件 193
11.3.1 用fopen函数打开数据文件 193
11.3.2 用fclose函数关闭数据文件 194
11.4 用fgetc和fputc函数顺序读写字符 195
11.5 用fgets和fputs函数顺序读写字符串 198
*11.6 用fscanf 和fprintf函数向文件格式化输入输出数据 200
11.7 用fread 和fwrite函数进行二进制方式读写数据 200
11.8 随机读写数据文件的rewind和fseek、ftell函数 202
11.9 文件读写出错检测函数 205
习题 206
附录 207
附录1 ASCII码表 207
附录2 C语言的运算符优先级和结合性 211
附录3 C的标准库函数 212
参考文献 216