C语言(十一)基本输入输出函数 和 运算符

一、printf()  将变量的内容输出到显示器上

  四种用法

    1. printf("字符串");    

    2. printf(“输出控制符”,输出参数);

    3. printf(“输出控制符1  输出控制符2 。。。”,输出参数1,输出参数2);

        输出控制符和输出参数的个数必须一一对应

    4. printf(“输出控制符 非输出控制符”,输出参数);

        输出控制符包含如下

          %d            int

          %ld             long int

          %c            char

          %f            float

          %lf            double

          %x(或者%X后者%#X)   int 或 long int huo short int

          %o            同上

          %s            字符串

        为什么需要输出控制符

          1. 0 1组成的代码可以表示数据也可以表示指令

          2. 如果01组成的代码表示的是数据的话,那么同样的01代码组合不同的输出格式。就会有不同的输出结果。

二、scanf() [通过键盘将数据输入到变量中]

    两种用法:

      用法一: scanf("输入控制符",输入参数)

      功能:   将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址地变量中

      用法二: scanf("非输入控制符 输入控制符",输入参数);

      功能:  将从键盘输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中,非输入控制符必须原样输入。

      如果使用scanf编写出高质量代码

        1. 使用scanf之前最好先使用printf提示用户以什么样的方式来输入

        2. scanf中尽量不要使用非输入控制符,尤其是不要用

        3. 应该编写代码对用户的非法输入做适当的处理

          while((ch = getchar())! = ' ')

            continue;

三、运算符

    算术运算符

      +       -    *    /(除)    %(取余数)

    关系运算符

      〉     >=    <    <=  !=(不等于)  ==(等于)

    逻辑运算符

      !(非)  &&(并且)   ||(或)

      !真        假

      !假        真

      真&&真       真

      真&&假       假

      假&&真       假

      假&&假       假

      

      真||假        真

      假||真        真

      真||真        真

      假||假        假

      C语言对真假的处理

        非零是真

        零是假

        真是1表示

        假是0表示

      &&左边是假 右边肯定不会执行

      ||左边是真  右边肯定不会执行

    赋值运算符

      =  +=  *=  /=  -=

    优先级  

      算术 〉 关系 > 逻辑 > 赋值

四、位运算符

      & -- 按位于

        && 逻辑与 也叫并且

        &&与& 的含义完全不同

        1&1 = 1

        1&0 = 0

        0&1 = 0

        0&0 = 0

        5&7 = 5     21&7 = 5

        5&1 = 1     5&10 = 0

       | --  按位或

        || 逻辑或

        | 按位或

        1|0 = 1

        1|1 = 1

        0|1 = 1

        0|0 = 0

       ~ -- 按位取反

          ~ i 就是把 i 变量所有的二进制取反

      ^ -- 按位异或

        相同为零

        不同为1

        1^0 = 1

        0^1 = 1

        1^1 = 0

        0^0 = 0

      << -- 按位左移

        i<<1 表示把 i 的所有二进制位左移一位 ,右边补零

        左移n位相当于乘以2的n次方

      面试题:

       A> i = i*8;

       B> i = i<<3;

        请问上述两个语句,哪个语句执行的速度快

        答案:B快

      >> -- 按位右移

      

        i>>3 表示把 i 的所有二进制位右移3位 ,左边一般是0,当然也可能补1

        移n位相当于除以2的n次方,前提是数据不能丢失

        面试题:

           A> i = i/8;

           B> i = i>>3;

        请问上述两个语句,哪个语句执行的速度快

        答案:B快

        位运算的现实意义

          通过位运算符我们可以对数据的操作精确到每一位

  

    

原文地址:https://www.cnblogs.com/Maxwell599/p/3162339.html