#C语言-基础篇(Ⅱ)

目录

四、选择结构与while结构

4.1 选择结构(if语句)

 4.2 while结构

五、函数(基础)

 六、数组(基础)

6.1 定义

 6.2 数组下标

 6.3 数组下标的使用

6.3.1 数组的打印

6.3.2 数组的输入

七、操作符(基础)

7.1 算数操作符

 7.2 移位操作符(二进制位操作)

 7.3 赋值操作符(=)

7.4 单目操作符

7.5 关系操作符(比较大小、相等)

7.6 逻辑操作符

 7.7 条件操作符(三目操作符)

 7.8 逗号表达式

 7.9 下标引用、函数调用和结构体成员

 7.10 常见关键字(了解)


四、选择结构与while结构

4.1 选择结构(if语句)

       if语句简单的说就是做选择,“要么。。。要么。。。”,而选择是针对某一件事的不同选择,得到与之选择对应的结果,所以在使用选择结构时应注意其中的选项是否对应该事件,以避免不必要的麻烦和错误。

代码4_1:

#include<stdio.h>

int main()
{
    int input=0;
    printf("       ");//提问+选项

//例:printf("你会好好学习吗?(1/0)>:");

    scanf("%d",&input);//输入你所选择的数值(1/0)
    if(input==1){
        printf("     ");//结果1
    }
    else{
        printf("     ");//结果2
    }

    return 0;
}

例4_1:

#include<stdio.h>

int main()
{
    int input=0;
    printf("你会好好学习吗?(1/0)>:");
    scanf("%d",&input);//输入你所选择的数值(1/0)

    if(input==1){
        printf("找到好工作");//结果1
    }
    else{
        printf("卖红薯");//结果2
    }

    return 0;
}

说明:

|(1)例4_1采用了代码4_1的格式,其中选择结构的主体是:if......else......;

(2)其次,例4_1中给出了两个选择,1或者0,输入选择的数值,就可以得到预先设置好、与之对应的结果;

(3)当选择选项大于两项时,我们可以把else换为else if ,即:if......else if......else if......。

 如,例4_2:输入成绩,判断成绩的等级

#include<stdio.h>

int main()
{
    int input=0;
    printf("你的分数?(0~100)>:");
    scanf("%d",&input);//输入你所选择的数值(0~100)

    if(input<60){
        printf("不及格\n");//结果1
    }

    else if(input<80){
        printf("及格\n");//结果2
    }

    else if(input<90){
        printf("良好\n");//结果3
    }

    else if(input<=100){
        printf("优秀\n");
    }

    return 0;
}

 4.2 while结构

        while的意思就是“当...时”,所以while结构就是当符合while的条件时才会执行的结构

代码4_2:

#include<stdio.h>

int main()
{
    int line=0;
    printf("    ");//前提

    while(line<100)//循环条件
    {
        ~ ~ ~ ~ ~ ~ ~ ;//循环内容
        line++
    }

    return 0;
}

 例4_2:

#include<stdio.h>

int main()
{
    int line=60;
    printf("当line值为1时开始学习\n");//条件

    while(line>0)//循环条件
    {//循环内容
        printf("line\n");
        line--;
    }

    if(line==0)
        print("开始学习");

    return 0;
}

五、函数(基础)

代码5_1:

构造函数名(参数类型+参数符号...)//main函数除外
{
    函数体(内容);
}

 构造函数在main函数内使用:函数名(参数)。

例5_1:判断最大值Max函数

#include<stdio.h>

int Max(int x,int y);//函数声明

