• 初识C语言(三)


    C语言中的运算符

    C语言中的运算就是对数据进行操作、处理的过程。运算符就是指定该运算的处理方式。

    C语言中的运算符:

    • 算术运算符

    • 赋值运算符

    • 关系运算符

    • 逻辑运算符

    • 三目运算符

    算数运算符

    C语言中的算数运算符包括:

    • 在除法运算中

    如果相除的两个数都是整数的话,则结果也为整数,小数部分省略,如8/3 = 2;而两数中有一个为小数,结果则为小数,如:9.0/2 = 4.500000。

    • 在取余运算中

    该运算只适合用两个整数进行取余运算,如:10%3 = 1;而10.0%3则是错误的;运算后的符号取决于被模数的符号,如(-10)%3 = -1;而10%(-3) = 1。

    注释:C语言中没有乘方这个运算符,也不能用×,÷等算术符号。取余运算和乘法运算和除法运算是同级运算。

    #include <stdio.h>
    int main()
    {
        int x,y;
        x = 10;
        y = -3;
        printf("x+y=%d
    ",x+y);  
        printf("x-y=%d
    ",x-y);
        printf("x*y=%d
    ",x*y);
        printf("x/y=%d
    ",x/y);
        printf("x%%y=%d
    ",x%y);  
        return 0;    
    }
    输出结果;
    x+y=7
    x-y=13
    x*y=-30
    x/y=-3
    x%y=1
    

    注释:%符号在C语言里面有特殊用途,和其它的符号组合表示特定的意义。比如%d表示整数,%c表示字符,而%%表示%本身。

    自增和自减运算符

    自增运算符为“++”,其功能是使变量的值自增1;自减运算符为“--”,其功能是使变量值自减1。它们经常使用在循环中。自增自减运算符有以下几种形式:

    注释:无论是a++还是++a都等同于a=a+1,在表达式执行完毕后a的值都自增了1,无论是a--还是--a都等同于a=a-1,在表达式执行完毕后a的值都自减少1。

    实例:

    #include <stdio.h>
    int main()
    {
      int a=100;
      printf("%d
    ", a++);
      printf("%d
    ", ++a);
      printf("%d
    ", --a);
      printf("%d
    ", a--);
      printf("%d
    ", a+1);
      printf("%d
    ",a);
    }
    

    输出结果:

    #include <stdio.h>
    int main()
    {
        int x = 0;
        printf("x=%d
    ",x++);
        printf("x=%d
    ",++x);
        return 0;
    }
    

    输出结果:

    注释:x++ 是取值后再运算,所以打印出来的结果是运算前的数值,++x是运算后再取值,所以打印出来的运算后的结果。

    赋值运算符

    赋值运算符为“=”

    #include <stdio.h>
    int main()
    {  
        int a,b,c;
        a = 10; //给a赋值为10
        b = 7; //给b赋值为
        c = a+b; //计算a+b的值赋值给c
    }
    

    C语言中赋值运算符分为简单赋值运算符和复合赋值运算符,简单赋值运算符为“=”,复合赋值运算符就是在简单赋值符“=”之前加上其它运算符构成,例如+=、-=、*=、/=、%=。

    实例:

    int a = 3;
    a += 5;
    

    分析:定义整型变量a并赋值为3,a += 5;这个算式就等价于a = a+5; 将变量a和5相加之后再赋值给a。

    注意:复合运算符中运算符和等号之间是不存在空格的。

    关系运算符

    下面是C语言中的关系运算符:

    关系表达式的值是“真”和“假”,在C程序用整数1和0表示。如:

    int a = 10;
    int b = 4;
    printf("%d
    ", a>b); //10>4,为真,输出结果为1
    printf("%d
    ", a==b); //10==4,为假,输出0// z是否小于等于x
    

    输出结果:

    注释:>=,<=,==,!=这种符号之间不能存在空格。

    实例:

    #include <stdio.h>
    int main()
    {
        int x=5;
        int y=5;
        int z=10;
        printf("x是否大于y:%d
    ",x>y); //x是否大于y
        printf("y是否大于等于x:%d
    ",y>x); //y是否大于等于x
        printf("y是否小于z:%d
    ",y<z); //y是否小于z
        printf("z是否小于等于x:%d
    ",z<x); //z是否小于等于x
        printf("z是否等于x+y:%d
    ",z!=x+y); //z是否等于x+y
        return 0;
    }
    
    输出结果:
    x是否大于y:0
    y是否大于等于x:0
    y是否小于z:1
    z是否小于等于x:0
    z是否等于x+y:0
    

    逻辑运算符

    C语言中的逻辑运算符:

    逻辑运算的值也是有两种分别为“真”和“假”,C语言中用整型的1和0来表示。其求值规则如下:

    1. 与运算(&&)

    参与运算的两个变量都为真时,结果才为真,否则为假。例如:5>=5 && 7>5 ,运算结果为真;

    1. 或运算(||)

    参与运算的两个变量只要有一个为真,结果就为真。 两个量都为假时,结果为假。例如:5>=5||5>8,运算结果为真;

    1. 非运算(!)

    参与运算的变量为真时,结果为假;参与运算量为假时,结果为真。例如:!(5>8),运算结果为真。

    实例:

    #include <stdio.h>
    int main()
    {
        int height = 175;   //身高为175cm
        double money = 1500000;  //银行存款为150万
        printf("是否符合条件:%d
    ",height>=180&&money>=1000000);  //填写算式
        return 0;    
    }
    
    输出结果:
    是否符合条件:0
    

    三目运算符

    C语言中的三目运算符:“?:”,其格式为:

    表达式1 ? 表达式2 : 表达式3;

    执行过程是:

    先判断表达式1的值是否为真,如果是真的话执行表达式2;如果是假的话执行表达式3。

    实例:

    #include <stdio.h>
    int main()
    {
        //定义我们能接受该商品的心里价位
        int money = 100;
        //定义该商品的单价
        int price = 120;
        //输出y我们就买,输出n我们就不买
        printf("%c
    ", price<=money ? 'y' : 'n');
        return 0;
    }
    

    输出结果:

    运算符大比拼之优先级比较

    运算符号的顺序:

    优先级别为1的优先级最高,优先级别为10的优先级别最低。

    实例:

    int a = 11;
    int b = (a>3)*a-(a+3)%3;
    printf("b=%d
    ", b);
    

    解析:C语言中运算符中最高等级的为(),因此执行过程为:

    1、先计算a>3和a+3的结果,计算后算式为1*a-14%3;

    2、再计算1*a和14%3的结果,计算后算式为11-2;

    3、最后算出结果为9。

  • 相关阅读:
    练习
    圆形时钟
    鼠标经过改变颜色
    Java基础知识精华部分(个人总结)
    Java随机数总结
    java 获取随机数字的三种方法
    网站开发人员应该知道的61件事
    人人都该了解的十大算法
    String 字符串
    面向对象 JAVA代码
  • 原文地址:https://www.cnblogs.com/spmt/p/10703266.html
Copyright © 2020-2023  润新知