第一阶段训练内容............................................................................................................ 1
2-7 ............................................................................................................................ 1
8-10 .......................................................................................................................... 2
11-12......................................................................................................................... 3
13-14 ........................................................................................................................ 3
15-18 ........................................................................................................................ 4
19-22 ........................................................................................................................ 5
第一阶段训练内容:
目的:以思维训练及基础编程为主导,帮助学生建立逻辑思维推理能力
通过思维过程图,将思维活动与程序的实现相结合
加强基础编程能力
强化编程的调试能力(在Linux下使用跟踪调试命令:gdb)
要求:训练前期使用Dev C++ 完成程序(不含指针)
后期在Linux下使用gcc或g++完成程序
所有程序先明确实现原理,写明思维过程,再将思维过程图转换为流程图,最后
编程实现
不得上网直接查找答案
按照任务顺序完成
1. 逻辑思维训练
内容:训练两周时间,每天连续进行逻辑思维训练(10次)
目的:培养逻辑思维推理能力
目标:5-6步(6选4,颜色不重复)
6-7步(6选4,颜色可重复)
要求:1) 独立思考完成
2) 在了解逻辑思维游戏的规则后,组内相互出题,手工进行 5 次逻辑思维游戏 2-7
下列2 — 5题中使用while循环
2. 在一给定整型数组中,查找出最大值或最小值
目的:通过思维过程图,将思维活动与程序的实现相结合
要求:1)用while循环比较
关键字:数组,循环
下列3 — 7题的字符串操作在同一个数组(源数组)内完成,并假定源数组足够大
3. 有一给定字符串,删除指定位置的字符
要求:1)使用数组循环,不使用字符串复制函数
2)参考文字编辑方式
3)在一个数组中完成,假定源数组足够大
关键字:流程图,思维描述,思维过程
4. 有一给定字符串,在指定位置插入一指定的字符
目的:通过思维过程图,将思维活动与程序的实现相结合
要求:1)使用数组循环,不使用字符串复制函数
2)参考文字编辑方式
关键字:字符串,字符数组
5. 在一给定字符串中,在指定位置插入另一字符串
目的:通过思维过程图,将思维活动与程序的实现相结合
要求:1)使用数组循环,不使用字符串复制函数
2)参考文字编辑方式
关键字:while, do..while
6. 在一给定字符串中,从指定位置删除指定长度的字符
目的:通过思维过程图,将思维活动与程序的实现相结合
要求:1)使用数组循环,不使用字符串复制函数
2)参考文字编辑方式
关键字:字符串
7. 对一给定的字符串进行排序,排序方向可以指定
目的:通过思维过程图,将思维活动与程序的实现相结合
要求:1)排序方法不限
关键字:排序
8-10
8. 从一给定长度(m)的数组 A 中,随机取出(n)个字符,存入另一长度为(n)的数组 B 中
(存入数组 B 中的字符,由另一变量 R 控制是否允许重复)。
目的:通过思维过程图,将思维活动与程序的实现相结合
要求:1)数组A在程序中初始化(其内容为英文字母)
2)使用随机生成函数 rand()
3) 参照“逻辑思维游戏”的出题过程
关键字:随机数
9. 在一长度为(n)的数组 C 中,存入从长度(m)的数组 A 中选出的(n)个字符,与第(8)
题中生成的数组 B 的内容进行比较,输出比较结果。比较结果有一个
中有一个字符的位置与数组 B 的相同;比较结果有一个
符与数组 B 的相同,但位置不同。
要 求:1)数组B的来源分为两种:
a. 由计算机随机生成(参照上题)
b. 从文件读入。内容均来自于A数组。
2)输出比较结果时,先输出
3)直到输出结果为(n)个
4)参照“逻辑思维游戏”的解题过程
关键字:随机数,概率
10. 用递归方法计算n的阶乘
目的:1)通过思维过程图,将思维活动与程序的实现相结合
2)掌握递归算法
要求:用命令行参数指定n值
关键字:递归,阶乘
11-12
11.实现“挖地雷”游戏中,地雷生成的功能,并计算雷周围的数字。
目的:1)通过思维过程图,将思维活动与程序的实现相结合
2)熟悉掌握文件的基本操作
要 求:1)用一维数组表示雷区
2)雷区的宽、高,雷的数量,由参数文件保存
参数文件格式如下:
width = 20
height= 20
minenum=10
3)参数文件的扩展名为 .ini 或 .cfg
参数文件中的参数行顺序可以互换、可以有空行,等号两边可以有空格
4)参数文件的读取参考 scanf、fscanf、sscanf 等函数
关键字:一维数组,二维数组,参数文件,动态分配空间
12.实现“挖地雷”游戏中,翻雷的功能。
目 的:1)通过思维过程图,将思维活动与程序的实现相结合
要 求:1)主函数不超过8行
3)能多次玩游戏,一次游戏结束后用户可以选择继续玩还是退出
关键字:函数,返回值,函数调用,结构化,局部变量,全局变量
13-14
从12题以后对程序进行结构化设计,画结构图,按照doxgyen的风格对文件进行注释
13.用文本文件编辑设置一迷宫(墙用
入口到出口(有效的非重复)的通路。
目的:1)通过思维过程图,将思维活动与程序的实现相结合
2)熟悉掌握文件的基本操作
要求:1)不同的迷宫为不同的文本文件,用程序的命令行参数确定使用的迷宫文件
2)迷宫文件的扩展名为.map
3)用递归方法实现
4)通道的宽度可以是单空格,也可以是多空格
关键字:命令行,命令行参数,变量命名,命名风格,程序注释
14.实现人民币的大小写转换功能
目的:通过思维过程图,将思维活动与程序的实现相结合
要 求:1)通过命令行输入:01234.560,输出:壹仟贰佰叁拾肆元伍角陆分
2)输入的数字长度不限
关键字:ASCII,二进制,数值,变量,变量内容,变量值
15-18
从15题以后在Linux下开发,用 gdb 进行程序调试,并使用shell脚本对程序进行测试
15. 分别将字符变量、整型变量、长整型变量、浮点变量、双精度变量的存储值(而非表示
值)用二进制形式表示(以8位一组输出)。
目的:1)通过思维过程图,将思维活动与程序的实现相结合
2)掌握各种数据类型的存储形式,位运算,表示值、存储值
3)学习并熟练使用 Linux 的常用命令
4)学习并熟练使用 vi 编辑器的指法
要求:1)用移位运算完成
2)在命令行输入:
binoutput c 254, 输出:11111110
binoutput s 253, 输出:00000000 11111101
binoutput l 252, 输出:00000000 00000000 00000000 11111100
binoutput f 0.75, 输出:00111111 01000000 00000000 00000000
binoutput d 250.0,输出:01000000 01101111 01000000 00000000 00000000 00000000 00000000 00000000
3)从本题开始每天做20道 10-16-2 进制转换的练习,持续2周
关键字:ASCII,十进制,十六进制,二进制,八进制,数值,变量,变量内容,变量值
16. 使用shell编写测试脚本
目的:培养质量控制意识,掌握测试方法
要求:1)学习并熟练使用 Linux shell 的常用命令
2)参照提供的测试脚本示例完成以下任务:
1. 编写第2-7题中的任意两题的测试脚本
2. 编写第14题的测试脚本
关键字:Linux命令,vi编辑器
17. 同组内交换阅读并检查程序
目的:1)规范编程风格
要求:1)检查第12-15题的源程序、测试用例及doxgyen生成的文档
2)是否满足题目本身要求
3)检查命名(文件名、函数名、变量名)、注释、排版格式
4)不符合要求的原作者修改程序
5)第15题的程序修改工作由检查人员完成(包括程序的测试工作和bug的修改)
18. 将任意文件中的内容以十六进制形式输出
目的:1)熟悉文件存储格式,以及二进制、十进制、十六进制间的数值转换
2)制作文件查看工具,可以用于后面任务中查看文件存储内容
要求:参考UltraEdit中的十六进制编辑模式
关键字:格式化输出
19-22
从18题以后使用makefile,源程序必须有注释
19. 用Base64处理文件
目的:1)掌握Base64编码原理
要求:1)使用移位运算进行处理
2)通过命令行参数控制编码或解码,-d 为解码,-e为编码
命令行格式为:Base64 -e
Base64 -d
3)对文件进行编码时,满76字节换行
关键字:指针,位运算
20. 将自己的名字存放在文本文件中,编写程序,将文本文件的内容用字符在控制窗口以行列(点阵)方式显示
目的:1)通过思维过程图,将思维活动与程序的实现相结合
2)掌握汉字的内码、编码和点阵
3)熟悉掌握文件的基本操作
要求:1)可以中英文混排显示,英文以中文全角形式横向输出
2)以16点阵显示
3)用命令行参数指定点阵库文件、存放名字的文本文件
4)将主程序和汉字显示程序与其他程序分离,至少为3个源文件
关键字:汉字点阵,内码,编码(ISO-8859-1、GB2312、GBK,BIG5、UTF-8)
21. 截取一BMP图片的指定区域,并保存到另一个BMP文件
目 的:1)了解BMP图片原理,掌握图片处理的方法
要 求:1)使用命令行方式完成
2)能截取8位及以上的图片
3)在Windows、Linux系统中都能正常截图
关键字:BMP文件格式,结构体,字节对齐,像素,色深,分辨率
22. 技术交流及任务完成情况检查
目的:1)规范编程风格
要求:1)检查18-21题的源程序、测试用例及Doxgyen生成的文档
2)是否满足题目本身要求
3)检查命名(文件名、函数名、变量名)、注释、排版格式
4)不符合要求的原作者修改程序
5)寻找、总结任务的最佳解决方案
第一阶段训练内容............................................................................................................ 1
2-7 ............................................................................................................................ 1
8-10 .......................................................................................................................... 2
11-12......................................................................................................................... 3
13-14 ........................................................................................................................ 3
15-18 ........................................................................................................................ 4
19-22 ........................................................................................................................ 5
第一阶段训练内容:
目的:以思维训练及基础编程为主导,帮助学生建立逻辑思维推理能力
通过思维过程图,将思维活动与程序的实现相结合
加强基础编程能力
强化编程的调试能力(在Linux下使用跟踪调试命令:gdb)
要求:训练前期使用Dev C++ 完成程序(不含指针)
后期在Linux下使用gcc或g++完成程序
所有程序先明确实现原理,写明思维过程,再将思维过程图转换为流程图,最后
编程实现
不得上网直接查找答案
按照任务顺序完成
1. 逻辑思维训练
内容:训练两周时间,每天连续进行逻辑思维训练(10次)
目的:培养逻辑思维推理能力
目标:5-6步(6选4,颜色不重复)
6-7步(6选4,颜色可重复)
要求:1) 独立思考完成
2) 在了解逻辑思维游戏的规则后,组内相互出题,手工进行 5 次逻辑思维游戏 2-7
下列2 — 5题中使用while循环
2. 在一给定整型数组中,查找出最大值或最小值
目的:通过思维过程图,将思维活动与程序的实现相结合
要求:1)用while循环比较
关键字:数组,循环
下列3 — 7题的字符串操作在同一个数组(源数组)内完成,并假定源数组足够大
3. 有一给定字符串,删除指定位置的字符
要求:1)使用数组循环,不使用字符串复制函数
2)参考文字编辑方式
3)在一个数组中完成,假定源数组足够大
关键字:流程图,思维描述,思维过程
4. 有一给定字符串,在指定位置插入一指定的字符
目的:通过思维过程图,将思维活动与程序的实现相结合
要求:1)使用数组循环,不使用字符串复制函数
2)参考文字编辑方式
关键字:字符串,字符数组
5. 在一给定字符串中,在指定位置插入另一字符串
目的:通过思维过程图,将思维活动与程序的实现相结合
要求:1)使用数组循环,不使用字符串复制函数
2)参考文字编辑方式
关键字:while, do..while
6. 在一给定字符串中,从指定位置删除指定长度的字符
目的:通过思维过程图,将思维活动与程序的实现相结合
要求:1)使用数组循环,不使用字符串复制函数
2)参考文字编辑方式
关键字:字符串
7. 对一给定的字符串进行排序,排序方向可以指定
目的:通过思维过程图,将思维活动与程序的实现相结合
要求:1)排序方法不限
关键字:排序
8-10
8. 从一给定长度(m)的数组 A 中,随机取出(n)个字符,存入另一长度为(n)的数组 B 中
(存入数组 B 中的字符,由另一变量 R 控制是否允许重复)。
目的:通过思维过程图,将思维活动与程序的实现相结合
要求:1)数组A在程序中初始化(其内容为英文字母)
2)使用随机生成函数 rand()
3) 参照“逻辑思维游戏”的出题过程
关键字:随机数
9. 在一长度为(n)的数组 C 中,存入从长度(m)的数组 A 中选出的(n)个字符,与第(8)
题中生成的数组 B 的内容进行比较,输出比较结果。比较结果有一个
中有一个字符的位置与数组 B 的相同;比较结果有一个
符与数组 B 的相同,但位置不同。
要 求:1)数组B的来源分为两种:
a. 由计算机随机生成(参照上题)
b. 从文件读入。内容均来自于A数组。
2)输出比较结果时,先输出
3)直到输出结果为(n)个
4)参照“逻辑思维游戏”的解题过程
关键字:随机数,概率
10. 用递归方法计算n的阶乘
目的:1)通过思维过程图,将思维活动与程序的实现相结合
2)掌握递归算法
要求:用命令行参数指定n值
关键字:递归,阶乘
11-12
11.实现“挖地雷”游戏中,地雷生成的功能,并计算雷周围的数字。
目的:1)通过思维过程图,将思维活动与程序的实现相结合
2)熟悉掌握文件的基本操作
要 求:1)用一维数组表示雷区
2)雷区的宽、高,雷的数量,由参数文件保存
参数文件格式如下:
width = 20
height= 20
minenum=10
3)参数文件的扩展名为 .ini 或 .cfg
参数文件中的参数行顺序可以互换、可以有空行,等号两边可以有空格
4)参数文件的读取参考 scanf、fscanf、sscanf 等函数
关键字:一维数组,二维数组,参数文件,动态分配空间
12.实现“挖地雷”游戏中,翻雷的功能。
目 的:1)通过思维过程图,将思维活动与程序的实现相结合
要 求:1)主函数不超过8行
3)能多次玩游戏,一次游戏结束后用户可以选择继续玩还是退出
关键字:函数,返回值,函数调用,结构化,局部变量,全局变量
13-14
从12题以后对程序进行结构化设计,画结构图,按照doxgyen的风格对文件进行注释
13.用文本文件编辑设置一迷宫(墙用
入口到出口(有效的非重复)的通路。
目的:1)通过思维过程图,将思维活动与程序的实现相结合
2)熟悉掌握文件的基本操作
要求:1)不同的迷宫为不同的文本文件,用程序的命令行参数确定使用的迷宫文件
2)迷宫文件的扩展名为.map
3)用递归方法实现
4)通道的宽度可以是单空格,也可以是多空格
关键字:命令行,命令行参数,变量命名,命名风格,程序注释
14.实现人民币的大小写转换功能
目的:通过思维过程图,将思维活动与程序的实现相结合
要 求:1)通过命令行输入:01234.560,输出:壹仟贰佰叁拾肆元伍角陆分
2)输入的数字长度不限
关键字:ASCII,二进制,数值,变量,变量内容,变量值
15-18
从15题以后在Linux下开发,用 gdb 进行程序调试,并使用shell脚本对程序进行测试
15. 分别将字符变量、整型变量、长整型变量、浮点变量、双精度变量的存储值(而非表示
值)用二进制形式表示(以8位一组输出)。
目的:1)通过思维过程图,将思维活动与程序的实现相结合
2)掌握各种数据类型的存储形式,位运算,表示值、存储值
3)学习并熟练使用 Linux 的常用命令
4)学习并熟练使用 vi 编辑器的指法
要求:1)用移位运算完成
2)在命令行输入:
binoutput c 254, 输出:11111110
binoutput s 253, 输出:00000000 11111101
binoutput l 252, 输出:00000000 00000000 00000000 11111100
binoutput f 0.75, 输出:00111111 01000000 00000000 00000000
binoutput d 250.0,输出:01000000 01101111 01000000 00000000 00000000 00000000 00000000 00000000
3)从本题开始每天做20道 10-16-2 进制转换的练习,持续2周
关键字:ASCII,十进制,十六进制,二进制,八进制,数值,变量,变量内容,变量值
16. 使用shell编写测试脚本
目的:培养质量控制意识,掌握测试方法
要求:1)学习并熟练使用 Linux shell 的常用命令
2)参照提供的测试脚本示例完成以下任务:
1. 编写第2-7题中的任意两题的测试脚本
2. 编写第14题的测试脚本
关键字:Linux命令,vi编辑器
17. 同组内交换阅读并检查程序
目的:1)规范编程风格
要求:1)检查第12-15题的源程序、测试用例及doxgyen生成的文档
2)是否满足题目本身要求
3)检查命名(文件名、函数名、变量名)、注释、排版格式
4)不符合要求的原作者修改程序
5)第15题的程序修改工作由检查人员完成(包括程序的测试工作和bug的修改)
18. 将任意文件中的内容以十六进制形式输出
目的:1)熟悉文件存储格式,以及二进制、十进制、十六进制间的数值转换
2)制作文件查看工具,可以用于后面任务中查看文件存储内容
要求:参考UltraEdit中的十六进制编辑模式
关键字:格式化输出
19-22
从18题以后使用makefile,源程序必须有注释
19. 用Base64处理文件
目的:1)掌握Base64编码原理
要求:1)使用移位运算进行处理
2)通过命令行参数控制编码或解码,-d 为解码,-e为编码
命令行格式为:Base64 -e
Base64 -d
3)对文件进行编码时,满76字节换行
关键字:指针,位运算
20. 将自己的名字存放在文本文件中,编写程序,将文本文件的内容用字符在控制窗口以行列(点阵)方式显示
目的:1)通过思维过程图,将思维活动与程序的实现相结合
2)掌握汉字的内码、编码和点阵
3)熟悉掌握文件的基本操作
要求:1)可以中英文混排显示,英文以中文全角形式横向输出
2)以16点阵显示
3)用命令行参数指定点阵库文件、存放名字的文本文件
4)将主程序和汉字显示程序与其他程序分离,至少为3个源文件
关键字:汉字点阵,内码,编码(ISO-8859-1、GB2312、GBK,BIG5、UTF-8)
21. 截取一BMP图片的指定区域,并保存到另一个BMP文件
目 的:1)了解BMP图片原理,掌握图片处理的方法
要 求:1)使用命令行方式完成
2)能截取8位及以上的图片
3)在Windows、Linux系统中都能正常截图
关键字:BMP文件格式,结构体,字节对齐,像素,色深,分辨率
22. 技术交流及任务完成情况检查
目的:1)规范编程风格
要求:1)检查18-21题的源程序、测试用例及Doxgyen生成的文档
2)是否满足题目本身要求
3)检查命名(文件名、函数名、变量名)、注释、排版格式
4)不符合要求的原作者修改程序
5)寻找、总结任务的最佳解决方案