C语言 复习


C语言

学习了一年C语言,进行一次复习,跟着B站视频进行总结的,不是很全面,有点乱


变量,常量,表达式,运算符

三种基本结构

  1. 顺序结构:
    输入:scanf,
    输出:printf,
    赋值:=,+=,-=

  2. 选择结构:
    if:单分支,
    if else:双分支,
    多个分支:if else 嵌套 ,switch

  3. 循环结构:
    for(语句1;语句2;语句3){//次数已知
    循环体
    }
    while(){//次数不知
    循环体
    }
    条件:关系表达:>,<,,!=,<=,>=;
    逻辑表达式:&&,||,!.
    闰年:year%4
    0&&year%100!=0||year%400==0
    while(1){//无限循环
    If() break;
    }
    循环的嵌套:
    1、表格式数据——行、列,外层循环处理行,内层循环来处理列
    2、处理穷举问题,如:换钱(100元换成1元,5元,10元,20元,50元)

数组:

名字:数组名,编号——下标,index
#define MAXSIZE 100
int a[MAXSIZE];
(int)malloc(80*sizeof(int)) //把后面的空间按照前面括号中的形式分开,动态分配内存
排序:

  1. 冒泡排序:前小后大,相邻数据两两比较
    N个数,比较N-1趟
//冒泡法排序
for(i=0;i<n;i++){
    for(j=0;j<n-1-i;j++){
        if(a[j]>a[j+1]){
            t=a[j];
            a[j]=a[j+1];
            a[j+1]=t;
        }
    }
}
  1. 选择法排序:n-1趟,升序:选择最小的,与当前第一位的比较交换 (不稳定)
//选择法排序
for(i=0;i<n-1;i++){
    for(j=i+1;j<n;j++){
        if(a[i]>a[j]){
            t=a[i];
            a[i]=a[j];
            a[j]=t;
        }
    }
}
  1. 快速排序:
//快速排序
void swap(int arr[],int low,int high){//交换顺序
    int temp;
    temp=arr[low];
    arr[low]=arr[high];
    arr[high]=temp;
}
int Partition(int arr[],int low, int high){
    int base=arr[low];//基准值
    while(low<high){
        while(low<high&&arr[low]>=base){
            high--;
        }
        swap(arr,low,high);
        while(low<high&&arr[low]<=base){
            low++;
        }
        swap(arr,low, high);
    }
    return low;
}
void QuickSort(int arr[],int low, int high){
    if(low<high){
        int base=Partition(arr,low,high);
        QuickSort(arr,low, base-1);
        QuickSort(arr,base+1,high);
    }
}

二维数组:

Int num[m][n];m*n
Num[i][j]: i:0—m-1 j:0—n-1
双重循环来操作二维数组
for(i=0;i<m;i++)
for(j=0;j<n;j++)

字符串:

string:线,串
例:姓名,地址,学号,身份证号码
char StuName[50]=”tom”; ‘\0’
char StuName[50]={‘t’,’o’,’m’,’\0’)};
scanf(“%s”,StuName);
printf(“%s”,StuName);
getchar ();
putchar();
gets(StuName);
puts(StuName);
ASCII:A->Z
字符串处理函数:复用,重复利用,string.h
函数:function——能够完成一个独立功能的程序段落,函数sin(30)=0.5,作用,功能

  1. 求字符串长度:strlen(字符数组);
  2. 字符串比较:比较其ASCII码,strcmp(字符串数组1,字符串数组2);//1>2:+;1=2:0;1<2:-
  3. 字符串复制:strcpy(字符数组1,字符数组2,n);//把字符串数组2里的n个字符复制到字符串数组1里
  4. 字符串连接:strcat(字符串数组1,字符串数组2);
  5. 大小写转换
    大->小:strlwr(字符串)大->小
    小->大:strupr(字符串)小->大

函数

  1. 定义函数的格式:
    返回值的类型 函数名(形式参数1类型 参数1,形式参数2类型 参数2,…{
    。。。。。。
    }
  2. 调用 call格式:函数名(实际参数1,实际参数2,。。。)
  3. 函数声明:被调用的函数在主函数之前则不用进行声明
    函数声明格式:返回值的类型 函数名(参数1类型 参数1,参数2类型 参数2,…)
    实参和形参的个数,类型一致,均由实参传递给形参一一对应
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值