嵌入式第二天

    类型:
    int float  

    变量:变量名 变量值 
    int a;
    a=90;

    + - * / %
    > < >= <= != == 

    0 1 

    && || !     100>a>10   a>10&&a<100

    scanf("%d",&a)
    printf("%d",a) 

    if()
    {
        
    }

一、运算符续
算术运算符 关系运算符 逻辑运算符
优先级:算术运算>关系运算>逻辑运算 

1.赋值运算符 
    = 将符号右边结果赋值给符号左边的变量   
    注意区分== 

    int x=6;
    x=x+1;-->x+=1 --->x++ 
    x=x+2;-->x+=2  
    x=x+90 -->x+=90

    也可以有  /= %= -= *=  
    int a=80;
    a/=4;

2.变量自增运算符 自减运算符 
自增运算符:++ 
(1)x++ 与++x 相同点:都能使变量的值自增1 
     #include<stdio.h>

    int main()
    {
        int x=8;
        x++;
        x--;
        printf("%d\n",x);

        int y=90;
        ++y;
        --y;
        printf("%d\n",y);
        return 0;

    }
    总结:++/-- 运算符 放到操作数的左侧或右侧 都能使变量的值实现自增或自减1
(2)区别 
    例子1:
    #include<stdio.h>

    int main()
    {
        int x=8;
        printf("%d\n",x--);// 8  先用后--
        printf("%d\n",x);//7  


        printf("%d",x++);//7
        printf("%d\n",x);//8
        return 0;

    }

    例子2:
    #include<stdio.h>

    int main()
    {
        int x=8;
        printf("%d",--x);//7   先-- 后用  
        printf("%d",++x);//8
        return 0;

    }

    练习:x=10,y=20;
    z=x++ + ++y;  求z的值
    #include<stdio.h>

    int main()
    {
        int x=10,y=20;
        int z=x++ + ++y;

        printf("%d\n",z);

        return 0;
    }
    
3.sizeof()
功能:测变量或者类型所占内存空间的大小  将大小返回 返回的结果以字节为单位    
    #include<stdio.h>

    int main()
    {
        int a;
        printf("%d %d",sizeof(a),sizeof(int));//4个字节

        return 0;

    }

    数据类型:
     整型数据:
         数据类型         大小  格式
          整型int          4    %d 
          短整型short      2    %hd
          长整型long       4    %ld

    字符型数据:
            char           1     %c  
    浮点型数据
        单精度浮点型 float 4    %f 
        双精度浮点型double 8    %lf 

    #include<stdio.h>

    int main()
    {
        int a;
        printf("%d %d",sizeof(a),sizeof(int));

        return 0;

    }

    练习:测试其他类型大小
    #include<stdio.h>

    int main()
    {
        printf("int:%d\n",sizeof(int));
        printf("char:%d\n",sizeof(char));
        printf("long:%d\n",sizeof(long));
        printf("short:%d\n",sizeof(short));
        printf("float:%d\n",sizeof(float));
        printf("double:%d\n",sizeof(double));
        return 0;

    }

4.三目运算符(问号冒号表达式)
格式:
表达式1?表达式2:表达式3
含义:表达式1为真?如果为真 则返回表达式2的值 如果为假 则返回表达式3的值            
    #include<stdio.h>

    int main()
    {
        int a=3,b=5;
        int x = a>b?a:b;
        printf("%d\n",x);
        return 0;
    }
    练习:键盘输入两个数据 求出其中的最小值
    #include<stdio.h>

    int main()
    {
        int a,b;
        printf("please input two integers:\n");
        scanf("%d",&a);
        scanf("%d",&b);
        //scanf("%d%d",&a,&b);
        int c = a<b?a:b;
        printf("%d\n",c);
        return 0;

    }
    练习2:输入3个数 找到最大值
    #include<stdio.h>

    int main()
    {
        int a,b,c,x,y;
        printf("please input 3 numbers:\n");
        scanf("%d%d%d",&a,&b,&c);

        x = a>b?a:b;
        y = x>c?x:c;

        printf("%d\n",y);
        return 0;

    }

二、
    常量:不能改变值
        整型常量:123 1101 023 0x23
        浮点型常量:1.23  3.14 
        字符常量:'a'  'y'
        字符串常量:"hello" "a"
        宏常量   
三、字符常量 
1.注意 
(1)单引号引起来的是字符'a'  '\n' '9'
(2)单引号只能引一个字符  'abc'//错 