int main()
{
    int a=0,b=0;
    scanf("%d %d",&a,&b);
    printf("%d\n",Max(a,b);

    return 0;
}

int Max(int x,int y)
{
    if(x>y)
        return x;
    else
        return y;
}

说明:

(1)函数调用前需要先对函数声明:函数类型+函数名+参数+;

(2)通常函数需要返回值,即函数类型;如果函数无返回值,则函数类型为void;

(3)调用函数中的参数不需要必须与主函数中参数相同;

 六、数组(基础)

6.1 定义

数组为一组相同类型元素的集合,整型、字符型、浮点型均可。

创建数组:数组类型+数组名[  ],其中[  ]中为数组中元素的个数,按实际情况填入数值。

如:int a[10]={0};//定义一个整型数组,其中最多十个元素,并全部初始化为0。

假设a数组中有十个元素:4,5,9,8,6,3,1,4,7,5

则其各数所对应下标为:  0,1,2,3,4,5,6,7,8,9,

元素4598631475
下标0123456789

 所以,可得数组中元素下标均从0开始。

 6.2 数组下标

       现已定义了一个整型数组a[4]={ 5, 8, 6 , 1 ,4}

       可知其各数对应下标分别为:0,1,2,3。

当我们需要从数组中取出某个位置的数值时,就需要用到数组下标了。

如从数组a中取第一个元素,则表示为a[0],即a[0]=5,可自行验证。

 6.3 数组下标的使用

6.3.1 数组的打印

代码6_1:打印第三个元素

#include<stdio.h>

int main()
{
    int a[10]={1,2,3,4,5,6,7,8,9,10};
    printf("%d\n",a[3]);

    return 0;
}

代码6_2:打印数组中所有元素

#include<stdio.h>

int main()
{
    int i=0;//设置i为下标表示
    int a[10]={1,2,3,4,5,6,7,8,9,10};

    while(i<=9)
    {
        printf("%d\n",a[i]);//打印下标为i的元素
        i++;
    }

    return 0;
}

6.3.2 数组的输入

代码6_3:

#include<stdio.h>

int main()
{
    int i=0;//设置i为下标表示
    int a[10]={0};//创建整型数组并初始化为0

    while(i<=9)
    {
        scanf("%d ",&a[i]);//输入下标为i的元素
        i++;
    }

    return 0;
}

七、操作符(基础)

7.1 算数操作符

图7_1 算数操作符
+-*/%
除(商)取余(余数)

说明:

(1)加减乘法与数学中相同;

(2)除法/,计算整型时得到的值仅为商值,若操作数中有浮点数则得值为浮点数;

(3)取余%,运用时两个操作数必须是整型数,得值为除法余数

例:5/2=2,5%2=1

 7.2 移位操作符(二进制位操作)

图7_2 移位操作符
<<>>&|^
左移右移按位与按位或按位异或

说明:

(1)左移<<、右移>>操作符,即左移或右移二进制位;

例:int a=1(二进制01);int b=a<<1;则b=2(二进制10)。

(2)按位与&,一真一假=0,两真为真(1),两假为假(0);

(3)按位或|,一真两真为真(1)两假为假(0);

(4)按位异或^,对应二进制相同取0,,相异取1;

例:

a=3二进制011
b=5二进制101
a&b=1二进制001
a|b=7二进制111
a^b=6二进制110

 7.3 赋值操作符(=)

复合赋值符:+=、-=、/=、*=

7.4 单目操作符

图7_3 单目操作符
±&sizeof~--、++*(类型)
逻辑反操作正负号取地址计算变量/类型所占空间大小对二进制数按位取反前置、后置间接访问操作符强制类型转换

说明:

(1)!:把真(非零数)变为假(0),把假(0)变为真(定值1);

例:i)a=10;!a=0;     ii)b=0;!b=1;

(2)±:即正负值;

(3)&:取地址符号(现了解);

(4)sizeof:计算变量空间大小时括号可省略,计算类型时则括号不可省略;

(5)~:0转换为1,1转换为0;

(6)--、++:前置时,先对变量进行减一或加一再进行其他操作,后置先其他操作再减一或加一;

(7)*:解引用操作符(先了解);

(8)强制类型转换:float a=1.5;则(int)a=1;

 补:原码、反码、补码(二进制)

       正数在内存中存储是即为其本身二进制码;而负数存储为补码,所以反码、补码可以说是对于负数而存在的。(以下所说反码、补码均针对于负数而言;正数的原、反、补相同)

i)原码最高位为符号位,1为负,0为正,并且打印一个数的二进制码时通常打印原码;

ii)反码:符号位不变,原码各个二进制位均按位取反所得;

iii)补码为反码加1所得;

例:

数值:0数值:-1
原码:000000原码:100001
反码:000000反码:111110
补码:000000补码:111111

7.5 关系操作符(比较大小、相等)

图7_4 关系操作符
>>=<<=!===
大于大于等于小于小于等于不等于等于

7.6 逻辑操作符

图7_5 逻辑操作符
&&逻辑与
||逻辑或

说明:真-非0;假-0

(1)真&&真=>1;假&&真=>0;假&&假=>0;

(2)真||真=>1;假||真=>1;假||假=>0;

(3)逻辑操作符的短路性质:运算从左自由进行时,一旦能够确定逻辑表达式值,立即终止

 7.7 条件操作符(三目操作符)

表达式:exp1?exp2:exp3;

说明:

若exp1为真,则执行exp2;若exp2为假,则执行exp3.

例:

int Max=0;

Max=(a>b?a:b);

 7.8 逗号表达式

表达式:(exp1,exp2,exp3......expN......)

说明:

逗号表达式,会保持由左到右运算,但最终所得值为最后的exp;

例:

int a=0,b=0,c=0;

a=(b++,c--,5+5);所以最终的值:a=10,b=1,c=-1

 7.9 下标引用、函数调用和结构体成员

图7_6
[  ](   )./->
下标引用函数调用结构体成员

说明:

(1)下标引用:常见于数组下标;

(2)函数调用:即函数名(参数);

(3)结构体成员:(后期见详述);

 7.10 常见关键字(了解)

常见关键字有:

autobreak、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return 、short、signed、sizeof、staticstruct、switch、typedefunion、unsigned、void、volatile、while

说明:

(1)auto:自动变量~局部变量=>(auto)int a=0;

(2)break:打破循环;

(3)register:寄存器;

register int a=10;//建议把a定义为寄存器变量、运算速度快,但无法取出a的地址。

(4)static:静态的;  ①修饰函数,类似全局变量,②修饰全局变量,减小其作用域,③修饰局部变量,延长其生命周期

(5)struct:结构体关键字;

(6)typedef:类型定义;

typedef unsigned int u_int;用u_int 代替unsigned int(取别名)

(7)void:空、无

  • 18
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值