• 脸熟赛


    新生赛基础知识笔记

    数据类型

    基本类型

    数据型

    • 整型

      关键字 格式控制符
      short int %d
      int %d
      long long int %lld
    • 浮点型

      保留字 格式控制符
      float %f
      double %lf

    字符型

    • 字符
      保留字 格式控制符
      char %c

    构造类型

    指针类型

    空类型

    • void

    数据结构

    基本结构

    单个变量

    char c;		//声明变量
    int i = 0;		//对变量进行声明及初始化
    

    数组

    int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};		//对数组进行声明及初始化
    double s[10] = {};		//对数组进行声明并默认初始化为0
    

    高级结构

    运算符

    种类

    • 算术运算符

      符号 用例
      + a+b
      - a-b
      * a*b
      / a/b
      % a%b
      ++ a++, ++a
      -- a--, --a
    • 关系运算符

      符号 用例
      > a > b
      < a < b
      >= a >= b
      <= a <= b
      == a == b
      != a != b
    • 逻辑运算符

      符号 用例
      && a && b
      || a || b
      ! !a
    • 位运算符

      符号 用例
      & a & b
      | a | b
      ~ ~a
      ^ a ^ b
      << a << b
      >> a >> b
      /*
      	异或的交换律
      	a^b = b^a
       */
      //a[i] <==> a[i+1]
      a[i] = a[i] ^ a[i+1];
      a[i+1] = a[i] ^ a[i+1];
      a[i] = a[i] ^ a[i+1];
      

    • 赋值运算符

      • 简单赋值

        符号 用例
        = a = b
      • 复合算术赋值

        符号 用例
        += a += b
        -= a -= b
        *= a *= b
        /= a /= b
        %= a %= b
      • 复合位运算赋值

        符号 用例
        = a &= b
        = a |= b
        = a ^= b
        <= a <<= b
        >= a >>= b
    • 条件运算符

      符号 用例
      ?: (a>=b) ? a : b
    • 逗号运算符

      符号 用例
      , a = 0, b = 2, c = 3
    • 指针运算符

      符号 用例
      * *p
      & &n
    • 求字节运算符

      符号 用例
      sizeof sizeof(a)
    • 特殊运算符

      符号 用例
      ( ) (a-b)*c
      [ ] a[N]
      . a.b
      -> a->b

    优先级

    计算机按照从小到大(优先级),从左往右(先后顺序)对表达式进行运算。

    优先级 符号
    1 ( ) [ ] . ->
    2 (类型) ! ~ - ++ -- * &
    3 * / %
    4 + -
    5 << >>
    6 > < >= <=
    7 == !=
    8 &
    9 ^
    10 |
    11 &&
    12 ||
    13 ?:
    14 = += -= *= /= %= <<= >>= &= |= ^=
    15 ,

    流程控制语句

    分支

    • if else

        /*
           判断成绩:
           优秀:[85,100],
           良好:[70,85),
           及格:[60,70),
           不及格:[0,60);
           其他未定义
           */
          int score = 0;      //初始化成绩
          if (score > 100) {      //未定义
              printf("你可真牛逼");
          } else if (score >= 85) {       //优秀
              printf("优秀");
          } else if (score >= 70) {       //良好
              printf("良好");
          } else if (score >= 60) {       //及格
              printf("及格");
          } else if (score >= 0) {        //不及格
              //printf("加了个油!!!");
          		printf("不及格");
          } else {
              printf("你也挺牛逼");        //未定义
          }
      
    • switch case

    循环

    • for

         /*
           for循环遍历数组
           */
          double a[10] = {};      //声明数组并初始化为0
          for (int i = 0; i < 10; i++) {      //以i为循环变量对遍历数组
              printf("a[%d] : %lf
      ", i, a[i]);
          }
      
    • while

         /*
           while循环遍历数组
           */
          int a[10];      //声明数组不进行初始化
          int n = 0;      //声明循环变量
          
          while (n < 10) {
              printf("a[%d] : %d
      ", n, a[n]);
            	n++;
          }
      
      
    • do while

    函数

    库函数

    • 标准输入输出库函数

        #include<stdio.h>		//声明调用标准库函数
      

      其中常用函数有 scanf(), printf()等。

    • 标准库函数

        #include<stdlib.h>		//声明调用标准库函数
      

      其中常用函数有 qsort()等。

    自定义函数

    算法

    排序

    • 冒泡排序

      /*
       冒泡排序
       对长度为len的数组a[]进行排序
       */
      void myBubbleSort(int a[], int len) {
          for (int i = 0; i < len; i++) {
              
              //printf("	第%d次循环
      ", i);      //循环次数
      
              for (int j = 0; j < len - 1 - i; j++) {
                  if (a[j] > a[j+1]) {    //从小到大进行排序
                      
                      //交换 : a[j] <==> a[j+1]
                      //printf("	swap> a[%d] : %d	to 	a[%d] : %d
      ", j, a[j], j+1, a[j+1]);
      
                      int t = a[j];
                      a[j] = a[j+1];
                      a[j+1] = t;
      
                  }
              }
          }
          return;
      }
      
    • 快速排序

      //声明调用
      #include<stdio.h>
      #include<stdlib.h>
      
      
      //自定函数的声明及定义
      int myComp(const void*a,const void*b) {
          return *(int*)a-*(int*)b;
      }
      
      
      //主函数
      int main() {
          /*
           数组变量声明及初始化
           */
          int a[10] = {13579, 24680, 0, -129837, 92, 6, -2, -837, 666, 123};
          int n = 10;
          
          //for循环遍历数组
          printf("排序前
      ");
          for(int i = 0; i < n; i++) {
              printf("	a[%d] = %d
      ", i, a[i]);
          }
          
          qsort(a, 10, sizeof(int), myComp);        //调用库函数
      
          
          //while循环遍历数组
          printf("排序后:
      ");
          n = 0;
          while (n < 10) {
              printf("	a[%d] : %d
      ", n, a[n]);
              n++;
          }
          
          return 0;
      }
      
      

    知识结构图

    image

  • 相关阅读:
    函数之返回值
    函数之初识函数
    三元运算符
    枚举enumerate
    模块
    迭代器
    斐波那契
    leetcode155 最小栈
    leetcode94 二叉树的中序遍历
    leetcode20 有效的括号
  • 原文地址:https://www.cnblogs.com/dzcq0239/p/15171752.html
Copyright © 2020-2023  润新知