7.9学习

一、常量
   什么是常量:程序运行期间数值不能变化的叫常量
   100 默认int
   100u   unsigned int
   100lu  unsigned long
   100llu unsigned long long
   100l   long
   100ll  long long 

   3.14   默认double
   3.14f  float
   3.14l  long double


   问题:100年有多少秒》
   #define SEC (3600*24*360*100)

二、格式化输入输出
     %nd 显示n个字符宽度,不够则补空格,右对齐
     %-nd 显示n个字符宽度,不够则补空格,左对齐
     %0nd 显示n个字符宽度,不够则补0,右对齐
     %n.mf 显示n个字符宽度(小数点算一位),不够则补空格,m表示小数点后的位数(四舍五入)
     %g    不显示小数点后多余的0   

三、运算符

    自变运算符: ++/--  使变量的值自动+1或者-1
         前自变: ++num  --num    立即生效
         后自变:  num++  num--   下一行语句生效
         注意:不要在一行内多次使用自变运算符

    算术运算符:+ - * / %
         整数/整数   结果没有小数点
         / %除数不能为0,出现错误:浮点数例外(核心已专储)


    关系运算符  >  < >= <= == |=
         比较结果必须是0或者1,比较结果还能继续参与运算

         int num = 5;
         if(1 < num < 10)
         永远为真,运算规则与数字不一样
         建议常量放左边

    逻辑运算符  &&  ||  !   //与  或  非
       会先把运算对象转换成逻辑值,0转换为逻辑假,非0转换真,
       A && B 一假即假
       A || B 一真即真
       !A     求反

       短路特性:
         &&  ||  具有短路特性:当左边的运算对象已经能够确定整个表达式的结果时
         右边的所有运算对象不再计算

    三目运算符  运算对象有三个部分
          A ? B  :  C
          判断A的值是否为真,如果为真执行B,否则执行C
          该语句不能使用流程控制语句,因为它必须要有运算结果


    赋值运算符  =  +=
    a += b;   a = a+b;
    a -= b;   a = a-b;
    a *= b;
    a /= b;
    ...

    位运算符   & | ~  >>  <<
    sizeof 也是运算符,但是sizeof括号内的表达式不会计算

四、类型转换
    自动类型转换
       只有相同类型的数据才能运算,不同类型的数据必须转换成相同的类型才能进行计算
       转换规则:(不丢失数据为基础,适当地牺牲一些空间)
           1、字节少的向字节多的转
           2、有符号的向无符号的转
           3、整型向浮点转型

    强制类型转换:
       (新类型)数据
       有丢失数据的风险,要慎重使用

五、分支语句
    if(表达式)//单分支
    {
        当表达式为真时,执行此处代码
    }
    


    if(表达式1)//双分支
    {
        当表达式1为真时,执行此处代码
    }
    
    else
    {
        表达式为假时,执行此处代码
    }


    if(表达式1)//多分支
    {
        当表达式1为真时,执行此处代码
    }
    else if(表达式2)
    {
        表达式2位真时齿形此处代码
    }

    else
    {
        表达式都为假时,最后执行此处代码
    }

    注意:大括号建议上下对齐
         当分支语句只有一条时,大括号可省略,但不建议省略


    练习1:输入三个整数,从大到小输出?
    练习2:输入一个年份,判断是闰年还是平年?
    练习3:输入一个年份和月份,判断该月有多少天
    练习4:输入一个三位的整数,判断是否是水仙花数?
    abc == a*a*a + b*b*b + c*c*c 
    练习5:输入一个成绩,判断等级 [100,90](90,80](80,70](70,60](60,0]other输入成绩有误      

六、开关语句
    switch(n)   // n可以是数值、表达式、运算结果必须是整数
    {
        case val:  //val  必须是整常量,如果val等于n则打开了执行开关
                ...
                break
        case val:   
                ...
        default:
           ..
           //如果所有的case都没有匹配成功,则打开该执行开关,并且放在任何位置
           都会最后执行
    }

    注意:如果每个case后都有break,就形成了分支结构
         switch不能与continue配合使用
    
    注意:
        case a ... b:可以表示一个范围a~b,但是属于GNU编译器独有的语法,不建议使用

    练习6.输入一个月份,判断季节:


七、循环语句
        循环就是让一段代码反复执行,达到想要的效果
    for循环语句:
        是一种比较灵活且较危险(与其他循环相比)的一种循环
        一般用一个变量来引导for循环的运行,这个变量叫做循环变量i
        for([1];[2];[3])
        {
            [4];
        }  
        1、给循环变量赋初值,C99标准才可以在此处定义循环变量
        2、判断循环条件,一般判断循环变量是否到达了边界
        4、如果2为真,则执行此处代码,也叫循环体
        3、改变循环变量,防止出现死循环、一般对循环变量自加或自减
        1 2 4 3 2 4 3 2...

        for循环的多种写法
        for(;;)
        {
            //死循环
        }

        int i=0;
        for(; i>10; i++)
        {

        }

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

        while循环:
            while(条件)//当条件为真时执行循环体,为假时结束循环
            {
                //循环体
            }

            while循环相当于for循环的精简版本 for(;条件;)
            for循环负责解决明确知道循环次数的问题
            while循环负责解决只知道结束条件,而不确定循环次数的问题

        
        do while 循环:
            do{
                //循环体
            }while(条件);   //分号不能少
            先执行循环体,再判断循环条件是否为真,该循环至少执行一次
            适合先干活,再检查的特殊情况,例如:输入判断密码

            问题:for、while、do-while 有什么区别

        循环嵌套:
            循环语句中包含循环语句
            外层循环执行一次,内层循环执行n次

        作业1:计算出所有的水仙花数?
        作业2:输入一个正整数,判断是否是素数?
        作业3:输入一个正整数,判断是否是回文数  12321  123321
        作业4:输入一个6位密码,输入正确显示"登录成功",输入错误提示"还剩几次机会"
        ,可以继续输入,最多输错3次,否则显示"账号已锁定",并结束
        作业5:输入一个整数,分解显示  1234        1 2 3 4

        

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值