胡凡
  本书在第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的更多相关文章

  1. maven实战(01)_搭建开发环境

    一 下载maven 在maven官网上可下载maven:http://maven.apache.org/download.cgi 下载好后,解压.我的解压到了:D:\maven\apache-mave ...

  2. [自制简单操作系统] 1、从0-1到汇编再到c语言的奥秘

    目录: 1.用0-1编写最简单的操作系统 2.用汇编改写上面0-1程序 2.1 只用DB的汇编改写版  2.2 加入RESB汇编的改写版  2.3 进一步使用汇编替换0-1文件  2.4 核心程序也用 ...

  3. [小北De编程手记] : Lesson 01 - Selenium For C# 之 环境搭建

    在我看来一个自动化测试平台的构建,是一种很好的了解开发语言,单元测试框架,自动化测试驱动,设计模式等等等的途径.因此,在下选择了自动化测试的这个话题来和大家分享一下本人关于软件开发和自动化测试的认识. ...

  4. ExtJS实战 01——HelloWorld

    前言 Extjs5的发布已经有些日子了,目前的最新稳定版本是Extjs5.1.0,我们可以在官方网站进行下载.不过笔者今天访问得到的是502Bad Gateway,原因可能是sencha的nigix没 ...

  5. 量化投资学习笔记01——初识Pyalgotrade量化交易回测框架

    年初学习量化投资,一开始想自己从头写,还是受了C/C++的影响.结果困在了计算回测数据那里,结果老也不对,就暂时放下了.最近试了一下python的各个量化投资框架,发现一个能用的——pyalgotra ...

  6. 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 ...

  7. 01.SQLServer性能优化之----强大的文件组----分盘存储

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 文章内容皆自己的理解,如有不足之处欢迎指正~谢谢 前天有学弟问逆天:“逆天,有没有一种方 ...

  8. 用Kotlin创建第一个Android项目(KAD 01)

    原文标题:Create your first Android project using Kotlin (KAD 01) 作者:Antonio Leiva 时间:Nov 21, 2016 原文链接:h ...

  9. Java企业实训 - 01 - Java前奏

    前言: 虽然个人专攻.NET方向,不过由于个人是干教育行业的,方方面面的东西,不能说都必须精通,但肯定多少都会涉及到. 一个菜鸟学员,从啥都不会,经过一步步学习,最后到企业上手掌管一个模块甚至一个项目 ...

  10. Node.js 教程 01 - 简介、安装及配置

    系列目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 Node.js 教程 0 ...

随机推荐

  1. 第二章 Linux目录学习

    Linux 目录结构相对windows来说更简单,Linux 目录 以 斜杠 / 为根目录,其整体结构是以/为根的树状结构. 使用 tree -L 1 查看1级目录结构 /bin 常用的二进制命令目录 ...

  2. Jetty 开发指南:嵌入式开发示例

    Jetty具有嵌入各种应用程序的丰富历史. 在本节中,我们将向您介绍我们的git存储库中的embedded-jetty-examples项目下的一些简单示例. 重要:生成此文档时,将直接从我们的git ...

  3. 三、Snapman多人协作电子表格之——软件的基本功能

    Snapman多人协作电子表格是一个即时工作系统. 一.SnapmanServer服务端 SnapmanServer服务端在安装Snapman软件一起自带,是一个小巧的控制台程序SnapmanServ ...

  4. (四) Keras Dropout和正则化的使用

    视频学习来源 https://www.bilibili.com/video/av40787141?from=search&seid=17003307842787199553 笔记 使用drop ...

  5. Android com.daimajia.slider.library.SliderLayout 去掉底部半透明标题背景

    com.daimajia.slider.library.SliderLayout 是挺好用的轮播图控件,但是底部灰色背景有时候用不到,所以得去掉. sliderLayout.setCustomAnim ...

  6. Android破解学习之路(十五)—— 【Unity3D】洛菲斯的呼唤(Lophis roguelike)无限金币(道具)的实现 破解

    前言 之前玩月圆之夜玩的挺high的,最近又找到了个与月圆之夜类似的卡牌游戏,游戏名为Lophis roguelike,中文翻译名洛菲斯的呼唤. 但是这个与月圆之夜有所不同,如果失败了,只能从开头重新 ...

  7. STL源码剖析-vector

    STL(Standard Template Library) C++标准模板库,acm选手一定对它不陌生,除了算法,那几乎是“吃饭的家伙了”.我们使用库函数非常方便,且非常高效(相对于自己实现来说). ...

  8. UEFI引导的简单恢复方法

    装系统,尤其是双系统,总是无法绕过引导的坑. linux的grub是非常复杂的引导系统,学习它非常累.而windows又不能引导linux.你可能会想,怎么就没有一种简单的引导方式,就好像引导光盘,引 ...

  9. 重庆3Shape Dental System技术支持

    Dental System 2014中的一些新的功能:为提高生产力增添了自动冠功能软件会自动根据位置设计冠的形状,以适应周围的牙齿和拮抗剂.新的强大的用户体验优化了工作流程和一个新的重新设计的用户界面 ...

  10. java8新特性-默认方法

    作为一个java程序猿,经常会被问基础怎么样,对于这个问题,我理解的有两方面:一是对于java基础的理解和掌握,比如JDK的相关特性:二是工作的经历,毕竟,语言编程是一门实战性质的艺术,就算掌握了千万 ...