第一章 C语言概述 1
第一节 计算机系统的基本组成 1
1.1 基本组成概述 1
1.2 计算机系统的硬件 2
1.3 计算机系统的软件 3
第二节 C语言程序的构成和格式 4
2.1 在屏幕上输出“my first program!” 4
2.2 在屏幕上输出三排“*”号 5
2.3 在屏幕上输出数据值100和100.1 6
2.4 求矩形周长 7
2.5 编写函数fun,其功能是求两个整数的和 8
第二章 数据类型、输入输出操作和常用运算符 9
第一节 标识符、常量、变量 9
1.1 标识符 9
1.2 常量 10
1.3 变量 10
第二节 C语言中的基本数据类型 11
2.1 进制转换 11
2.2 整数类型 12
2.3 实数类型 15
2.4 字符类型 16
第三节 数据输出 18
3.1 printf函数的调用格式 18
3.2 printf函数中常用的格式符 18
3.3 调用printf函数时的注意事项 20
3.4 用putchar输出字符类型数据 21
第四节 数据输入 21
4.1 scanf函数的调用格式 21
4.2 scanf函数中常用的格式说明 22
4.3 调用scanf函数时的注意事项 24
4.4 用getchar函数输入字符类型数据 24
第五节 C语言中常用的运算符 25
5.1 算术运算符 25
5.2 强制类型转换运算符 26
5.3 赋值运算符 27
5.4 自增自减运算符 29
5.5 逗号运算符 30
5.6 关系运算符 30
5.7 逻辑运算符 32
5.8 复合语句和空语句 34
第三章 函数 37
第一节 函数的分类 37
1.1 主函数和一般函数 37
1.2 库函数和用户自定义函数 37
1.3 主调函数和被调函数 38
第二节 用户自定义函数的定义和返回值 39
2.1 用户自定义函数的定义 39
2.2 函数的返回值 41
2.3 函数的调用和函数说明 42
第三节 实在参数和形式参数之间的数据传递 44
第四章 选择结构 48
第一节 程序设计的基本知识 48
1.1 程序设计的基本步骤 48
1.2 算法 48
1.3 流程图 49
第二节 结构化程序设计 50
2.1 顺序结构 50
2.2 选择结构 50
2.3 循环结构 51
第三节 由if语句构成的选择结构 53
3.1 不带else的简单if语句 53
3.2 带else的简单if语句 56
3.3 嵌套的if语句 57
第四节 条件表达式 60
第五节 switch语句 61
5.1 switch语句 61
5.2 break语句 62
第五章 循环结构 66
第一节 while语句 66
1.1 while循环流程图 66
1.2 编写程序,求1+2+3+…+100的值 66
1.3 while循环的一般形式 68
1.4 while循环的执行过程 68
1.5 编程,数字字符转换成对应的整型数据 68
第二节 for语句和用for语句构成的循环结构 69
2.1 用for循环编写程序,求1+2+3+…+100的值 69
2.2 for循环的一般形式 69
2.3 for循环语句流程图及其执行过程 69
2.4 格式说明 70
2.5 编程 70
第三节 do-while语句 71
3.1 直到型循环的流程图 71
3.2 用do—while语句编写程序,求1+2+3+…+100的值 71
3.3 do—while循环一般格式 72
3.4 编程 72
第四节 循环结构的嵌套 73
第五节 break和continue在循环体中的应用 75
5.1 break语句 75
5.2 continue语句 76
第六章 指针 81
第一节 变量的地址和指针 81
1.1 变量与单元 81
1.2 指针变量 81
第二节 指针变量的定义和赋值 82
2.1 定义格式 82
2.2 指针变量的类型和基类型 83
2.3 指针变量的赋值 83
2.4 给指针变量赋空值 84
第三节 指针变量的操作 84
3.1 通过指针变量引用存贮单元 84
3.2 移动指针 85
3.3 指针比较 86
第四节 函数之间地址值的传递 86
4.1 数据传递 86
4.2 函数间返回数据 88
第七章 数组 90
第一节 一维数组的定义和引用 90
1.1 变量、数组简介 90
1.2 一维数组的定义 91
1.3 一维数组的初始化 91
1.4 一维数组元素的赋值 92
1.5 一维数组元素的引用 92
1.6 一维数组元素的遍历 92
第二节 一维数组与指针 93
2.1 三个运算符 93
2.2 一维数组名代表数组首地址 94
2.3 用数组名表示一维数组 94
2.4 用指针变量表示一维数组 95
2.5 函数之间对一维数组和数组元素的引用 96
第三节 一维数组应用举例 97
第四节 二维数组的定义和引用 98
4.1 二维数组的定义 98
4.2 二维数组的初始化 99
4.3 二维数组元素的赋值 101
4.4 二维数组元素的引用 101
4.5 二维数组元素的遍历 102
第五节 二维数组与指针 102
5.1 二维数组名为二重指针常量 102
5.2 把二维数组看成两个一维数组 103
5.3 用指针数组表示二维数组 104
5.4 用行指针来表示二维数组 105
第六节 二维数组举例 106
第八章 字符串 110
第一节 字符串常量 110
1.1 字符串常量 110
1.2 字符串常量的返回值 111
第二节 用一维字符数组表示字符串 111
2.1 用一维字符数组表示字符串的要求 111
2.2 一维字符数组初始化为字符串 112
2.3 一维字符数组赋值为字符串 113
第三节 用指针表示字符串 113
3.1 指针初始化为字符串 113
3.2 指针赋值为字符串 114
3.3 两种表示字符串方式的区别 114
第四节 字符串的输入与输出 115
4.1 用printf输出字符串 115
4.2 用scanf输入字符串 115
4.3 用puts输出字符串 116
4.4 用gets输入字符串 116
第五节 用于字符串处理的函数 116
5.1 字符串复制函数 116
5.2 字符串连接函数 117
5.3 求字符串长度函数 117
5.4 字符串比较函数 118
第六节 字符串数组 118
6.1 用二维字符数组表示字符串数组 118
6.2 用字符型指针数组表示字符串数组 119
第九章 结构体、共用体和用户自定义类型 123
第一节 用typedef说明一种新类型 123
第二节 结构体类型和结构体数组 123
2.1 对结构体类型的现实需求 123
2.2 结构体的类型说明 124
2.3 定义结构体类型的变量、数组和指针 124
2.4 结构体变量的初始化 127
2.5 结构体数组的初始化 127
2.6 引用结构体变量中的数据 128
2.7 结构体数组举例 129
第三节 存储分配 130
3.1 静态存储分配 130
3.2 动态存储分配 131
第四节 链表 133
4.1 一种特殊的结构体 133
4.2 静态链表 133
4.3 带头结点动态链表的创建 134
4.4 带头结点动态链表的遍历 136
4.5 动态链表的插入 136
4.6 动态链表的删除 136
第五节 共用体 137
5.1 举例说明结构体和共用体变量的不同 137
5.2 共用体的类型说明 137
5.3 共用体变量的定义、初始化 138
5.4 共用体变量的引用 138
5.5 利用共用体的特点分别取出成员数据 139
第十章 文件 143
第一节 文件概述 143
1.1 文件的概念 143
1.2 文件的分类 143
1.3 文件的读写操作 143
第二节 文件指针 144
2.1 文件指针概述 144
2.2 文件指针的定义 144
第三节 打开文件 144
3.1 fopen函数 144
3.2 文件的打开方式 145
3.3 C语言中的三个标准文件 145
第四节 判断文件是否结束 145
第五节 关闭文件 146
第六节 文件的读写操作 146
6.1 fscanf函数和fprintf函数 146
6.2 putc(fputc)函数和getc(fgetc)函数 147
6.3 fputs函数和fgets函数 147
6.4 fwrite函数和fread函数 147
第七节 文件定位函数 148
7.1 fseek函数 148
7.2 ftell函数 149
7.3 rewind函数 149
第十一章 位运算 151
第一节 位运算符 151
第二节 位运算符的运算功能 152
2.1 位运算符的运算功能 152
2.2 位数不同的运算数之间的运算规则 153
第十二章 对函数的进一步讨论 154
第一节 传给main函数的参数 154
第二节 函数指针 156
第三节 函数的递归调用 158
第十三章 用户标识符的作用域和存储类 161
第一节 变量的分类及其作用域和生存期 161
1.1 变量的分类 161
1.2 作用域和生存期 162
第二节 局部变量 163
2.1 auto变量 163
2.2 register变量 163
2.3 静态类局部变量 163
第三节 全局变量 165
3.1 全局变量的作用域和生存期 165
3.2 扩展全局变量作用域 166
3.3 静态全局变量 167
第四节 函数的存储分类 168
4.1 用extern说明函数 168
4.2 用static说明函数 168
第十四章 编译预处理 169
第一节 宏替换 169
1.1 不带参数的宏定义 169
1.2 带参数的宏定义 170
1.3 终止宏定义 171
第二节 文件包含 172
2.1 文件包含的概念 172
2.2 文件包含命令的一般格式 172
2.3 文件包含命令的作用 172
2.4 文件包含说明 172