CSP-S大纲
发布时间:
计算机基础与编程环境
- 计算机的基本构成(CPU、内存、I/O设备等)
- Windows、Linux等操作系统的基本概念及其常见操作
- 计算机网络和Internet的基本概念
- 计算机的历史及其在现代社会中的常见应用
- 计算机的历史及其在现代社会中的常见应用
- NOI以及相关活动的历史
- 进制的基本概念与进制转换、字节与字
- 程序设计语言以及程序编译和运行的基本概念
- 使用图形界面新建、复制、删除、移动文件或目录
- 使用Windows系统下的集成开发环境(例如Dev C++等)
- 使用Linux系统下的集成开发环境(例如Code::Blocks等)
- g++、gcc等常见编译器的基本使用
C++程序设计
1.程序基本概念
- 标识符、关键字、常量、变量、字符申、表达式的概念
- 常量与变量的命名、定义及作用
- 头文件与名字空间的定义与理解
- 编辑、编译、解释、调试等概念理解
2.基本数据类型
- 整数型:int,long long
- 实数型:float,double
- 字符型:char
- 布尔型:bool
3.程序基本语句
- cin语句,scanf语句,cout语句,printf语句,赋值语句,复合语句
- if语句,switch语句,多层条件语句
- for 语句,while 语句,do while 语句
- 多层循环语句
4.基本运算
- 算术运算:加、减、乘、除、整除、求余
- 关系运算:大于,大于等于,小于,小于等于,等于,不等于
- 逻辑运算:与(&&)、或(||)、非(!)
- 变量自增与自减运算
- 三目运算
- 位运算:与(&)、或(|)、非(~)异或(^)、左移、右移
5.数学库常用函数
- 绝对值函数,四舍五入函数,取上整函数,取下整函数,常用三角函数,对数函数,指数函数,平方根函数
6.结构化程序设计
- 顺序结构、分支结构和循环结构
- 自顶向下、逐步求精的模块化程序设计
- 流程图的概念及流程图描述
7.数组
- 数组定义,数组与数组下标的含义
- 数组的读入与输出
- 纯一维数组的综合运用
- 纯二维数组与多维数组的综合应用
8.字符串的处理
- 字符数组与字符串的关系
- 字符数组的综合应用
- string类定义、相关函数引用
- string类的综合应用
9.函数与递归
- 函数定义与调用,形参与实参
- 传值参数与传引用参数·
- 常量与变量的作用范围
- 递归函数的概念、定义与调用
10.结构体类型
- 结构体的定义及应用
11.指针类型
- 指针的概念及调用
- 指针与数组
- 字符指针与string类
- 指向结构体的指针
12.文件及基本读写
- 文件的基本概念,文本文件的基本操作
- 文本文件类型与二进制文件类型
- 文件重定向、文件读写等操作
13.STL模板应用
中sort函数 - 栈(stack)、队列(queue)、链表(list)、向量(vector)等容器
数据结构
1.线性表
- 链表:单链表、双向链表、循环链表
- 栈
- 队列
2.简单树
- 树的定义及其相关概念
- 树的父亲表示法
- 二叉树的定义及其基本性质
- 二叉树的孩子表示法
- 二叉树的遍历:前序、中序、后序遍历
3.特殊树
- 完全二叉树的定义与基本性质
- 完全二叉树的数组表示法
- 哈夫曼树的定义、构造及其遍历
- 二叉排序树的定义、构造及其遍历
4.简单图
- 图的定义及其相关概念
- 图的邻接矩阵存储
- 图的邻接表存储
算法
1.算法概念与描述
- 算法概念
- 算法描述:自然语言描述、流程图描述、伪代码描述
2.人门算法
- 枚举法
- 模拟法
3,基础算法
- 贪心法
- 递推法
- 递归法
- 二分法·
- 倍增法
4.数值处理算法
- 高精度的加法·
- 高精度的减法·
- 高精度的乘法
- 求高精度整数除以单精度整数的商和余数
5.排序算法
- 排序的基本概念(稳定性等)
- 冒泡排序
- 简单选择排序
- 简单插入排序
6.图论算法
- 图的深度优先遍历算法
- 图的宽度优先遍历算法
- 洪水填充算法(floodfill)
7.动态规划
- 动态规划的基本思路
- 简单一维动态规划
- 简单背包类型动态规划
- 简单区间类型动态规划
数学
1.数及其运算
- 子主数的概念,算术运算(加、减、乘、除、求余)题
- 数的进制:二进制、八进制、十六进制和十进制及其转换
- 编码:ASCI码,哈夫曼编码,格雷码
2.初中数学
- 初中代数
- 初中平面几何
3.初等数论
-
整除、因数、倍数、指数、质数、合数、同余等概念
-
唯一分解定理
- 欧几里德算法(辗转相除法)
- 埃氏筛法和线性筛法求素数
4.组合数学
- 加法原理
- 乘法原理
- 排列及计算公式
- 组合及计算公式
- 杨辉三角公式