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);
 
 
 
何所为,不仅仅是一种态度,更是一种艺术!
原文地址:https://www.cnblogs.com/tanzizheng/p/12896409.html