HF-01
胡凡
本书在第2章对C语言的语法进行了详细的入门讲解,并在其中融入了部分C+的特性。
第3-5章是 入门部分。
第3章 初步训练读者最基本的编写代码能力;
第4章对 常用介绍,内容重要;
第5章是 数学问题,5.7节和5.8节的后半部分内容相对没有那么容易,读者可以选择性阅读。
第6章 C+标准模板库(STL)中的常用容器和algorithm头文件下的常用函数,通过学习本章,读者可以节省许多写代码的时间,把注意力更多地放在解决问题上。
第7~12章是进阶部分。
第7章介绍了 栈、队列和链表,
第8章介绍了 深度优先搜索和广度优先搜索,它们是树和图算法学习的基础
第9章和第10章分别讲解了 树和图的相关算法,它们是数据结构中非常重要的内容,在很多考试中也经常会出现,需要读者特别关注;
第11章介绍了动态规划算法的几个经典模型,并进行了相应的总结;
第12章对字符串hash和KMP算法进行了探讨。
第13章是在前面章节的基础上额外增加的内容,需要读者花一些时间来掌握。
对于PAT乙级考试,前7章内容已经基本够用:对于PAT甲级考试,本书的太部分内容都要堂握(冷门考点会在“本章二维码”中给出);对于CCF的CSP认证,本书能覆盖竞赛内容以外的考点(最后一题偶尔会涉及ACM-ICPC的内容,超出了本书范围);对于考研初试数据结构科目,本书能帮助读者更好地理解各种数据结构与算法。另外,本书还有一本配套习题集——《算法笔记上机训练实战指南》,书中给出了PAT乙级前50题、甲级前107题的详细题解。若读者想要对知识点的熟练度有进一步的提升,推荐同时使用本书的配套习题集(最新的考题会在本书的二维码中添加更新)。习题集的题目顺序是按本书的章节顺序编排的,并配有十分详细的题解,以便读者更有效地进行针对性训练。推荐使用“阅读一节本书的内容,然后做一节习题集对应小节的题目”的训练方式。
1.3 在线评测系统 OJ:Online Judge(在线评测系统)
软件推荐:Dev-C++ https://sourceforge.net/projects/orwelldevcpp/
本书的例题与练习题来自PAT,codeup。
(1)PAT PAT的全称为Programming Ability Test,是考察计算机程序设计能力的一个考试,目前分为乙级(Basic)、甲级(Advanced)和顶级(Top)三个难度层次,其中顶级将涉及大量ACM-ICPC竞赛的考点,报考的人数也相对较少。本书能够覆盖乙级和甲级的考试知识点,并且书中有很多例题都来自PAT甲、乙级的真题。
本书中来自乙级的题目将以B开头,例如B1003表示乙级的题号为1003的题目。PAT乙级真题题库:http://www.patest.cn/contests/pat-b-practise PAT甲级真题地址:http://www.patest.cn/contests/pat-a-practise 对于来自PAT甲、乙级的题目,只需要在网站上面注册一个账号即可提交,例如对B1001来说,在阅读完题目并写出相应的代码后,只需要单击最下方的“提交代码”,接着选择代码对应的语言(例如C或者C++代码的提交都可以选择“C++(g++4.7.2)”这一项),然后把代码粘贴在编辑框内,单击“提交代码”即可,稍等片刻刷新页面即可得到程序评测的结果。
注意:PAT的评测方式为“单点测试”,即代码只需要能够处理一组数据的输入即可,后台会多次运行代码来测试不同的数据,然后对每组数据都返回相应的结果。“单点测试”的具体写法见
(2)codeup codeup是一个有着很多题目的题库,当然它也是一个在线评测系统
对codeup的题目而言,评测方式为“多点测试”(除了第2章的C语言练习题外),也就是说,后台只会运行代码一次来测试不同的数据,只有当所有数据都输出正确的结果时才会让程序通过,只要有一组数据错误,就会返回对应的错误类型。“多点测试”的具体写法见2.10.2。
除了PAT和codeup之外,还有很多优秀的在线评测系统,但是大多数都是侧重于竞赛的,因此如果不是算法竞赛的话,一般不需要去它们上面做题。下面是几个较知名OJ的地址:
POJ : http://poj.org/
HDOJ: http://acm.hdu.edu.cn/
ZOJ: http://acm.zju.edu.cn/
CodeForces:http://codeforces.com/
ACdream: http://acdream.info/
第2章
2.1.1
1.速度:cin和cout可以不指定输入输出格式比较方便,但是cin和cout 消耗的时间比scanf和printf多得多。
2.保存:.cpp文件(C语言的文件扩展名为c,C++的文件扩展名.cpp)。
3. 程序:头文件和主函数。
1.头文件。#include<stdio.h>:头文件。其中,stdio.h是标准输入输出库,如果在程序中需要输入输出,就需要加上这个头文件。stdio的全称是standard input output,h就是head的缩写,.h是头文件的文件格式。math.h 负责一些数学函数,string.h负责跟字符串有关的函数。在C++的标准中,stdio.h更推荐使用等价写法:cstdio,也就是在前面加一个c,然后去掉h即可。
2.主函数。 主函数就是一个程序的入口位置。
4. 读入和写出。 scanf("%d%d",&a,&b); printf("%d",a+b)
scanf("%d%d",&a,&b); scanf读入效据,语句以%d的格式输入a和b,%d是int 型的输入输出示识。
printf("%d",a+b) printf用来输出数据,这条语句计算a+b并以%d格式输出。
2.1.2 变量类型
(1)int 整型 %d
(2)double型 %f
(3)字符型 %c
(4)字符串常量:%s
2.1.3 强制类型转换
2.1.4 符号常量和const常量(两种方式) #define pi =3.14
--------------------------------第二种方式---求周长---------------------
2.1.5 运算符
(1) 算术运算符 (+ - * / (取整) %(取余) ++ --(自增,自减))
自增运算符:i++或++i。区别在于i++是先使用i再将i加1,而++i则是先将i加1再使用i。
(2)关系运算符
(3)逻辑运算符
(4)条件运算符 三目运算符: A ? B:C 如 a > b ? 7 :11
(5)位运算
2.2 顺序结构
2.2.1 赋值表达式
2.2.2 scanf、printf ===>(1.除了字符串或char数组整个输入的情况不加& 2.scanf的%c格式可以读取空格跟换行)
%md 右对齐输出,不足的位置用空格代替 如printf("%5d\n",a); ( 123)
%0md 右对齐输出,不足的位置用0代替 如printf("%05d\n",a);(00123)
%.mf 保留多少位小数 printf('%.4f\n',d1) (12.3456)
2.2.3 getchar() putchar() 输入输出单个字符
2.2.4 注释 /**/ 多行; // 单行
2.2.5 typedef 能够给复杂的数据类型起一个别名
2.2.6 常用math函数
(1)fabs(double x)取绝对值
(2)floor(double x)和ceil(double x)向上下取整
(3)pow(double x,double p) 指数函数
(4) sqrt(double x) 算术平凡根
(5)log(double x) 以自然为底的对数
(7)asin(double x)、acos(double x)atan(double x) 反正弦值,反余弦值,反正切值
(8)round(double x) 四舍五入
HF-01的更多相关文章
- maven实战(01)_搭建开发环境
一 下载maven 在maven官网上可下载maven:http://maven.apache.org/download.cgi 下载好后,解压.我的解压到了:D:\maven\apache-mave ...
- [自制简单操作系统] 1、从0-1到汇编再到c语言的奥秘
目录: 1.用0-1编写最简单的操作系统 2.用汇编改写上面0-1程序 2.1 只用DB的汇编改写版 2.2 加入RESB汇编的改写版 2.3 进一步使用汇编替换0-1文件 2.4 核心程序也用 ...
- [小北De编程手记] : Lesson 01 - Selenium For C# 之 环境搭建
在我看来一个自动化测试平台的构建,是一种很好的了解开发语言,单元测试框架,自动化测试驱动,设计模式等等等的途径.因此,在下选择了自动化测试的这个话题来和大家分享一下本人关于软件开发和自动化测试的认识. ...
- ExtJS实战 01——HelloWorld
前言 Extjs5的发布已经有些日子了,目前的最新稳定版本是Extjs5.1.0,我们可以在官方网站进行下载.不过笔者今天访问得到的是502Bad Gateway,原因可能是sencha的nigix没 ...
- 量化投资学习笔记01——初识Pyalgotrade量化交易回测框架
年初学习量化投资,一开始想自己从头写,还是受了C/C++的影响.结果困在了计算回测数据那里,结果老也不对,就暂时放下了.最近试了一下python的各个量化投资框架,发现一个能用的——pyalgotra ...
- Bugku-CTF加密篇之easy_crypto(0010 0100 01 110 1111011 11 11111 010 000 0 001101 1010 111 100 0 001101 01111 000 001101 00 10 1 0 010 0 000 1 01111 10 11110 101011 1111101)
easy_crypto 0010 0100 01 110 1111011 11 11111 010 000 0 001101 1010 111 100 0 001101 01111 000 00110 ...
- 01.SQLServer性能优化之----强大的文件组----分盘存储
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 文章内容皆自己的理解,如有不足之处欢迎指正~谢谢 前天有学弟问逆天:“逆天,有没有一种方 ...
- 用Kotlin创建第一个Android项目(KAD 01)
原文标题:Create your first Android project using Kotlin (KAD 01) 作者:Antonio Leiva 时间:Nov 21, 2016 原文链接:h ...
- Java企业实训 - 01 - Java前奏
前言: 虽然个人专攻.NET方向,不过由于个人是干教育行业的,方方面面的东西,不能说都必须精通,但肯定多少都会涉及到. 一个菜鸟学员,从啥都不会,经过一步步学习,最后到企业上手掌管一个模块甚至一个项目 ...
- Node.js 教程 01 - 简介、安装及配置
系列目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 Node.js 教程 0 ...
随机推荐
- Jmeter API Performance Test
笔者最近了解 Apache组织开发了基于Java的压力测试工具Apache JMeter.如有兴趣可自行搜索它的相关信息.笔者记录了一些使用方法,如有错误或遗漏,欢迎联系改正. 官方下载地址:http ...
- 通过Hutool 调用远程API接口(POST/GET)
背景:需要调用第三方接口,开启某项任务,用Hutool代替了HttpClient 调用第三方接口,简单粗暴. 代码如下: import java.util.Date; import org.apach ...
- MYSQL SQL语句优化
1.EXPLAIN 做MySQL优化,我们要善用EXPLAIN查看SQL执行计划. 下面来个简单的示例,标注(1.2.3.4.5)我们要重点关注的数据: type列,连接类型.一个好的SQL语句至少要 ...
- js 骂人不带脏字 (!(~+[]) + {})[--[~+""][+[]] * [~+[]] + ~~!+[]] + ({} + [])[[~!+[]] * ~+[]] 图解
看到掘金上翻出一个老梗,前端如何不带脏字得骂产品经理傻逼(sb),复制(!(~+[]) + {})[--[~+""][+[]] * [~+[]] + ~~!+[]] + ({} + ...
- vue+原生JavaScript实现slideDown与slideUp[简单思路]
整个代码如下: <template> <div style="width:400px;margin:100px auto;"> <div class= ...
- 生鲜配送管理系统_升鲜宝V2.0 供应商协同系统设计思想及设计效果展现(一)
生鲜配送管理系统[升鲜宝]V2.0 供应商协同系统小程序设计思想及操作说明(一) 生鲜供应链企业,最重要的二个方面,其中一个是客户服务(销售订单) 另外一个就是供应商的管控,只有做好了这 ...
- typescript中类的继承
typescript中类的继承用到的是:extends和super 先看一下typescript中类的写法: class Demo{ //类的属性 name:string; age:number; / ...
- 人脸识别ArcFace C#DEMO 开发应用全过程
手上有一个项目,需要检验使用本程序的,是否本人!因为在程序使用前,我们都已经做过头像现场采集,所以源头呢是不成问题的,那么人脸检测,人脸比对,怎么办呢?度娘了下,目前流行的几个人脸检测,人脸比对核心, ...
- 测者的测试技术手册:Junit单元测试遇见的一个枚举类型的坑(枚举类型详解)
Enum的简介 枚举类型很早就在计算机语言中存在了,主要被用来将一组相似的值包含进一种类型中,这种类型的名称被定义成独一无二的类型描述符,这就是枚举类型. 在java语言中,枚举类型是一个完整功能的类 ...
- python3 判断字符串是否为纯空格组成的方法
1. isspace()方法 定义一个值为3个空格的变量,使用isspace()方法可直接判断该字符串是否全为空格组成. >>> s = ' ' >>> s.iss ...