第1章 C程序设计概述 1
1.1 程序设计语言简介 1
1.2 C程序设计语言 2
1.2.1 C语言的发展历史 2
1.2.2 C语言的特点 3
1.3 一个简单的C程序:输出一行文字 3
1.4 C程序的运行过程与运行环境 4
1.4.1 C程序的运行过程 4
1.4.2 C程序的常用运行环境简介 4
1.5 本章小结 12
1.6 上机实训 12
1.7 习题 13
第2章 C程序设计入门 14
2.1 程序举例:两个数相加 14
2.2 数据的输入 16
2.3 C语言中的算术运算 19
2.3.1 C语言中算术运算符 19
2.3.2 数据类型与运算结果的关系 19
2.4 数据的输出 20
2.5 程序举例:计算圆的面积 21
2.5.1 常量 21
2.5.2 宏定义 22
2.6 源程序的书写格式 24
2.7 本章小结 24
2.8 上机实训 25
2.8.1 实训1 a+b的输入输出练习 25
2.8.2 实训2 输出练习 25
2.9 习题 26
第3章 C程序数据的基本运算 28
3.1 数据类型 28
3.2 常量 29
3.3 变量 31
3.3.1 类型修饰符 32
3.3.2 变量的定义 33
3.3.3 存储单元的基本概念 35
3.4 基本运算 35
3.4.1 关系运算 35
3.4.2 逻辑运算 37
3.4.3 位运算 38
3.4.4 赋值运算 41
3.4.5 其他运算 41
3.4.6 运算符的优先级和结合性 42
3.5 不同类型数据之间的转换 44
3.5.1 自动类型转换 44
3.5.2 强制类型转换 45
3.6 本章小结 45
3.7 上机实训 46
3.7.1 实训1 关于圆的运算 46
3.7.2 实训2 判断较大数 47
3.8 习题 47
第4章 C程序控制结构(1) 49
4.1 算法初步 49
4.2 程序控制结构 50
4.3 算法描述 51
4.3.1 流程图 51
4.3.2 N-S图 53
4.3.3 伪码 53
4.4 if语句 54
4.4.1 单分支选择结构 54
4.4.2 双分支选择结构 56
4.4.3 多分支选择结构 57
4.5 用switch语句实现多分支选择结构 59
4.6 本章小结 60
4.7 上机实训 60
4.7.1 实训1 判断某年是否是闰年 60
4.7.2 实训2 简单四则运算 61
4.7.3 实训3 求一元二次方程的根 62
4.8 习题 64
第5章 C程序控制结构(2) 65
5.1 为什么要使用循环 65
5.2 三种循环语句 67
5.2.1 while循环语句 67
5.2.2 do-while循环语句 68
5.2.3 for循环语句 70
5.3 计数控制的循环 72
5.4 标记控件的循环 73
5.5 几种循环语句的比较 75
5.6 循环嵌套 76
5.7 流程转移控制语句 77
5.7.1 goto语句 78
5.7.2 break语句 78
5.7.3 continue语句 80
5.8 结构化程序设计的核心思想 80
5.9 “自顶向下、逐步求精”的设计方法 81
5.10 本章小结 84
5.11 上机实训 85
5.11.1 实训1 求斐波那契(Fibonacci)数列 85
5.11.2 实训2 鸡兔同笼 86
5.11.3 实训3 求水仙花数 88
5.11.4 实训4 求π的近似值 89
5.12 习题 90
第6章 数组 92
6.1 为什么要使用数组 92
6.2 一维数组 93
6.2.1 一维数组定义 93
6.2.2 数组元素的使用 94
6.2.3 一维数组的初始化 95
6.3 字符数组 95
6.3.1 字符数组的定义 95
6.3.2 字符数组的使用 96
6.3.3 字符数组的初始化 96
6.3.4 字符数组的输入与输出 97
6.3.5 字符串输入输出函数 97
6.3.6 字符串函数 99
6.4 二维数组 102
6.5 多维数组 103
6.6 本章小结 103
6.7 上机实训 104
6.7.1 实训1 绝对值排序 104
6.7.2 实训2 两数组最短距离 105
6.7.3 实训3 字符替换 106
6.7.4 实训4 数组旋转 107
6.7.5 实训5 螺旋方阵 109
6.8 习题 111
第7章 结构体、共用体和枚举 112
7.1 程序举例:输出平均成绩最高的学生信息 112
7.2 结构体的定义 115
7.2.1 结构体类型的定义 115
7.2.2 结构体变量的定义 116
7.3 结构体变量的初始化 118
7.4 对结构体成员的访问 119
7.5 结构体数组 120
7.6 共用体 122
7.6.1 共用体的定义 122
7.6.2 共用体变量的引用 124
7.6.3 共用体变量与结构体变量的主要区别 125
7.6.4 共用体类型的应用 126
7.7 枚举类型 127
7.8 用typedef定义类型 130
7.9 本章小结 131
7.10 上机实训 132
7.10.1 实训1 使用结构体和共用体描述客车和货车 132
7.10.2 实训2 假设今天是星期日,判断若干天后是星期几 133
7.11 习题 133
第8章 函数与程序结构 135
8.1 C语言中的程序模块 135
8.2 函数的基本知识 136
8.2.1 函数的定义 137
8.2.2 函数的调用 137
8.2.3 函数原型 137
8.2.4 函数返回值 138
8.2.5 函数参数 140
8.3 函数的递归调用 141
8.4 数组做参数 144
8.5 变量的作用域 146
8.5.1 局部变量 147
8.5.2 全局变量 148
8.5.3 动态存储变量 149
8.5.4 静态存储变量 150
8.6 程序举例 151
8.7 编译预处理 154
8.7.1 宏定义 154
8.7.2 条件编译 157
8.7.3 数据类型再命名 159
8.8 本章小结 160
8.9 上机实训 160
8.9.1 实训1 简单计算器 160
8.9.2 实训2 找素数 162
8.10 习题 163
第9章 C指针 166
9.1 地址和指针的概念 166
9.2 指针变量 167
9.2.1 指针变量的定义 167
9.2.2 指针变量的引用 168
9.3 指针与数组 169
9.3.1 指向数组元素的指针 169
9.3.2 通过指针引用数组元素 170
9.3.3 用数组名作函数参数 170
9.3.4 字符串与指针 172
9.3.5 链表 173
9.4 指针与函数 177
9.4.1 指针变量作函数的参数 177
9.4.2 指向函数的指针 179
9.4.3 返回指针值的函数 180
9.4.4 指向指针的指针 181
9.5 本章小结 182
9.6 上机实训 182
9.6.1 实训1 在输入的字符串中查找有无‘k’字符 182
9.6.2 实训2 将数组中的n个整数按相反顺序存放 183
9.7 习题 184
第10章 文件 186
10.1 什么是文件 186
10.1.1 文本文件 186
10.1.2 二进制文件 187
10.2 文件指针FILE 187
10.3 文件的打开与关闭 188
10.3.1 文件的打开 188
10.3.2 文件的关闭 189
10.4 文本文件的读写操作 189
10.4.1 按文本方式打开文件 189
10.4.2 按文本方式读文件 190
10.4.3 按文本方式写文件 193
10.5 读写二进制文件 196
10.5.1 按二进制方式打开文件 197
10.5.2 按二进制方式读写文件 197
10.6 文件的随机读写 199
10.7 文件定位函数 200
10.8 本章小结 201
10.9 上机实训 202
实训 模拟实现操作系统的文件复制功能 202
10.10 习题 203
附录A ASCII码表 205
附录B C语言关键字 208
附录C 部分标准C库函数 209
附录D 预处理命令的使用 213
附录E 程序在线评测系统介绍 218
参考文献 225