算法竞赛入门经典(读书笔记)--第一部分
算法竞赛入门经典(读书笔记)--第一部分
第一章 程序设计入门
学习目标:
- 熟悉C语音程序的编译和运行
- 学会编程计算并输出常见的算术表达式的结果
- 掌握整数和浮点数的含义和输出方法
- 初步了解变量的含义
- 掌握整数和浮点数变量的声明方法
- 掌握整数和浮点数的读入方法
- 掌握变量交换的三变量法
- 理解算法竞赛中的程序三部曲:输入、计算、输出
- 记住算法竞赛的目标以及其对程序的要求
1.1 算术表达式
1.2 变量以及其输入
1.3 顺序结构程序设计
1.4 分支结构程序设计
第二章 循环结构程序设计
学习目标
- 掌握for循环的使用方法
- 掌握while循环的使用方法
- 学会使用计数器和累加器
- 学会用输出中间结果的方法调试
- 学会用计时函数测试程序效率
- 学会用重定向的方式读写文件
- 学会用fopen的方式读写文件
- 了解算法竞赛对文件读写方式和命名的严格性
- 记住变量在赋值之前的值是不确定的
- 学会使用条件编译指示构建本地运行环境
2.1 for循环
2.2 循环结构程序设计
2.3 文件操作
第三章 数组和字符串
学习目标
- 掌握一位数组的声明和使用方法
- 掌握二维数组的声明和使用方法
- 掌握字符串的声明、赋值、比较和连接方法
- 熟悉字符的ASCII码和ctype.h中的字符函数
- 正确认识++、+=等能修改变量的运算符
- 学会用编译选项-Wall获得更多的警告信息
- 掌握fgetc和getchar的使用方法
- 了解不同操作系统中换行符的表示方法
- 掌握fgets的使用方法并了解gets的“缓冲区溢出”漏洞
- 理解预处理和迭代开发的技巧
3.1 数组
蛇形填数
3.2 字符数组
3.3 最长回文子串
第四章 函数和递归
学习目标
- 掌握多参数、单反回值的数学函数的定义和使用方法
- 学会使用typedef定义结构体
- 学会使用assert宏帮助调试
- 理解函数调用时用实参给形参赋值的过程
- 学会定义局部变量和全局变量
- 理解调用栈和栈帧,学会用gdb查看调用栈并选择栈帧
- 理解地址和指针
- 理解递归定义和递归函数
- 理解可执行文件中的正文段、数据段和BSS段
- 熟悉堆栈段,了解栈溢出的常见原因
4.1 数学函数
。。。to be continue