• PAT知识点快速学习--num1


    绝对值在1e9范围内可定义成int,1e10-1e18是long long,注意,在大于2^31-1的时候,为long long赋初值要加LL

     char c=111//直接输出以后会发现出来的是对应111的ascii的字符

    ascii范围0-127,小写字母比大写多32,大写A65

    无论是对字符数组单独赋值还是直接赋值字符串,都可以printf%s直接输出

    bool类在非0都是true,比如-1,也是true,而true会打印为1,这时候初始赋值-1,输出按照%d 就是1

    强制类型转换(int)a这种是直接舍掉,但是float类的%.1f遵守四舍五入

    #define pi 3.14

    const double pi=3.14都是对的,都是不可更改的常量

    宏定义由于是完全替换,有时候因为空格问题存在陷阱

    define Cal(x) (x*2+1)

    在实际的a=1 Cal(x+1)中 x+1*2+1=4,添加括号的过程极容易出现问题

     0x3fffffff是(1<<30)-1

    n=m=a=3;//会让他们都变成3

    n/=m+1代表的是n=n/(m+1)

    ~a是按位取反

    (a=3)a^0b10=1,^是异或,不一样的是1

    字符串和字符数组在输入的时候%s,后面不用&,其他都用

    long long对应%lld,double对应%lf,但是double的输出是%f

    scanf("%d:%d:%d",&a,&n,&c);对应的输入数据应该是12:33:12这种的

    但是如果中间是空格的话,可以不加。

    注意scanf(%s)这里面遇到第一个空格就停止d

    注意%c可以读取空格,并且,如果他们前面有东西,是遇到空格停止,不是跳到空格下一个

    scanf(%d%c%s,&a,&b,&c);在输入1 ab c这种情况下,a=1 b为空格,c="ab"

     如果需要输出%或者\,两次才可输出 printf("%%") printf("\")

    printf没有&

    printf(%3d,a);如果a不足三位,右对齐,占三位,左边补空格,如果大于等于三位正常输出

    如果printf(%03d,a);唯一的区别就是,补0而不是空格

    printf(%.3f,a)浮点数(double也可)保持三位小数(带四舍六入五成双(跟四舍五入的区别是,如果最后一位是5,在前面一位是奇数的时候进位,在是偶数的时候社区,但是题目里如果说保留几位小数,或者精确到小数点后几位,都要这么写)),四舍五入是round()

    c1=getchar()

    getchar()

    c2=getchar()

    这样可以跳过字符。

    puchar(c1)//这类可以输出。

    abs是整型的,fabs是浮点的,不可以混,abs对应<stdlib.h>,fabs对<math.h>

    typedef long long LL

    是给数据类型起别名,整个文件里面都用别名操作即可,不用在main里面

    double db;floor(db)向下取整,ceil(db)向上取整。注意如果是db负数,floor出来的绝对值更大,向下是向真实的下。

    pow(double r,double h)r^h r的h次方。上面这三个,还有sqrt,输出都要用浮点数%f,不然都是0,对整数用也是%f!!!!

     log(x),实质上logex,如果有别的东西,logab这种的,用 logeb/logea来解决

     sin cos tan里面是弧度制。(真的会在考试用到咩。。)

    pi=acos(-1)//因为cos(pi)=-1

    一旦用了switch 每个case都要有break,最后要有default

    数组大小超过1e6,记得开在main外面。

    多行的时候可以用getchar()吸收每行末尾换行符号,注意scanf里面如果先读了整数,再读取字符,换行啥的要getchar一下

    gets将换行作为识别符号,读取一行(gets遇到空格不会停哦),所以中间也要getchar

    如果你在int a,char c,读取的时候,先输入1然后换行,字符c在%c读取就会把换行读进去

     如果读取的时候不用%s也不用gets,这时候若要使用printf或者puts,一定要记得加''

    下面几个用字符串数组也是可以的哦

    strlen(str)返回长度,不包括''

    strcmp(a,b)是对ab进行比较,a大返回正数,b大返回负数,(都不一定是绝对值1哦),完全相同返回0

    从0~min(strlen(a),strlen(b))进行比较,前面从哪位开始比出大小,就谁大,如果前面都相同的话,谁长谁大

    eg:"abce">"abcde",因为前面已经比出来大小了

    strcpy(a,b)b复制给a

    若数组是形参,直接修改本体,不能作为返回值出现

    指针是unsigned类的整数

    int *p1,p2;p2不是指针

    指针变量存的是地址,因此赋值也是赋值地址int*p=&a;//是赋给p不是*p的哦

    int*p;

    p=&a;

    int *p;p-1偏移的是一个int的位置

    int a[10]  a=&a[0]//a代表的是地址

    在void swap(int*a,int*b)中,调用函数传入的是swap(&a,&b),*a,*b是指针,swap函数里面当做指针用

    void swap(int *a,int*b)
    {
    int temp=*a;
    *a=*b;
    *b=temp;
    }

    在void change(int&a)中,传入change(a),&a是引用,函数里面对a的改变是真实生效的,在函数里面就当做变量a正常用

    void swap2(int &a,int &b)
    {
    int temp=a;
    a=b;
    b=temp;
    }

    常量不可以使用引用,如果void swap(int &*a1,int&*a2),实际上传入的额应该是*a1和*a2两个指针,但是&a这是常量,所以要用int*p=&a,然后传入p这种操作

    如果struct student ,student*p,stu  ,访问里面元素(*p).id,或者p->id;但是stu只能是stu.id

    如果重新定义构造函数,默认函数会被覆盖

    时间才能证明一切,选好了就尽力去做吧!
  • 相关阅读:
    TCP四种定时器--学习笔记
    Python魔术师--self
    python的socket里 gethostbyname 与 gethostbyname_ex 的区别
    用python查看URL编码的中文
    基于linux 的2048
    用灵活的指针访问类私有变量
    ie8无法拉伸背景图
    图片的onerror 事件解析
    stream.js
    Promise
  • 原文地址:https://www.cnblogs.com/tingxilin/p/11222094.html
Copyright © 2020-2023  润新知