2.输出和输出
#include<stdio.h>

int main()
{
    char ch;
    ch='a';
    printf("%c\n",ch);
    
    printf("please input a char:\n");
    scanf("%c",&ch);//从键盘输入一个字符 赋值给ch
    printf("%c\n",ch);
    return 0;

}

3.每个字符都有一个ascii码
    man asciic查看ascii表   按q退出        
    #include<stdio.h>

    int main()
    {
        char ch;
        ch='a';
        printf("%c\n",ch);//‘a’
        printf("%d\n",ch);
        
        int x=97;
        printf("%c\n",x);
        
        return 0;
    }        
        
    练习:输入一个字符 判断这个字符是大写还是小写
    #include<stdio.h>

    int main()
    {
        char ch;
        printf("please input a char:\n");
        scanf("%c",&ch);    
        
        if(ch>='a'&&ch<='z')
        {
            printf(" small letter!\n");
        }
        if(ch>='A'&&ch<='Z')
        {
            printf("big letter!\n");
        }
        
        return 0;

    }

四、c语言三大程序结构:顺序 选择 循环 
1.顺序结构:语句顺序向下执行
    练习: 已知x=22, y=8 编写程序 输出x值为8 y值为22    
    #include<stdio.h>

    int main()
    {
        int x=22,y=8;
        int z;
        
        z = x;
        x = y;
        y = z;
        
        printf("x:%d y:%d\n",x,y);
        
        return 0;

    }

2.选择结构--条件分支   if-else  switch-case 
(1)if 
    格式:
    if(条件)
    {
        语句;
    }

(2)
    if(条件)//如果条件成立 执行语句1 否则执行语句2
    {
        语句1;
    }
    else 
    {
        语句2
    }
    例子: 
    #include<stdio.h>

    int main()
    {
        int car;
        printf("please input:\n");
        scanf("%d",&car);

        if(car==1)
        {
            printf("hahaha~~~\n");
        }
        else 
        {
            printf("byebye~~~~\n");
        }
        return 0;

    }

(3)if-if  
    练习:输入一个数字 判断这个数字是否为偶数 如果数字在1~7之间 
    打印对应的数字
    #include<stdio.h>
    int main()
    {
        int x;
        printf("input a number:\n");
        scanf("%d",&x);

        if(x%2==0)
        {
        
            printf("is even!\n");
        }

        if(x>=1&&x<=7)
        {
            printf("%d\n",x);
        }
        return 0;
    }

(4)if嵌套
    格式: 
    if(条件1)
    {
        语句1;
        if(条件2)
        {
            语句2;
        }
        语句3;
    }
    #include<stdio.h>
    int main()
    {
        int age;
        printf("input age:\n");
        scanf("%d",&age);
        if(age<30)
        {
            printf("make friend!\n");
            if(age<20)
            {
                printf("married!\n");
            }
        }
        return 0;
    }

    练习:输入一个整数 判断它是不是偶数 
    如果是偶数再判断它的一半是不是偶数
    #include<stdio.h>

    int main()
    {
        int x;
        printf("input a number:\n");
        scanf("%d",&x);

        if(x%2==0)
        {
            printf("is even!\n");
            if(x/2%2==0)
            {
                printf("half of num is even!\n");
            }
        }
        return 0;
    }
    
(5)
    多条件分支
    if(条件1)
    {    
        语句1;
    }
    else if(条件2)
    {
        语句2; 
    }
    else if(条件3)
    {
        语句3; 
    }    
    else 
    {
        语句4;
    }
    
    #include<stdio.h>
    int main()
    {
        int age;
        scanf("%d",&age);
        if(age>50)
        {
            printf("老人\n");
        }
        else if(age>=30&&age<=50)
        {
            printf("中年\n");
        }
        else if(age<=20&&age<30)
        {
            printf("青年\n");
        }
        else if(age>=10&&age<20)
        {
            printf("少年!\n");
        }
        else 
        {
            printf("幼年!\n");
        }
        return 0;
    }
        
    练习:输入一个数 要求这个数必须在1-7之间 
    如果是1 则输出Monday 
    如果是2 输出Tuesday 
    ......
    #include<stdio.h>

    int main()
    {
        int x;
        printf("input a number:\n");
        scanf("%d",&x);

        if(x==1)
        {
            printf("Mon\n");
        }
        else if(x==2)
        {
            printf("Tues\n");
        }
        else if(x==3)
        {
            printf("Wed");
        }
        else if(x==4)
        {
            printf("Th\n");
        }
        else if(x==5)
        {
            printf("Fri\n");
        }
        else if(x==6)
        {
            printf("Sat\n");
        }
        else if(x==7)
        {
            printf("Sun\n");
        }
        else 
        {
            printf("error!\n");
        }
        return 0;

    }
    
    练习:输入学生成绩 判断在哪个等级 并输出 
    90-100 ‘A’ 
    80-90  ‘B’
    70-80  'C'
    60-70  'D'
    <60    "comeon!"      
    #include<stdio.h>

    int main()
    {
        int score;
        printf("input score:\n");
        scanf("%d",&score);

        if(score>=90&&score<=100)
        {
            printf("A\n");
        }
        else if(score>=80&&score<90)
        {
            printf("B\n");
        }
        else if(score>=70&&score<80)
        {
            printf("C\n");
        }
        else if(score>=60&&score<70)
        {
            printf("D\n");
        }
        else 
        {
            printf("come on!\n");
        }
        return 0;

    }
        
        
