第1章 C语言概述 1
1.1 一个C语言程序 1
1.2 程序和程序设计语言 2
1.3 计算机求解问题的步骤 3
1.4 C语言概述 5
1.5 C语言编程环境 8
知识拓展 8
知识链接 8
阅读材料 8
习题 12
上机实验 13
第2章 简单C语言程序 14
2.1 在屏幕上显示信息 15
2.2 数值计算 16
2.3 程序解析 16
2.3.1 简单数据类型 17
2.3.2 算术表达式 25
2.4 顺序结构程序设计 32
2.4.1 顺序结构 32
2.4.2 C顺序结构程序设计举例 32
2.5 输入/输出函数 34
2.5.1 printf函数 34
2.5.2 scanf函数 38
2.5.3 其他输入/输出函数 40
2.6 打印简单字符图案 42
2.7 计算银行存款利息 42
知识拓展 43
知识链接 43
阅读材料 44
习题 48
上机实验 52
第3章 分支结构程序设计 54
3.1 判断从键盘输入的整数的奇偶性 55
3.2 判断学生成绩的等级 55
3.3 分支结构程序设计 56
3.3.1 关系表达式和逻辑表达式 56
3.3.2 基本if语句 57
3.3.3 嵌套的if语句和switch语句 60
3.3.4 设计一个简易计算器 63
知识拓展 65
知识链接 65
阅读材料 65
习题 68
上机实验 73
第4章 循环结构程序设计 74
4.1 累加求和问题 75
4.1.1 求自然数的和 75
4.1.2 计算圆周率 75
4.2 while语句 76
4.2.1 while语句的一般形式 76
4.2.2 统计输入的一批学生的平均成绩 77
4.3 do…while语句 79
4.3.1 do…while语句的一般形式 79
4.3.2 最大公约数问题 80
4.4 for语句 80
4.4.1 for语句的一般形式 80
4.4.2 Fibonacci数列 82
4.5 九九乘法表 83
4.5.1 九九乘法表 83
4.5.2 百钱买百鸡问题 84
4.6 break语句与continue语句 84
4.6.1 break语句 84
4.6.2 continue语句 85
4.7 循环结构程序应用举例 86
知识拓展 90
知识链接 90
阅读材料 90
习题 92
上机实验 98
第5章 数组 100
5.1 排序问题 101
5.1.1 程序解析 101
5.1.2 一维数组的定义和引用 102
5.1.3 一维数组的初始化 102
5.1.4 使用一维数组编程 103
5.2 找出矩阵中最大值所在的位置 104
5.2.1 程序解析 104
5.2.2 二维数组的定义和引用 104
5.2.3 二维数组的初始化 105
5.2.4 使用二维数组编程 106
5.3 字符数组与字符串 107
5.3.1 字符数组 107
5.3.2 统计字符个数 108
5.3.3 字符串处理函数及应用 109
5.4 进位制转换 112
5.4.1 十进制转换为八(二、十六)进制 112
5.4.2 输出进位制转换表 114
知识拓展 116
知识链接 116
阅读材料 116
习题 119
上机实验 124
第6章 模块化程序设计 125
6.1 计算圆的周长和面积 126
6.2 使用函数编写程序 126
6.2.1 函数定义的一般形式 127
6.2.2 函数的参数 129
6.2.3 函数的返回值和类型 130
6.3 变量与函数 130
6.3.1 局部变量和全局变量 130
6.3.2 变量生命周期和静态局部变量 134
6.4 函数的调用 137
6.4.1 函数调用的一般形式 137
6.4.2 函数的调用方式 138
6.4.3 函数与数组 138
6.4.4 函数的嵌套调用 139
6.5 递归问题求解 142
6.6 编译预处理 146
6.6.1 概述 146
6.6.2 宏定义 146
6.6.3 文件包含 149
知识拓展 150
知识链接 151
阅读材料 151
习题 155
上机实验 162
第7章 指针 163
7.1 寻找保险箱密码 164
7.1.1 寻找保险箱密码解析 164
7.1.2 地址与指针 165
7.1.3 指针变量及其定义 166
7.1.4 指针变量的基本运算 166
7.1.5 指针变量的初始化 168
7.2 指针型函数 169
7.2.1 问题解析 169
7.2.2 指针作为函数的参数 170
7.3 排序算法 173
7.3.1 冒泡排序 174
7.3.2 指针、数组和地址间的关系 175
7.3.3 通过指针引用数组元素 175
7.3.4 数组名作为函数的参数 178
7.4 字符串加密 180
7.4.1 加密问题 180
7.4.2 字符串和字符指针 181
7.5 指针数组和指向指针的指针 183
7.5.1 指针数组的概念 183
7.5.2 指向指针的指针 185
7.5.3 指针数组作main()函数的形参 186
7.6 任意个整数的存储问题 187
7.6.1 任意个整数的存储问题 187
7.6.2 用指针实现内存动态分配 188
知识拓展 189
知识链接 189
阅读材料 190
习题 191
上机实验 198
第8章 结构体 199
8.1 构建学生基本信息结构体 200
8.2 结构体变量 201
8.2.1 结构体变量定义 201
8.2.2 结构体变量的引用 203
8.2.3 结构体变量的初始化 204
8.3 结构体数组 204
8.3.1 结构体数组的定义 205
8.3.2 结构体数组的初始化 205
8.3.3 应用举例 206
8.4 指针和结构体 207
8.4.1 指向结构体变量的指针 207
8.4.2 指向结构体数组的指针 208
8.4.3 结构指针参数 208
8.5 结构体综合应用 209
8.5.1 约瑟夫问题 209
8.5.2 用链表处理学生信息 210
知识拓展 217
知识链接 217
阅读材料 217
习题 222
上机实验 229
第9章 文件 230
9.1 将“China 2016!”写入文件 231
9.2 读取学生信息文件 237
9.3 文件复制 238
知识拓展 241
知识链接 241
阅读材料 241
习题 242
上机实验 244
第10章 用C语言开发软件实例 245
10.1 问题描述 245
10.2 需求分析 246
10.3 模块设计 246
10.4 程序编码 246
10.5 程序调试运行 251
知识拓展 252
知识链接 252
阅读材料 253
习题 255
上机实验 255
模拟试题及参考答案 256
模拟试题一 256
模拟试题二 260
模拟试题三 264
模拟试题一参考答案 267
模拟试题二参考答案 269
模拟试题三参考答案 271
附录 273
附录A ASCII码表 273
附录B C99关键字 275
附录C 常用库函数 275
附录D 常见出错信息 279
参考文献 286