第一部分 习题解答 3
概念填空 3
1 计算机与程序设计 3
2 程序设计入门 3
3 选择程序设计 3
4 循环程序设计 3
5 模块化程序设计 4
6 数组程序设计 4
7 指针程序设计 4
8 结构程序设计 4
9 文件程序设计 4
10 低级程序设计 4
在线评测 5
1 计算机与程序设计 5
2 程序设计入门 5
2.1 Hello 5
2.2 输出图案 5
2.3 简单的整数运算 6
2.4 计算二次多项式的值 7
2.5 硬币兑换问题 8
2.6 分离3位整数的每一位 9
2.7 简单的浮点运算 10
2.8 存款利息计算 10
2.9 平均成绩计算 11
2.10 二进制数转换为十进制数 12
3 选择程序设计 13
3.1 奇偶判断 13
3.2 求两个整数的最大值 13
3.3 比较两个整数的大小 14
3.4 分段函数求值 15
3.5 回文判断 16
3.6 字符判断 16
3.7 计算一个整数的位数 18
3.8 选择时间段 19
3.9 求三个整数的最大值 20
3.10 三个整数排序 21
4 循环程序设计 22
4.1 求10个整数的最大值和最小值 22
4.2 求任意多个整数的最大值和最小值 23
4.3 求奇数自然数之和 24
4.4 计算a+aa+aaa+……的值 25
4.5 求任意多个正整数之和 26
4.6 近似计算 27
4.7 打印上三角的99乘法表 28
4.8 打印菱形图案 29
4.9 求最大公约数 30
4.10 求水仙花数 31
4.11 求π的近似值 32
4.12 列出完数 33
4.13 猴子吃桃问题 34
5 模块化程序设计 35
5.1 求和函数 35
5.2 阶乘计算函数 37
5.3 温度转换函数 38
5.4 数字字符判断函数 39
5.5 判断两个实数是否相等的函数 40
5.6 自定义的输出格式函数 41
5.7 牛顿法求一个数的平方根函数 42
5.8 计算两个整数的最大公约数函数 43
5.9 递归计算两个数的最大公约数函数 44
5.10 递归计算正整数n的k次幂函数 45
5.11 用递归把一个整数转换为字符串 47
6 数组程序设计 48
6.1 把一组数据逆序 48
6.2 求一组数据的最大值 49
6.3 一组数据的逆序函数 50
6.4 一组数据的最大值函数 51
6.5 向一组数据首插入一个数据 52
6.6 插入排序 53
6.7 比赛评分 54
6.8 递归倒置一个字符串 55
6.9 统计单词数 58
6.10 单词排序 59
6.11 杨辉三角(二维数组) 61
6.12 矩阵加法 62
6.13 把一个字符串的字符之间插入空格 64
6.14 字符串连接函数 65
7 指针程序设计 66
7.1 用指针间接访问变量 66
7.2 用指针访问一维数组 67
7.3 用指针访问字符串 68
7.4 用列指针访问二维数组 69
7.5 用行指针访问二维数组 70
7.6 用指针调用函数 71
7.7 用指针作为函数的参数 73
7.8 用指向二维数组的列指针作为函数的参数 75
7.9 用指向二维数组的行指针作为函数的参数 76
7.10 字符串逆置函数的指针版(非递归) 78
7.11 动态创建一维数组——求最大值索引的函数 79
7.12 动态创建二维数组——矩阵转置函数 80
7.13 字符串比较 82
7.14 学生姓名排序 85
8 结构程序设计 87
8.1 计算平面上的点之间的距离 87
8.2 计算任意多个平面上的点之间的距离 88
8.3 平面上的点静态链接 90
8.4 平面上的点动态链接 91
8.5 约瑟夫环 94
8.6 比赛报名管理 97
8.7 个人财务管理 100
8.8 通讯录管理 103
8.9 复数运算 108
8.10 输出某一天是星期几 110
9 文件程序设计 112
9.1 文件版的平面上点之间的距离 112
9.2 文件版的最大最小值 114
9.3 文件版的求学生成绩平均值 115
9.4 二进制数据文件的建立和加载 117
9.5 结构数据文件的建立和加载 119
9.6 文件记录的修改和更新 121
9.7 在文件中查找某个记录信息 123
9.8 在文件中插入一条记录 126
9.9 删除文件中的某一条记录 128
9.10把文件中的数据记录排序 130
10 低级程序设计 134
10.1 按位打印无符号整数 134
10.2 判断给定的整数是不是2的整数次幂 135
10.3 把字符包装到无符号整型变量中 136
10.4 把包装到无符号整型变量中的字符解包装 138
10.5 用位段表示扑克牌信息 141
第二部分 实验指导 141
1 命令行实验环境的建立 147
1.1 软件下载与安装 147
1.1.1 MinGW 147
1.1.2 TDM-G++ 148
1.2 在命令行使用gcc编译器 148
1.2.1 分步生成hello.exe 148
1.2.2 一步生成hello.exe 149
1.3 make命令和makefile文件 150
2 集成开发环境的建立 152
2.1 Code::Blocks 152
2.1.1 Code::Blocks的基本用法 153
2.1.2 建立一个工程 153
2.1.3 构造自己的库 155
2.2 其他集成环境 160
2.2.1 Dev-C++ 160
2.2.2 RHIDE 161
2.2.3 Turbo CC++和Win-TC 161
2.2.4 Visual C++ 162
2.2.5 Eclipse CDT 163
3 编辑器 165
3.1 vi编辑器 165
3.1.1 vim的启动和退出 165
3.1.2 在vim/gvim中移动光标 167
3.1.3 开始编辑 168
3.1.4 使用ex模式的命令行 168
3.1.5 在vim中执行外部命令 171
3.1.6 可视模式 171
3.2 Emacs编辑器 171
3.2.1 Emacs简介 171
3.2.2 Emacs软件下载和安装 172
3.2.3 Emacs配置 172
3.2.4 Emacs的基本用法 174
4 程序测试与调试 176
4.1 程序的错误类型 176
4.1.1 编译链接错误 176
4.1.2 运行错误 176
4.1.3 逻辑错误 177
4.2 程序排错 177
4.2.1 使用调试器调试 178
4.2.2 不使用调试器调试 182
4.3 程序测试 183
5 GRX图形库介绍 185
5.1 生成GRX图形库 185
5.2 GRX图形程序设计 187
5.2.1 GRX的Hello World! 187
5.2.2 编译运行GRX Hello程序 188
5.2.3 GRX基本绘图函数 189
5.2.4 用GRX库编译Turbo C图形程序 207
第三部分 实验 219
1 实验准备 219
1.1 实验目的 219
1.2 实验内容 219
1.2.1 熟悉课程网站 219
1.2.2 英文打字练习 219
1.2.3 命令练习 219
1.2.4 编辑练习 220
1.2.5 编译练习 220
2 程序设计入门实验 223
2.1 实验目的 223
2.2 实验内容 223
2.2.1 程序基础练习 223
2.2.2 程序改错 224
2.2.3 问题求解 225
3 选择程序设计实验 226
3.1 实验目的 226
3.2 实验内容 226
3.2.1 程序基础练习 226
3.2.2 程序改错 227
3.2.3 问题求解 228
4 循环程序设计实验 230
4.1 实验目的 230
4.2 实验内容 230
4.2.1 程序基础练习 230
4.2.2 程序改错 233
4.2.3 问题求解 234
5 函数程序设计实验 236
5.1 实验目的 236
5.2 实验内容 236
5.2.1 程序基础练习 236
5.2.2 程序改错 238
5.2.3 问题求解 240
6 数组程序设计实验 242
6.1 实验目的 242
6.2 实验内容 242
6.2.1 程序基础练习 242
6.2.2 程序改错 244
6.2.3 问题求解 246
7 指针程序设计实验 247
7.1 实验目的 247
7.2 实验内容 247
7.2.1 程序基础练习 247
7.2.2 程序改错 249
7.2.3 问题求解 251
8 结构程序设计实验 252
8.1 实验目的 252
8.2 实验内容 252
8.2.1 程序基础练习 252
8.2.2 程序改错 254
8.2.3 问题求解 255
9 文件程序设计实验 257
9.1 实验目的 257
9.2 实验内容 257
9.2.1 程序基础练习 257
9.2.2 程序改错 258
9.2.3 问题求解 259
10 低级程序设计实验 261
10.1 实验目的 261
10.2 实验内容 261
10.2.1 程序基础练习 261
10.2.2 程序改错 262
10.2.3 问题求解 264
第四部分 实验解答 264
1 实验准备 267
2 程序设计入门实验 268
2.1 程序基础练习 268
2.2 程序改错 268
3 选择程序设计实验 271
3.1 程序基础练习 271
3.2 程序改错 271
4 循环程序设计实验 274
4.1 程序基础练习 274
4.2 程序改错 276
5 函数程序设计实验 280
5.1 程序基础练习 280
5.2 程序改错 281
6 数组程序设计实验 285
6.1 程序基础练习 285
6.2 程序改错 287
7 指针程序设计实验 290
7.1 程序基础练习 290
7.2 程序改错 291
8 结构程序设计实验 294
8.1 程序基础练习 294
8.2 程序改错 297
9 文件程序设计实验 300
9.1 程序基础练习 300
9.2 程序改错 300
10 低级程序设计实验 304
10.1 程序基础练习 304
10.2 程序改错 305
关于实验报告 307
第五部分 课程设计 307
1 课程设计的目的 311
2 课程设计的基本要求 312
3 课程设计的基本内容 314
3.1 A组题目 314
3.2 B组题目 315
4 课程设计报告格式 318
5 学时安排 320
6 考核方式与评分标准 321
附录 322
Online Judge简介 322
Moodle简介 323