C语言基础总结复盘

经过两周的C语言学习,作者掌握了数据类型、三大结构(顺序、选择、循环)、运算符、指针、函数和数组等核心概念。在虚拟机和Linux环境下进行编程,初期遇到效率问题,后期通过练习得以改善。作者意识到自身知识的不足,计划在后续学习中弥补并提高编程实践能力。
摘要由CSDN通过智能技术生成

  经过近两周的c语言课程学习,我对c语言的知识内容的了解也在不断加深。课程内编程环境用的是虚拟机、Linux,通过虚拟机完成c语言代码的编写。在之前,我在学校使用的是vc++进行编写,刚开始对虚拟机上的操作不太熟练,许多快捷键不太会使用,导致敲代码的效率比较低下,在课后,我不断的进行虚拟机的操作练习,也是将这一缺口补了上来。

  两周的课程讲解了数据类型、三大结构、运算符、指针、函数、数组等方面。下面就对这几个方面的知识进行概况总结:

  一、数据类型

  关键字:系统预先定义好的,有特殊含义的,并且都是小写。不能重新定义!(32个)

数据类型:char、short、int、long、float、double、struct、enum、union、void

控制语句:if、else、while、do、for、switch、case、break、continue、default、goto

 存储类型:auto、static、extern、register

const:只读 

 return:返回函数

Signed:有符号数

Unsigned:无符号数

Sizeof: 计算所占内存空间的大小(字节)//sizeof(数据类型),sizeof(变量名)

typedef: 给已有的数据类型起别名

volatile: 防止编译器优化

三大家族:字符型家族、整型家族、浮点型家族

转义字符、常量等。

常量里面的标识常量(宏):宏只是一个单纯的替换!!宏替换不会考虑运算符的优先级!!

例:

#define ADD(x) x+x

void  main()

{

int m=1,n=2,k=3;

int sum=ADD(m+n)*k;

printf("sum=%d", sum);

}

最后的结果1+2+1+2*3=10

二、三大结构

1、顺序结构(标准输入输出函数)

scanf函数和printf函数

2、选择结构

包括:单分支选择结构,双分支选择结构和多分支选择结构。

单分支选择结构:

if(条件)
{
    执行语句;
}

双分支选择结构:

if(条件)
{
    语句1;
}
else
{
    语句2;
}

多分支选择结构:

(1) if()else if()else if()....else{}

if(条件1为真)
{
    语句1;
}else if(条件2为真)
{
    语句2;
}else if(条件3为真)
{
    语句3;
}.....
else if(条件n为真)
{
    语句n;
}else
{
    语句n+1;
}

例:输入成绩,输出对应的等级

#include <stdio.h>
int main(void)
{
    int score=0;
    printf("请输入成绩\n");
    scanf("%d",&score);
    if(score>=90)
    {
        printf("A\n");
    }
    else if(score>=80)
    {
        printf("B\n");
    }
    else if(score>=70)
    {
        printf("C\n");
    }
    else if(score>=60)
    {
        printf("D\n");
    }
    else
    {
        printf("E\n");
    }
    return 0;
}

(2) switch,case

switch(表达式)
{
    case 标号1:
    语句1;
    case 标号2:
    语句2;
    case 标号3:
    语句3;
    ....
    case 标号n:
    语句n;
    default:
    语句n+1
}

3、循环结构

循环四要素:(1)循环的初始条件(2)条件判断(3)条件更新(4)循环体

循环语句:

(1)while()

(1)循环初始条件
while((2).条件判断)
{
    (4).循环体
    (3).条件更新
}

(2)for()

for((1).循环初始条件(多个就逗号隔开);(2).条件判断;(3).条件更新(多个条件逗号隔开))
{
    (4).循环体
}

(3)do...while()

(1).循环的初始条件
do
{
    (4).循环体
    (3).条件更新
}while((2).条件判断);

其中比较特殊的循环:死循环(用于菜单等)

//while语句的死循环
while(1)
{
}
//for语句的死循环
for(;1;)
{
}

循环中的关键字:break(跳出循环)continue(结束本次循环,继续执行下一次循环)

三、运算符

口诀:单算移关与,异或逻条赋

1、赋值运算符(=)

2、算术运算符

+,-,*,/,%,++,--, / 除号 % 求余/取模

3、关系运算符

<,>,<=,>=,==(表示判断是否等于),!=

4、逻辑运算符

&& (有一为假,结果就为假) || (有一为真,结果就为真) !

四、指针和函数

1、指针

指针是一种保存地址(&i)的数据类型

如何定义指针变量:

int i=5;
//定义一个指向int的指针
int * pi;
pi=&i; //pi指向i
//定义一个指向int的指针的指针
int ** ppi;
ppi=&pi;

指针简单的习题

2、函数

(1)变量

全局变量:定义在函数体外部的变量 作用域:自定义开始到文件结束,一般默认为0

局部变量:定义在函数体内部的变量 作用域:自定义开始到最近的文件结束

(2)自定义函数

1、函数声明

返回值类型 函数名(形式参数列表);
//函数声明
void menu(void); //void 空类型

2、调用函数

变量名=函数名(实际参数列表);
变量名=函数名(实际参数1,实际参数2,实际参数3);
//函数调用
menu();

3、函数定义

返回值类型 函数名(形式参数列表)
{
函数体
return 变量名; //若无返回值该句话可以省略
}
void menu(void)
{
printf("(+)--------add\n");
printf("(-)--------sub\n");
printf("(*)--------mul\n");
printf("(/)--------div\n");
printf("(#)--------exit\n");
}
(3)库函数

1、引入头文件

2、调用库函数

五、数组

1、一维数组

(1)一维数组的定义

每个元素的数据类型 数组名[元素的个数](元素的个数必须为常量)

(2)一维数组的初始化

部分初始化和全部初始化

(3)一维数组的访问

(4)一维数组的相关操作

输入、输出、求数组中最大值/最小值、排序等

2、二维数组

(1)二维数组的定义

每个元素的数据类型 数组名[元素的个数] [元素的个数](元素的个数的必须为常量)

(2)二维数组的初始化

(3)二维数组的访问

(4)二维数组的相关操作

输入、输出、求鞍点、杨辉三角

例:杨辉三角

#include <stdio.h>
int main(void)
{
int arr[10][10]={0};
int i=0,j=0;
//输入
for(i=0;i<=9;i++)
{
for(j=0;j<=i;j++)
{
if(j==0||i==j)
{
arr[i][j]=1;
}else
{
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
}
}
}
//输出
for(i=0;i<=9;i++)
{
for(j=0;j<=i;j++)
{
printf("%-5d",arr[i][j]);
}
printf("\n");
}
return 0;
}

对于以上的内容,有些内容掌握的差不多,有些内容一知半解,在这次的测试中,我深感自身能力的不足,在后面的课程中,我会逐步查缺补漏,不断加深巩固c语言的知识。同时,也会加强自身敲代码的实践能力,不停留在纸上谈兵的阶段。

以上,就是我这两周来的课程总结。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值