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 ...
随机推荐
- 什么是5G,看了这篇文章你就彻底懂了
人类已经经历了六次信息技术革命为: 第一次:语言的使用 让信息可以分享 第二次:文字的创造 让信息可以记录 第三次:印刷术的发明 让信息可以传得更远 第四次:无线电的发明 让信息可以远距离实时传输 第 ...
- MySQL分组查询与连接查询
一,分组查询 使用ORDER BY子句将表中的数据分成若干组(还是按行显示) 语法: SELECT 字段名[,聚集函数] FROM 表名 [WHERE子句] GROUP BY 要分组的字段名 [ORD ...
- C# 利用位运算传递多个参数方法
前言 在工作中用sendMessage的方法向另外一个进程中传递窗体的位置,长度,宽度四个值,但是sendMessage的方法签名中只有两个参数.于是在网上找到了一些代码,找到了这个利用位运算来合并参 ...
- 魅族5.0以上设备(亲测有效)激活Xposed框架的流程
对于喜欢研究手机的哥们来说,大多时候会使用到Xposed框架及种种功能强大的模块,对于5.0以下的系统版本,只要手机能获得ROOT权限,安装和激活Xposed框架是比较简单的,但随着系统版本的持续更新 ...
- mac git从代码仓库克隆代码,修改并上传
1:添加本地秘钥到代码仓库中 open ~/ .ssh 以github为例: mac 命令行输入open ~/ .ssh,打开id_rsa.pub文件中的内容,复制到github->settin ...
- Python笔记-高阶函数
1.函数式编程 函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量. 函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数! 传入函数 既然 ...
- 解决SVN Cleanup错误: Failed to run the WC DB work queue associated with
[内容来源自https://www.cnblogs.com/ANCAN-RAY/p/8961832.html] 在svn本地目录更新文件夹时,更新失败. 然后svn提示我,让我cleanup一下,于是 ...
- Ubuntu 服务器443端口证书配置
配置虚拟主机: cd /etc/apache2/sites-available 从默认的模板文件中复制过来一份进行自己的配置: sudo cp ./default-ssl.conf ./mysite1 ...
- java的设计模式 - 外观模式(Facade)
目的 看脸模式目的很简单,就是给用户留个好印象,不想让用户关注系统中的具体细节,关注系统的外表(暴露出来的接口)就好了.一些 GUI 的菜单也好,SDK 也好或多或少也会用到这种思想.这更多的是一种思 ...
- postman的简单使用
Postman简单的使用 什么是Postman 在程序开发中用于调试网络程序或者跟踪网页请求.可以对网页进行简单的基本信息调试.Postman最早是作用chrome浏览器插件存在的,但是2018年初 ...