zoukankan      html  css  js  c++  java
  • 科大C语言笔记-1

    关于C语言:

    1.计算机的数据在电脑中保存是以二进制的形式.

    2.编译预处理不是C语言的一部分,不占运行时间,不要加分号

    3.每个C语言程序写完后,都是先编译,后链接,最后运行。(.c--->.obj--->.exe)

    4.记住预定义标识符可以做为用户标识符。

    C语言只有八、十、十六进制,没有二进制。但是运行时候,所有的进制都要转换成二进制来进行处理

    小数的合法写法:C语言小数点两边有一个是零的话,可以不用写。

    1.0在C语言中可写成1.

    0.1在C语言中可以写成.1

    2.333e-1 就是合法的,且数据是2.333×10-1

    e前e后必有数,e后必为整数

    算术表达式:+,-,*,/,%

    考试一定要注意:“/” 两边都是整型的话,结果就是一个整型。 3/2的结果就是1.

    “/” 如果有一边是小数,那么结果就是小数。 3/2.0的结果就是0.5

    “%”符号请一定要注意是余数,  %符号两边要求是整数。不是整数就错了。[注意!!!]

    赋值表达式:表达式数值是最左边的数值,a=b=5;该表达式为5,常量不可以赋值。

    1、int x=y=10: 错啦,定义时,不可以连续赋值

    2、int x,y;

    x=y=10; 对滴,定义完成后,可以连续赋值。

    3、赋值的左边只能是一个变量。

    4、int x=7.7;对滴,x就是7   //int 则截断小数部分

    5、float y=7;对滴,x就是7.0000000  //float,则小数部分自动加0

    字符数据的合法形式::

    '1' 是字符占一个字节,"1"字符串占两个字节(含有一个结束符号)。

    '0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。

    一般考试表示单个字符错误的形式:'65' "1"  

    字符是可以进行算术运算的,记住: '0'-0=48

    大写字母和小写字母转换的方法: 'A'+32='a' 相互之间一般是相差32。

    字符是可以进行算术运算的,记住: '0'-0=48

    大写字母和小写字母转换的方法: 'A'+32='a' 相互之间一般是相差32。

    八进制转义字符: ‘141’ 是合法的, 前导的0是不能写的。

    十六进制转义字符:’x6d’ 才是合法的,前导的0不能写,并且x是小写

    格式说明

    表示内容

    格式说明

    表示内容

    %d

    整型 int

    %c

    字符 char

    %ld

    长整型 long int

    %s

    字符串

    %f

    浮点型 float

    %o

    八进制

    %lf

    double

    %#o

    带前导的八进制

    %%

    输出一个百分号

    %x

    十六进制

    %5d

     

    %#x

    带前导的十六进制

    printf(“%2d”,123 ); 第二部分有三位,大于指定的两位,原样输出123

    printf(“%5d”,123 ); 第二部分有三位,小于指定的五位左边补两个空格 123

    printf(“%10f”,1.25 ); 小数要求补足6位的,没有六位的补0,。结果为 1.250000

    printf(“%5.3f”,125 ); 小数三位,整个五位,结果为1.250(小数点算一位)//其实输出的是0.000        

    printf(“%3.1f”,1.25 );小数一位,整个三位,结果为1.3(要进行四舍五入)

    scanf(“a=%d,b=%d”,&a,&b)

    一定要记住是以第一部分的格式在终端输入数据。考试核心为:一模一样。

    在黑色屏幕上面输入的为 a=12,b=34才可以把12和34正确给a和b 。有一点不同也不行。

    2、scanf(“%d,%d”,x,y);这种写法绝对错误,scanf的第二个部分一定要是地址

    scanf(“%d,%d”,&x,&y);注意写成这样才可以!

    二叉树的遍历是指按照某种顺序访问二叉树中的每个结点,使每个结点被访问一次且仅被访问一次。

    通过一次完整的遍历,可使二叉树中结点信息由非线性排列变为某种意义上的线性序列。也就是说,遍历操作使非线性结构线性化

    二叉树:根结点、根结点的左子树和根结点的右子树三部分组成

    DLR(称为先序遍历)、LDR(称为中序遍历)和LRD(称为后序遍历)

    1 先序遍历二叉树的递归算法如下:
    2 void PreOrder(BiTree bt)
    3 {/*先序遍历二叉树bt*/
    4   if (bt==NULL) return; /*递归调用的结束条件*/
    5   Visite(bt->data); /*访问结点的数据域*/
    6   PreOrder(bt->lchild); /*先序递归遍历bt 的左子树*/
    7   PreOrder(bt->rchild); /*先序递归遍历bt 的右子树*/
    8 }
    中序遍历二叉树的递归算法如下:
    void InOrder(BiTree bt)
    {/*中序遍历二叉树bt*/
      if (bt==NULL) return; /*递归调用的结束条件*/
      InOrder(bt->lchild); /*中序递归遍历bt 的左子树*/
      Visite(bt->data); /*访问结点的数据域*/
      InOrder(bt->rchild); /*中序递归遍历bt 的右子树*/
    }
    后序遍历二叉树的递归算法如下:
    void PostOrder(BiTree bt)
    {/*后序遍历二叉树bt*/
    if (bt==NULL) return; /*递归调用的结束条件*/
      PostOrder(bt->lchild); /*后序递归遍历bt 的左子树*/
      PostOrder(bt->rchild); /*后序递归遍历bt 的右子树*/
      Visite(bt->data); /*访问结点的数据域*/
    }

    层次遍历

    所谓二叉树的层次遍历,是指从二叉树的第一层(根结点)开始,从上至下逐层遍历,在同一层中,则按从左到右的顺序对结点逐个访问

    malloc() 函数     #include <stdlib.h>

    其原型为:void* malloc (size_t size);    

    【参数说明】size 为需要分配的内存空间的大小,以字节(Byte)计

    【函数说明】malloc() 在堆区分配一块指定大小的内存空间,用来存放数据。这块内存空间在函数执行完成后不会被初始化,它们的值是未知的。如果希望在分配内存的同时进行初始化,请使用 calloc() 函数

    分配成功返回指向该内存的地址,失败则返回 NULL

    由于申请内存空间时可能有也可能没有,所以需要自行判断是否申请成功,再进行后续操作。

    函数的返回值类型是 void *,void 并不是说没有返回值或者返回空指针,而是返回的指针类型未知。所以在使用 malloc() 时通常需要进行强制类型转换,将 void 指针转换成我们希望的类型

    char *ptr = (char *)malloc(10);  // 分配10个字节的内存空间,用来存放字符
    Coding
  • 相关阅读:
    js返回上个页面再刷新
    xm-select 获取选选择的值
    接口可以跨域访问
    gitlab 版本查看
    gitlab 在linux安装环境下存储地址
    iosUILable基本使用及其所有方法
    iOS富文本字符串AttributedString具体用法
    SQL Server 开发指南
    SQL Server 数据库安全
    SQL Server 触发器
  • 原文地址:https://www.cnblogs.com/ccie-leon-43093/p/5510960.html
Copyright © 2011-2022 走看看