C语言中的算术符和逻辑符

目录

算术运算符

基本的算术运算符

除法运算符

模运算符

算数运算符的说明

逻辑运算符

逻辑运算符的优先级次序

逻辑表达式的值


算术运算符

基本的算术运算符

 +  加法运算符,或称正值运算符,例  2+3、+5

 -   减法运算符,或称负值运算符,例  7-1、-5

 *    乘法运算符,例  3*4 

 /     除法运算符,例  5/2

%   模运算符,或称求余运算符,例  5%2的值为1 

#include<stdio.h>
int main()
{
  int x,y;
  printf("输入两个整数:");
  scanf("%d %d",&x,&y);
  printf("x+y=%d\n",x+y);
  printf("x-y=%d\n",x-y);
  printf("x*y=%d\n",x*y);
  printf("x/y=%d\n",x/y);
  return 0;
}

运行结果

其中,作为运算对象的变量或常量称为操作数。例如 x+y 中  +是运算符,x和y就是操作数。而运算符左侧的操作数称为第一操作数或者左操作数。运算符右侧的操作数称为第二操作数或者右操作数

在这里,要特别的说明一下除法运算符和模运算符。

除法运算符

除法运算只取商的整数部分,会舍弃小数点以后的部分。除号的两端如果是整数,执行的是整数除法,得到的结果也是整数。如果希望得到的是浮点数的结果,两个操作数必须至少有一个是浮点数,这时C语言会进行浮点数除法。

例如  5/3的结果是1,而3/5的结果是0。

模运算符

模运算其实就是数学里的求余。这个运算符只能用于整数,不能用于浮点数。

负数求模规则是,结果的正负号由第一个操作数的正负号决定。

#include<stdio.h>
int main ()
{
  printf("%d\n",11%-5);
  printf("%d\n",-11%-5);
  printf("%d\n",-11%5);
  return 0;
}

运算结果

例如  5%3的结果是2,而3%5的结果是3.

算数运算符的说明

1. 参与 +、-、*、/ 运算的操作数可以是任意算术类型的数据。若参与+ 、-、*、/ 运算的两个数中有一个数是实型数据(float或double型),系统会自动将参与运算的整型数据和实型数据统一转换为double型,然后进行运算,运算结果是double型。

2.  当字符型数据和整型数据进行算术运算时,系统会自动将字符的ASCII码与整型数据进行运算。

例如  2+‘a’,在计算时,系统会自动将‘a’转换为97,其运算结果是99.

当字符型和实型数据进行算术运算时,系统会将字符的ASCII码转换为double型数据,然后进行运算。

3.  若参与 + 、-、*、/、%运算的两个数都是整数时,则运算结果也是整数。

例如  3/2结果为1,舍去小数部分。


逻辑运算符

C语言提供了3种逻辑运算符:

&&        逻辑与

||           逻辑或

!          逻辑非

注意:&& 和 || 为双目运算符,有两个操作数。!为单目运算符,只要求一个操作数

逻辑运算的真值表
aba&&ba||b!a

逻辑运算符的优先级次序

例子   

a>b&&c>d            等价于    (a>b)&&(c>d)

!a==b||c<d            等价于     ((!a)==b)||(c<d)

a+b>c&&x+y<d    等价于      ((a+b)>c)&&((x+y)<d)

!(非)           ^   高

算术运算符        |

关系运算符        |

&&和 ||               |

赋值运算符        |    低

逻辑表达式的值

  C语言中规定,参与逻辑运算的操作数以非0代表真,以0代表假。逻辑表达式的值,即逻辑运算结果,以数值1代表真,以0代表假。

例如

a=3,则!a的值为0

a=3、b=4,则a&&b的值为1

3||0||-4的值为1

//闰年的判断
#include<stdio.h>
int main()
{
 int year=0;
 scanf("%d",&year);
  if((year%4==0&&year%100!=0)||(year%400==0))
    printf("是闰年\n");
 return 0;
}

运行结果

注意:

对于&&运算符来说,左操作数的结果为0的时候,右操作数就不再执行。

对于||运算符来说,左操作数的结果不为0时,就无需执行右操作数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值