第1章 简单的C程序 1
1.1 内容介绍 1
1.1.1 程序设计语言的发展 1
1.1.2 C语言的特点 2
1.2 实例 2
实例1.2.1 在屏幕上输出信息 2
实例1.2.2 计算两个整数之和并输出到屏幕 5
实例1.2.3 计算两个数的和、差、积、商和余数并输出到屏幕 7
实例1.2.4 求圆的周长和面积 10
实例1.2.5 转义字符的使用 12
实例1.2.6 求三角形的面积 14
实例1.2.7 复合赋值运算符的使用 15
实例1.2.8 自增自减运算符的使用 16
实例1.2.9 检测各种数据类型所占的字节数 18
实例1.2.10 八进制、十六进制整数的表示及输出 19
1.3 小结 20
1.3.1 数据类型 20
1.3.2 标识符、常量与变量 20
1.3.3 运算符 20
1.3.4 printf函数和scanf函数 21
1.3.5 数据类型转换 23
1.4 实验 23
1.4.1 实验目的 23
1.4.2 实验内容 23
习题 25
第2章 程序控制语句 27
2.1 内容介绍 27
2.2 实例 27
实例2.2.1 求两个数中较大的值 27
实例2.2.2 求分段函数的值 29
实例2.2.3 根据考试成绩,输出不同的结果 32
实例2.2.4 编一个程序计算指定年月有几天 35
实例2.2.5 求1~100的累加和 38
实例2.2.6 求阶乘 39
实例2.2.7 从键盘输入任意个正整数,求出最大的数 40
实例2.2.8 求100之内不能被3整除的整数之和 42
实例2.2.9 判断某个整数是否为素数 43
实例2.2.10 打印乘法口诀表 44
实例2.2.11 打印水仙花数(阿姆斯特朗数) 45
实例2.2.12 求π的近似值 47
实例2.2.13 猴子吃桃问题 49
实例2.2.14 鸡兔同笼问题 49
实例2.2.15 求自守数 50
实例2.2.16 求完数 51
实例2.2.17 打鱼晒网问题 52
2.3 小结 53
2.3.1 关系运算符与关系表达式 53
2.3.2 逻辑运算符与逻辑表达式 54
2.3.3 条件运算符 54
2.3.4 选择结构程序 54
2.3.5 循环结构程序 55
2.3.6 continue语句、break语句与goto语句 55
2.4 实验 55
2.4.1 实验目的 55
2.4.2 实验内容 56
习题 62
第3章 指针 64
3.1 内容介绍 64
3.2 实例 64
实例3.2.1 输出变量的地址 64
实例3.2.2 通过指针变量存取变量的值 66
实例3.2.3 指针的算术运算 68
实例3.2.4 指针的关系运算 70
实例3.2.5 多级指针的使用 72
实例3.2.6 动态分配内存 73
实例3.2.7 动态分配多个连续的内存单元 76
实例3.2.8 重新分配存储单元 77
3.3 小结 78
3.3.1 地址、指针与指针变量 78
3.3.2 指针的运算 79
3.3.3 动态内存分配 79
3.4 实验 79
3.4.1 实验目的 79
3.4.2 实验内容 80
习题 82
第4章 数组 84
4.1 内容介绍 84
4.2 实例 84
实例4.2.1 求班级考试的平均成绩 84
实例4.2.2 使用数组输出Fibonacci数列的前42项 86
实例4.2.3 使用指针输出数组中所有元素的值 87
实例4.2.4 冒泡法排序 89
实例4.2.5 使用二维数组处理多人多门成绩 90
实例4.2.6 矩阵相加 92
实例4.2.7 二维数组的地址 93
实例4.2.8 指向一维数组的指针 95
实例4.2.9 字符数组与字符串 97
实例4.2.10 输入两个字符串,按从小到大顺序输出 100
实例4.2.11 字符串排序 102
4.3 小结 104
4.3.1 一维数组 104
4.3.2 二维数组 104
4.3.3 字符数组 105
4.3.4 指针数组与指向一维数组的指针变量 106
4.3.5 常用的字符串处理函数 106
4.3.6 排序算法 107
4.4 实验 107
4.4.1 实验目的 107
4.4.2 实验内容 107
习题 119
第5章 函数 121
5.1 内容介绍 121
5.2 实例 121
实例5.2.1 求两个数的最大值 121
实例5.2.2 编写一个求x的n次方的函数 124
实例5.2.3 交换两个变量值的函数 125
实例5.2.4 求平均成绩 128
实例5.2.5 比较两个字符串大小的函数 129
实例5.2.6 设计魔方阵 131
实例5.2.7 字符串排序 132
实例5.2.8 加减乘除计算器 134
实例5.2.9 计算1!+2!+3!+…+n!的值 136
实例5.2.10 用递归法求阶乘 138
实例5.2.11 局部变量与全局变量 139
实例5.2.12 用静态变量方法计算1!+2!+3!+…+n! 141
5.3 小结 143
5.3.1 函数的定义与声明 143
5.3.2 函数的参数 144
5.3.3 函数的嵌套调用与递归调用 144
5.3.4 变量的存储类别 144
5.4 实验 145
5.4.1 实验目的 145
5.4.2 实验内容 145
习题 155
第6章 构造类型 157
6.1 内容介绍 157
6.2 实例 157
实例6.2.1 输入一个学生的各种信息再输出 157
实例6.2.2 将实例6.2.1 中的年龄改为出生日期 160
实例6.2.3 处理多个学生的信息 162
实例6.2.4 求多个学生的平均成绩 163
实例6.2.5 输入一个短整型整数,求出其高位数和低位数 165
实例6.2.6 获取按键的信息 168
实例6.2.7 输入一个整数,输出对应的星期几 170
实例6.2.8 建立单链表保存学生的信息 172
实例6.2.9 删除链表中指定的结点 175
6.3 小结 177
6.3.1 结构体类型的定义与应用 177
6.3.2 共用体类型的定义与使用 178
6.3.3 枚举类型的定义与使用 178
6.3.4 typedef定义类型 179
6.3.5 单链表 179
6.4 实验 179
6.4.1 实验目的 179
6.4.2 实验内容 179
习题 187
第7章 位运算 190
7.1 内容介绍 190
7.2 实例 190
实例7.2.1 将一个整数的指定位设置为0或1 190
实例7.2.2 取出一个整数的奇数位和偶数位 191
实例7.2.3 将整数的指定位翻转 193
实例7.2.4 求一个数的原码 194
7.3 小结 196
7.3.1 数值的表示方法 196
7.3.2 位运算符 196
7.4 实验 196
7.4.1 实验目的 196
7.4.2 实验内容 196
习题 200
第8章 编译预处理 201
8.1 内容介绍 201
8.2 实例 201
实例8.2.1 求圆的周长、面积和圆球体积 201
实例8.2.2 使用带参数的宏求圆的周长、面积和圆球体积 202
实例8.2.3 将宏定义放在一个单独的文件中求圆的周长、面积和球体积 203
实例8.2.4 条件编译 206
8.3 小结 207
8.3.1 宏定义 207
8.3.2 文件包含 207
8.3.3 条件编译 208
8.4 实验 208
8.4.1 实验目的 208
8.4.2 实验内容 208
习题 209
第9章 文件 211
9.1 内容介绍 211
9.2 实例 211
实例9.2.1 在文件中写入整数1~10 211
实例9.2.2 将文件中的若干个整数读出来 213
实例9.2.3 文件复制 215
实例9.2.4 以行为单位读写文件 217
实例9.2.5 读写学生信息 218
实例9.2.6 随机访问文件 220
实例9.2.7 更改文件名 223
9.3 小结 224
9.3.1 文件的打开与关闭 224
9.3.2 文件的读写 224
9.3.3 文件的定位与出错检测 224
9.4 实验 225
9.4.1 实验目的 225
9.4.2 实验内容 225
习题 228
第10章 综合实例 230
10.1 内容介绍 230
10.2 实例 230
实例10.2.1 计算某一天是星期几 230
实例10.2.2 八皇后问题 232
实例10.2.3 迷宫 235
实例10.2.4 简单的客房管理系统 241
附录A 索引 247
参考文献 252