3.选择结构2  switch语句 
格式: 
    switch(x)  //x是整型变量或者字符型变量或表达式
    {
        case 常量1:    //常量1 是x结果
            语句;
            break;  //跳出switch语句 
        case 常量2:
            语句2; 
            break;
        case 常量3:
            语句3; 
            break;
            ....
        default:  //如果x与上边的case都没有匹配成功 则执行default下边的语句
            语句4; 
            break;
    }     

    #include<stdio.h>

    int main()
    {
        int x;
        printf("input number:\n");
        scanf("%d",&x);
        switch(x)
        {
            case 1:
                printf("Mon\n");
                break;
            case 2:
                printf("Tues\n");
                break;
            case 3:
                printf("Wed");
                break;
            default:
                printf("error!\n");
                break;
        }
        return 0;
    }

    练习:输入学生成绩 判断在哪个等级 并输出 
    90-100 ‘A’ 
    80-90  ‘B’
    70-80  'C'
    60-70  'D'
    <60    "comeon!"  
    #include<stdio.h>

        int main()
        {
            int x;
            printf("input number:\n");
            scanf("%d",&x);
            x /=10;
            switch(x)
            {
                case 10:
                    printf("A\n");
                    break;
                case 9:
                    printf("A\n");
                    break;
                case 8:
                    printf("B");
                    break;
                case 7:
                    printf("C\n");
                    break;
                case 6:
                    printf("D\n");        
                    break;
                default:
                    printf("come on!\n");
                    break;
            }
            return 0;

        }

        版本2:
        #include<stdio.h>

        int main()
        {
            int x;
            printf("input number:\n");
            scanf("%d",&x);
            x /=10;
            switch(x)//100
            {
                case 10:
                     printf("dfvdsf")
                    
                case 9:
                    printf("A\n");
                    break;
                case 8:
                    printf("B");
                    break;
                case 7:
                    printf("C\n");
                    break;
                case 6:
                    printf("D\n");        
                    break;
                default:
                    printf("come on!\n");
                    break;
            }
            return 0;
        }
        
        练习: switch实现简单的计算器
        例子:
        #include<stdio.h>
        int main()
        {
            int a;
            char b;
            printf("please input a number:\n");
            scanf("%d",&a);

            printf("please input a char:\n");
            scanf("%c",&b);//取走缓存区中的'\n'
            scanf("%c",&b);
            printf("b:%c\n",b);

            return 0;

        }
        
        
        #include<stdio.h>
        int main()
        {
            int a,b;
            char op;
            
            /*
            scanf("%d",&a);
            scanf("%c",&op);//取走回车
            scanf("%c",&op);
            scanf("%d",&b);
        */

            scanf("%d%c%d",&a,&op,&b);//3+5\n
            switch(op)
            {
                case '+':
                    printf("%d\n",a+b);
                    break;
                case '-':
                    printf("%d\n",a-b);
                    break;
                case '*':
                    printf("%d\n",a*b);
                    break;
                case '/':
                    printf("%d\n",a/b);
                    break;
            }
            return 0;

        }
                
    作业:
    1.if语句
    键盘输入时间 然后打印出它的下一秒
    例如:16:56:56   16:56:57  
    16:56:59  16:57:00
    16:59:59   17:00:00
                
    2.switch 
    给出任意的年月日 计算是一年中的第几天
    2018.7.17
    30+28+....30+17
        
        
        
        
        
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值