A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 徐荘 中级黑马   /  2016-7-27 18:43  /  1054 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

反馈:

#pragma mark - 简单复习

复习1.
    scanf的使用
作用:获取用户输入


用法:
scanf("%d%f",&整型变量的地址,&float类型变量地址);




复习2.算术运算符
    有哪些: +-*/%
    优先级:*/%高  +-低
    如果优先级一样那么从左到右
    复合赋值运算符:
int sum = 0;
sum+=2;====>sum = sum +2;




#pragma mark - 0_14 自增与自减运算[掌握]


1.++  -- 自增自减 运算符

    不管是++ 还是-- 完了之后a的值肯定会变
    int main(){
        int num = 0;
        ++num;//1
        num++;//2
        ++num;//3
        num++;//4
        num++;//5
        printf("num = %d\n",num);
    }

2.++ 和 --
int num = 10;
//num = num + 1;
//num+=1;
num++;就是把num加上一个1 赋值给num
++num;也是把num加上一个1 赋值给num
无论是前++ 还是后++ 都是将num值加上1


3.++和--式子
    假设int a = 5;
    a++ ----> 整个 a++ 的式子的值是a ---> a的值 是 a+1
    ++a ----> 整个 ++a 的式子的值是a+1 ---> a的值 是 a+1
    a-- ----> 整个 a-- 的式子的值是a ---> a的值 是 a-1
    --a ----> 整个 --a 的式子的值是a-1 ---> a的值 是 a-1
#pragma mark - 0_15 逗号表达式[听懂]


"强调
1.逗号表达式书写: (表达式1,(表达式2),表达式3,...)
2.执行过程: 从左向右执行
3.整个逗号表达式的结果:最后一个表达式的值
    我们要的是最后一个表达式的值,但是前面的表达式执行后可能会影响最后一个表达式的值
#pragma mark - 0_16 比较表达式的结果[掌握]

1.比较运算符:
    > >= < <= != ==(才是判断两个数相不相等,= 赋值运算符)
    5 > 3;正确的在C语言中,真

    4 > 4:错误的在C语言中,假


    3 >= 3:也是真的

    4 <= 5:也是真的
2.比较表达式:
比较表达的结果
    1>如果是真的 那就值就是1

    2>如果是假的 那么值就是0
3.优先级:
    算术运算符:+-*/%:  */%高 +-低
    比较运算符:
        高优先级:> < >= <= 优先级相同
        低优先级:== != 优先级相同


4.
int main()
{
    int num = 0!=3<2;
    //看到一个复杂的表达式
    //要做以下步骤
    //1.看运算符
    //2.找优先级
   
    printf("num = %d\n",num);
}

#pragma mark - 0_17 详解各类比较运算符[掌握]
    1.> 大于运算符. 如果左边的数据大于了右边的数据.结果就真,结果就是1 否则为0

    2.>= 大于等于运算符.如果左边的数据大于或者等于右边的数据.那么条件成立,结果就为1 否则就为0

    3.< 小于运算符.如果左边的数据小于了右边的数据.那么条件成立,结果就是1 否则为0

    4.<= 小于等于运算符号.如果左边的数据小于或者等于右边的数据.那么条件成立,结果就为1 否则就为0、
    5.== 相等比较运算符.如果左边的数据等于右边的数据.那么条件成立,结果就为1 否则就为0.
    友情提示: 判断两个数据是否相等 是两个等号. 1个等号叫赋值.

    6.!= 不等比较运算符.如果左边的数据不等于右边的数据.那么条件成立,结果就为1 否则就为0.
#pragma mark - 0_18 比较运算表达式的场景 [掌握]



1.比较运算符的两边可以是常量或者是变量
    int num = 10;
    //int rel = num > 9
    int rel = 100>111;

2.比较运算符的两边可以分别是表达式
    int num = 10;
    // 1     <   20 -----整个式子为1
    int result = 11 - num < num * 2;
    遇到了一个复杂表达式
    1>看运算符:
    2>看优先级: 乘除 > 加减 > 比较运算符

3.使用比较表达式来判断一个数据和另外一个数据的关系

        1>判断一个数是不是5的倍数
             一个数%5 == 0  ---->
            结果有两种可能 0表示数不是5的倍数  1是表示数是5的倍数

        2>实现
        int main()
        {
            //定义一个数用于接受用户输入,拿这个数来操作
            int caoZouShu = 0;
            scanf("%d",&caoZouShu);
            //对5取余数,如果结果 == 0 说明是5的倍数,反之就不是5的倍数
            printf("%d\n",caoZouShu%5==0);
            return 0;
        }

4.char类型的变量或者常量也可以参与比较运算符,
    本质比较的是相应的ASCII码
     'A' < 'B'
    char ch1,ch2;
    .....//某一些操作

    int rel = ch1 > ch2;

    如果rel 是0 代表 ch2这个字符 肯定在 ch1字符的后面或者相同


    如果rel 是1 代表 ch1这个字符 肯定在ch2的后面

5.练习:
int num1 = 10;
int num2 = 20;
int k = num1 > 5 ,num2 <= 20 , (num2 * 3);

// *   +   比较
printf("k = %d\n",k);

一个复杂的表达式:
1.看运算符
2.找优先级
3.看结合性
练习2:
    int number = 2;
    int k = number + 1 == ++number;
