第1章 初识C语言 1
1.1 C语言简介 1
1.1.1 C语言的主要特点 1
1.1.2 简单的C语言程序 1
1.2 关于TurboC 2.0 2
1.2.1 C语言程序的调试运行环境 2
1.2.2 进入TurboC 2.0 2
1.2.3 有关汉字显示与输入的问题 4
1.3 本书的约定 4
小结 4
练习一 5
一、选择题 5
二、填空题 5
三、上机题 5
第2章 基本结构与数据输入/输出 6
2.1 C语言的基本结构 6
2.1.1 一个简单的框架 6
2.1.2 解析welcome.c程序 6
2.1.3 重要的规定——语句结束符号 6
2.2 C语言的模块化结构 7
2.2.1 模块化的实现 7
2.2.2 含有两个函数的C语言程序 7
2.2.3 包含多个函数的C语言程序 8
2.3 格式输入/输出语句 8
2.3.1 格式输出函数printf() 8
2.3.2 格式输入函数scanf() 9
2.3.3 清除屏幕指令 10
小结 10
练习二 10
一、选择题 10
二、填空题 11
三、上机题 11
第3章 C语言的数据类型 12
3.1 常量 12
3.1.1 整型常量 12
3.1.2 浮点型常量 13
3.1.3 字符型常量 13
3.1.4 字符串常量 13
3.2 变量 14
3.2.1 关于变量 14
3.2.2 整型变量 16
3.2.3 浮点型变量 18
3.2.4 字符型变量 19
3.2.5 字符串储存的实现 20
3.2.6 枚举型变量 21
3.2.7 变量的存储方式 21
小结 27
练习三 28
一、选择题 28
二、填空题 28
三、上机题 29
第4章 数据格式化输入/输出与格式转换 30
4.1 数据格式化输入输出 30
4.1.1 数据输出函数printf() 30
4.1.2 数据输入语句scanf() 34
4.1.3 字符输入函数getchar() 35
4.1.4 字符输出函数putchar() 36
4.1.5 字符串输入函数gets() 36
4.2 不同数据类型的转换 37
4.2.1 自动转换 37
4.2.2 强制转换 38
小结 39
练习四 40
一、选择题 40
二、填空题 40
三、上机题 40
第5章 运算符与表达式 41
5.1 运算符 41
5.1.1 一元运算符、二元运算符与多元运算符 42
5.1.2 运算符的优先级 42
5.1.3 运算符的结合方向 43
5.1.4 赋值运算符 44
5.1.5 算术运算符 44
5.1.6 关系运算符 46
5.1.7 逻辑运算符 47
5.1.8 条件运算符 48
5.2 表达式 49
5.2.1 算术表达式 49
5.2.2 逻辑表达式与条件判断 49
小结 52
练习五 53
一、选择题 53
二、填空题 54
三、上机题 54
第6章 程序的流程控制 55
6.1 选择型结构 55
6.1.1 if…else…结构 55
6.1.2 switch结构 56
6.2 循环型结构 59
6.2.1 for结构 59
6.2.2 while结构 61
6.2.3 do…while结构 62
6.3 其他控制语句 62
6.3.1 break语句 62
6.3.2 continue语句 63
6.3.3 goto语句 64
6.3.4 exit语句 65
6.4 算法实现与综合运用 65
6.4.1 穷举法 65
6.4.2 迭代法 67
小结 68
练习六 69
一、选择题 69
二、填空题 70
三、上机题 70
第7章 预编译指令 72
7.1 宏 72
7.1.1 无参数的宏 72
7.1.2 带参数的宏 74
7.2 包含头文件 76
7.3 条件编译 77
小结 78
练习七 79
一、选择题 79
二、填空题 79
三、上机题 79
第8章 函数 80
8.1 函数的定义、声明与调用 80
8.1.1 函数定义 80
8.1.2 函数声明 81
8.1.3 函数调用 81
8.2 带参数的函数 82
8.2.1 形式参数与实际参数 83
8.2.2 函数的数据传递 84
8.2.3 带参数的main函数 89
8.3 带返回值的函数 91
8.3.1 带返回值函数与不带返回值函数的区别 91
8.3.2 带返回值函数的使用示例 91
8.4 递归算法 92
8.4.1 算法思想 92
8.4.2 汉诺塔游戏 93
小结 97
练习八 97
一、选择题 97
二、填空题 98
三、上机题 99
第9章 数组 100
9.1 一维数组 100
9.1.1 一维数组的声明 100
9.1.2 一维数组的访问方式 100
9.1.3 一维数组的应用 101
9.2 二维数组与多维数组 101
9.2.1 二维数组的声明 102
9.2.2 二维数组的访问方式 102
9.2.3 二维数组的应用 102
9.2.4 多维数组 103
9.3 字符数组 105
9.3.1 字符数组的声明 105
9.3.2 字符数组与字符串操作 105
9.3.3 字符数组的应用 110
9.4 数组的储存属性 111
小结 111
练习九 112
一、选择题 112
二、填空题 112
三、上机题 113
第10章 指针 114
10.1 变量、地址与指针概述 114
10.2 指针变量 115
10.2.1 指针变量的声明 115
10.2.2 指针变量的使用 115
10.2.3 指针运算 116
10.2.4 二级指针与多级指针 118
10.3 指针与函数 119
10.3.1 函数参数的传值与传址 119
10.3.2 指针作为函数参数 120
10.3.3 指针作为函数返回值 120
10.3.4 指向函数的指针 123
10.4 指针与数组 125
10.4.1 指向一维数组的指针 125
10.4.2 指向二维数组的指针 125
10.4.3 指针与字符串 127
10.4.4 指针数组 129
10.5 使用指针的注意事项 131
10.5.1 指针与所指数据的类型不一致 131
10.5.2 访问未知的地址 132
10.5.3 指针级别混淆 133
10.5.4 被调用函数擅自修改主函数变量的值 133
10.5.5 函数返回一个无效的指针 134
小结 135
练习十 136
一、选择题 136
二、填空题 137
三、上机题 138
第11章 结构体、共用体与枚举型数据 139
11.1 结构体概述 139
11.2 结构体变量 139
11.2.1 结构体的定义 139
11.2.2 结构体变量的声明 140
11.2.3 结构体的使用 140
11.3 结构体与函数 141
11.3.1 结构体作为函数的参数 142
11.3.2 结构体作为函数的返回值 144
11.4 结构体与数组 146
11.4.1 结构体数组的声明 146
11.4.2 结构体数组的初始化 146
11.4.3 结构体数组的使用 147
11.5 结构体与指针 147
11.5.1 指向结构体的指针 147
11.5.2 结构体指针的运算 148
11.5.3 结构体数组与指针 149
11.6 结构体与链表 149
11.6.1 链表的概念 149
11.6.2 用结构体实现链表 150
11.6.3 动态分配内存 152
11.6.4 链表的操作 155
11.7 共用体 165
11.7.1 共用体概述 165
11.7.2 共用体的定义 165
11.7.3 共用体的声明 166
11.7.4 共用体的使用 166
11.8 枚举类型数据 166
11.8.1 枚举类型的定义 167
11.8.2 枚举类型变量的声明 167
11.8.3 枚举类型变量的使用 167
小结 168
练习十一 169
一、选择题 169
二、填空题 170
三、上机题 171
第12章 位运算 172
12.1 位运算概述 172
12.2 位运算符 172
12.2.1 取反运算 172
12.2.2 与运算 173
12.2.3 或运算 174
12.2.4 异或运算 175
12.2.5 左移运算 175
12.2.6 右移运算 177
12.2.7 位运算符的优先级 179
12.3 位运算应用实例 181
小结 185
练习十二 185
一、选择题 185
二、填空题 185
三、上机题 186
第13章 文件 187
13.1 文件概述 187
13.1.1 文件类型 187
13.1.2 文件指针 187
13.2 打开、关闭文件 187
13.2.1 打开文件函数fopen() 188
13.2.2 关闭文件函数fclose() 189
13.3 顺序读写文件 190
13.3.1 输入、输出字符 190
13.3.2 输入、输出字符串 192
13.3.3 格式化输入、输出 195
13.3.4 以二进制方式读写文件 198
13.4 定位读写文件 202
13.4.1 fseek()函数 202
13.4.2 rewind()函数 203
13.4.3 ftell()函数 203
13.5 目录操作 204
13.5.1 改变当前盘 204
13.5.2 改变当前目录 205
13.5.3 创建目录 206
13.5.4 删除目录 206
小结 207
练习十三 207
一、选择题 207
二、填空题 208
三、上机题 208
第14章 C语言绘图 209
14.1 图形模式 209
14.1.1 打开、关闭图形模式 209
14.1.2 图形参数设定 210
14.2 绘图 211
14.2.1 基本绘图函数 211
14.2.2 绘制常见图形 214
14.2.3 填充图形 218
14.3 输出文字 220
14.3.1 图形方式下输出文字 220
14.3.2 设定文字输出样式 221
14.3.3 设定文字输出定位方式 221
14.4 其他相关函数 221
14.4.1 getmaxx()与getmaxy()函数 222
14.4.2 getmaxcolor()函数 222
14.4.3 getpixel()函数 222
小结 222
练习十四 223
一、选择题 223
二、填空题 223
三、上机题 223
附录A ASCII码表 225
A.1 控制字符 225
A.2 键盘字符 225
A.3 特殊字符 226
附录B C语言常用关键字 227
B.1 数据声明关键字 227
B.2 数据储存类别关键字 227
B.3 命令语句 227
B.4 内部函数 228
附录C C语言的运算符优先级别及结合方式 229
附录D 各类函数 230
D.1 输入/输出函数 230
D.2 数学函数 232
D.3 字符函数 233
D.4 字符串函数 234
D.5 内存分配函数 234
D.6 其他函数 234
D.7 图形函数 235