zoukankan      html  css  js  c++  java
  • 005_stdc_C语言基础

    回顾:
    sizeof 取内存字节数
    = += &= |=
    + - * / %
    ++ --
    && || !
    > < >= <= == !=
    if(a == 1)
    & | ~ ^ << >>
    ?:

        C语言的流程控制成分

    分支
    if else

    if(条件表达式)
    {
      条件表达式为真要执行的语句
    if()
    {}
    esle
    {}
    }
    else //不要(条件)
    {
      条件表达式为不为真要执行的语句
    }

    1. 不要 在if 条件表达式后 加分号
    2. else 后面 不要加条件
    3. if else 可以执行多条语句,要用大括号 括起来,如果没有括号只执行离if 或者else 最近的语句 ,建议 一条语句也加上{}

    4. if 可以单独使用 else 一定跟某一个if结合,在同一范围找到最近的if 结合

    5.if else 还可以嵌套if else

    /*

    输入一个数 判断这个数 是
    0 负数 正数
    [练习]
    输入一个成绩 0 - 100
    100 - 80 等级A
    79 - 60 等级B
    59 - 0 等级C
    输出等级,最好考虑输入错误成绩的情况
    */

       int score = 0;
        //1. 输入一个成绩
        printf("输入一个成绩:");
        scanf("%d",&score);
    
        if(score <0 || score>100)
        {
            printf("成绩不对
    ");
        }
        else if(score >= 80)
        {
            printf("A
    "); 
        }
        else if(score >= 60)
    
        {
            printf("B
    "); 
        }
        else
        {
            printf("C
    "); 
        }
    /*
    [练习]
           健康指数  healthRate = w 70kg /(h*h)  1.80  (体重除以身高的平方)
           18<=h<=25    好身材
           25< h<=30    有点小胖
           30< h<=35    少吃点,减肥
           35< h<=40    中午别吃了
           40< h        拨120
    */
        float w = 0;
        float h = 0;
    
        //1. 输入身高体重
        printf("输入身高:");
        scanf("%f",&h);
    
        printf("输入体重:");
        scanf("%f",&w);
    
        float healthRate = w /(h*h);
    
        if(healthRate <=25)
        {
            printf("身材不错!
    ");
        }
        else if(healthRate <=30)
        {
            printf("有点小胖
    "); 
        }
        else if(healthRate <=35)
        {
            printf("少吃点,减肥
    "); 
        }
        else if(healthRate <=40)
        {
            printf("中午别吃了
    "); 
        }
    
       else
        {
            printf("拨120
    "); 
        }

    if 单路分支
    if else 双路分支


    if 多路分支
    else if
    else if

    switch(条件) break; default:
    {
    case 常量1:
    case 常量2:
    case 常量3:
    case 常量4:

    }

    1. switch后的条件可以是一个表达式,运算后是整数
    2. case 后只能是一个整数,常量
    3. case 里面有break语句,如果没有,会执行后面的case语句,直到遇到break
    4. default 所有case 值都不匹配 执行default 里面的语句
    defalut 不一定写最后

    /*
     * 输入数字 1 - 7
     * 输出 对应的星期几调休
     */
        int num = 0;
        //输入数字
        printf("输入调休的数字:");
        scanf("%d",&num);
    
        switch(num)
        {
            case 1:
                printf("周一休息
    ");    
                break;
    
            case 2:
                printf("周二休息
    ");    
                break;
    
            case 3:
                printf("周三休息
    ");    
                //break;
    
            case 4:
                printf("周四休息
    ");    
                //break;
    
            case 5:
                printf("周五休息
    ");    
                //break;
    
            case 6:
                printf("周六休息
    ");    
                break;
    
            case 7:
                printf("周日休息
    ");    
               // break;
    
            default:
                printf("你输入的数字不对
    ");
                break;
        }


    [练习 运算器] 可以实现 + - * / %
    输入 一个 表达式 20 / 4
    程序输出表达式的 结果 5

        int a = 0;
        char op = 0;
        int b = 0;
        printf("输入表达式:");
        scanf("%d%c%d",&a,&op,&b);
    
        switch(op)
        {
        
            case '+':
                printf("%d %c %d = %d
    ",a,op,b,a+b);
                break;
    
            default:
                printf("运算符不对
    ");
                break;
        }

    循环语句

           for(表达式1;表达式2;表达式3) 
           {
               //循环体,需要重复执行的代码
           }

    表达式1 : 初始化控制变量,for中只执行一次

    表达式2 : 判断循环条件是否为真 i<100 只有循环条件为真,才会执行循环的代码,否则循环结束

    表达式3: 循环控制变量 增量语句

    for(int i = 0;i<100;i++)   
    {}

    /*
     * [练习]
     *     打印输出 a-z  每行输出一个字符
     */
        for(char c='a';c<='z';c++)
        {
            printf("%c
    ",c);
        }
    3. for 不确定次数的循环
    /*
     * 要求用户输入密码
     * 直到输对为止
     */
        int passwd = 0;
        for(;passwd != 123456;)
        {
            printf("请输入密码:");
            scanf("%d",&passwd);
        }
        printf("密码正确
    ");

    4. 死循环
    循环控制条件永远为真

    5. break; 跳出循环
    只要在循环体里执行到break;就会跳出循环

    [练习] 编码实现 i从1 一直往上加,直到加到和大于1000,打印出i是哪个数
        int sum = 0;
        int i =1;
        for (;;)
        {
            sum = sum + i;
            if(sum>1000){
                break;
            }
            i++;
        }
        printf("%d
    ",i);
     
     
     
    何所为,不仅仅是一种态度,更是一种艺术!
  • 相关阅读:
    Scrapy选择器和持久化
    SQLAlchemy
    Python数据库连接池DBUtils
    flask应用上下文和g
    flask请求上下文源码解析
    flask的session源码流程和第三方组件
    430软狗不喂狗后系统起不来的问题
    VS2008 快捷键大全
    未能加载或程序集“XXXX,Version=0.0.0.0,Culter=neutral,PublicKeyToken=null”或它的某一个依赖项。试图加载格式不正确的程序。
    用vs2008打开vs2005项目
  • 原文地址:https://www.cnblogs.com/tanzizheng/p/12896409.html
Copyright © 2011-2022 走看看