优先级:(number + 1) == (++number)
结合性:从左到右结合 先算 number + 1  后算number++

#pragma mark - 01 逻辑运算符的简要介绍 [掌握]

1.逻辑运算符的种类:
    && 逻辑与(并且) ||逻辑或(或者) !逻辑非(取反)

2.逻辑表达式的结果:要么是真的(1) 要么是假的(0)


3.计算机中的真与假:
    在计算机中 如果是真的 那么就是1  如果是假的那么就是0
    如果一个数 是0  计算机认为他是假的
    如果一个数是 非0 计算机认为他是真的
#pragma mark - 02 逻辑与运算符 [掌握]

    "表达式A && 表达式B
1.&&逻辑与运算符运算规则
    A 和 B 都是真 结果才是真,A 和 B 有一个是假,结果就是假
    "口诀":全真为真

比如判断一个数 是不是在 0-100之间
不能这么写: 0<=一个数<=100
必须用逻辑与: number >=0  && number <= 100

练习:
int num = 10;
int i = 20;
int result = (num > 9) && (i > 10);
//result = 1

2.短路问题[了解]

如果A为假的 那么直接不执行B了

int i = 10;

int k = (i > 20) && (i++ < 20);
//最后输出的结果是 i的值为10,因为&& 第一个式子是假的 短路了
#pragma mark - 03 逻辑或运算符 [掌握]


    "表达式A || 表达式B
1.||逻辑或运算符运算规则
    A 和 B 只要一个是真的 结果就是真,
    "口诀":一真则真
2.短路问题[了解]:
    如果A为真的 那么直接不执行B了

练习:
    #include <stdio.h>
    int main()
    {
        int num = 1;
        int i = 0;
        int result = num > 0 || i++;
        printf("%d----%d\n",result,i);
        return 0;
    }
3.计算机中的真与假
    5 > 3 如果是真的 计算机会把1给你

    3 > 5 如果是假的 计算机会把0给你

    如果你给计算机一个 非0 计算机就认为是真的

    如果你给计算器一个 0  计算机就会认为是假的

#pragma mark - 04 逻辑运算符的优先级 [掌握]

1. !逻辑非运算规则

规则: 真变假 假变真

练习:
    int main()
    {
        int i=2,j=0,k=-2;
        printf("%d----%d---%d\n",!i,!j,!k);
        return 0;
        
    }
2.优先级的万能公式:

() "大于" -(负号) "大于" !(取反)  "大于" 算术运算符 "大于"
    ]"大于" =(赋值) "大于" ,(逗号运算符)


#pragma mark - 04_2 练习讲解 [掌握] [播]
此知识点复习时见第3天视频笔记/04_2 练习讲解.pdf

1.什么是优先级
    一个表达式中如果有多种运算符 那么先算哪一个 后算哪一个 这就是运算符的优先级


2.什么是结合性
    一个表达式如果多个运算符的优先级相同 那么先算哪一个后算哪一个 这就是运算符的结合性

    1> 1+2-3+4 : 结合性是从左到右
    2> int i = 1,j = 2,k = 3;
        i=j=k=3;//执行完了之后 ijk的值都是3

3.一个复杂表达式的计算过程
    1>看运算符
    2>找优先级
    3>看结合性

#pragma mark - 06 IF结构的使用 [掌握]

1. C语言程序的结构:
    顺序结构: 程序从上向下依次执行
        printf("a");
        printf("b");
        printf("c");
        printf("d");
    选择结构:
    if : 假如 num > 5  那么 xxxx

    switch:

    循环结构:
2.if的格式
    if (关系表达式){
        语句块1;
    }

    if(烟抽了超过5根){
        滚出去;
    }
关系表达式: 只有一个结果 真的 或者假的
    "如果关系表达式是真的 那么 执行语句块1;
    "如果关系表达式是假的 那么 不执行语句块1;

#pragma mark - 06_2 练习讲解 [掌握]

请用户输入他的儿子的语数外三门课的成绩,如果平均分>=60,给他一个吻.

int main()
{
   
    //思路
    //要获取语数外三门成绩
    int yu,shu,wai=0;
    printf("输入你儿子的语数外三门成绩,用~隔开");
    scanf("%d~%d~%d",&yu,&shu,&wai);
    //计算平均值
    float avChengji = (yu + shu + wai)  /  3.0;
    //if(平均值>=60)--->给他一个吻
    if(avChengji >=60)
    {
        printf("亲他!\n");
    }
   
    return 0;
}

#pragma mark - 07 使用IF结构注意[掌握]


1.代码中的分号代表一条指令的结束

2.if语句块
    if(表达式)//这里不允许加一个 ";",因为if语句块还没结束
    {
        语句块;
    }
3.if(条件表达式): if后面的小括号中 可以写任意表达式,如果是非0 那么认为是真的,如果是0 那么认为是假的

4.永真和永假的问题
    if(1):代表条件永远成立
    if(0):代表条件永远不成立



5.
    if(表达式)
    {
        printf("aa");
        printf("aa");
    }
    "语句块A":中可以有一行代码 也可以有多行代码,甚至可以没有代码

6.保持代码的对齐
    快捷键: control + i

// 取小数部分
float num = 2.34f;
int num1 = num;
float xiaoshu = num - num1;



评分

参与人数 1黑马币 +10 收起 理由
sunshine429 + 10 淡定

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马