c语言基础之运算符和表达式


当一个程序在运转时候,运算是非常重要的步骤,熟练的使用运算符对编写c语言非常重要。由于它是构造c语言的表达式工具,所以c语言中的运算符极其丰富。我们如果按照操作个数分类可分为:单目运算符双目运算符三目运算符。按照运算符的性质可分为:算数运算符关系运算符逻辑运算符赋值运算符等,下面就按照性质说说常用的一些运算符。

1、算数运算符

算数运算符是c语言用来完成基本运算的符号,说简单点就是用来完成四则运算,也就是我们说的小学学的加减乘除。

运算符 类型 运算 含义 结合性
- 单目 -x 取符负值 从右到左
* 双目 x*y 乘法运算 从左到右
/ 双目 x/y 除法运算 从左到右
% 双目 x%y 取余运算 从左到右
- 双目 x-y 减法运算 从左到右
+ 双目 x+y 加法运算 从左到右

在运用这些运算符的时候一定要注意以下几点:

  1. 两个整数做除法运算时,结果仍然是整数
6/4=1

这里6/4应该等于1.5,而它的运算结果却为1,是因为这个。那么如果想得到1.5怎么办嘞?
只需要将运算中的一个数该为实型数据就可以啦。

6.0/4=1.5
  1. 求余时,余数符号与被除数相同
15%6=3,15%(-6)=3(-15)%6=-3
  1. 数学中的【】和{}在算数运算符中不可用。
    必须要用时,只需用()多套几层就可以了。
((3+3)*(4*4))+5
  1. 不要使用c语言不允许的标示符
    例:圆的周长
2*π*r

π在c语言中不被识别,必须先给它赋值。

double π=3.14,circle,r;
circle=2*π*r;

让我们来道例题消化下吧
例题
给定一个华氏温度F,本题要求编写程序,计算对应的摄氏温度C。计算公式:C=5×(F−32)/9。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int F,C;/*定义变量F,C*/
    scanf("%d",&F);
    C=5*(F-32)/9;/*运用运算符计算公式*/
    printf("Celsius = %d",C);/*打印输出*/
    return 0;
}

输入

37

输出

Celsius = 2

怎么样,是不是很简单?

2、赋值运算符

赋值运算是指将一个数据的值赋给另外一个变量,意义与数学中的“=”类似。它属于双目运算,结合性为从右到左。

  1. 普通赋值运算
    标准格式
变量名=表达式

注意:左边只能是变量!不允许是算数表达式或常量。

  1. 复合赋值运算
    在“=”前面加上一个双目运算后,就可以构成复合赋值运算符了。
    即类似于+=,-=,*=之类的。使用这种运算产生的代码短,运行速度快而且简洁。
    例:
a+=3

输出结果与下面这个相同

a=a+3

额,,这个比较简单,就不需要例题了吧。

3、关系运算符

所谓的关系运算符其实就是我们说的比较大小。

运算符 运算 含义
< x<y 小于
<= x<=y 小于等于
> x>y 大于
>= x>=y 大于等于
== x==y 等于
!= x!=y 不等于

虽然它和我们平时使用的类似,但还是有一些需要我们注意的地方

1.c语言中“=”是赋值,而“==”才是等于,两者看上去差不多,其实是天壤之别!
2.在数学中a>b>c意思是a>b且a>c,但c语言会根据优先性和结合性逐个判断。
如果说的不够清楚,举个例子就明白了:假设a赋值为5,让计算机判断,如果a大于3且小于6,就输出1,否则就输出0。如果我们写的是
6>a>3
计算机输出就会是0,因为计算机先判断a<3,符合,则此时结果为1,再判断1>3,不符合,计算机最后就会输出0。

来个关于关系“等于”的例题吧,因为很多人容易把“=”和“==”混淆
:判断一个数是否能被另一个整数整除是一个挺简单的问题,一般一个模运算就可以搞定了,懒惰的晓萌还是不想自己做,于是找到你帮他写代码,你就帮帮他吧。
输入格式
输入包括两个由空格分开的整数 M和 N(1≤M,N≤500)。

输出格式
输出包括一行,如果 MM 可以被 NN 整除就输出YES,否则输出NO(结果大小写敏感)。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    int M,N;/*定义变量*/
    scanf("%d %d",&M,&N);/*输入M,N注意它们之间有空格*/
    if(M%N==0)/*判断M是否能被N整除,若此时用的是‘=’,编译就会报错*/
        printf("YES");/*能整除,则打印输出YES*/
    else
        printf("NO");/*否则,输出NO*/
    return 0;/*这里用到了一个条件语句if,如果还没学你可以查找下书本上介绍的使用方法*/
}

输入

20 2

输出

YES

写题时一定要细心,如果编译报错,就要小心的从新检查一遍,看看是不是有些小细节有没有处理好。

4、逻辑运算

运算符 类型 运算 含义 结合性
单目 !x 逻辑非 从右到左
&& 双目 x&&y 逻辑与 从左往右
丨丨 双目 x丨丨y 逻辑或 从左到右

注意:**当逻辑运算的前一个条件不成立时,后一个条件将不会再执行

话不多说,直接实战

请输入一个数,判断他是否大于1且小于6,是则输出yes,否则输出no。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    int M;/*与上一题一样,定义一个整型变量*/
    scanf("%d",&M);/*输入M*/
    if(M>1 && M<6)/*使用运算符逻辑与判断*/
        printf("YES");/*成立,则打印输出YES*/
    else
    printf("NO");/*不成立,则打印输出NO*/
   return 0;
}

输入

7

输出

NO

5、条件运算

条件运算时唯一的一个三目运算。
格式如下:

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

计算机运算步骤如下:
1.运行表达式1;
2.若表达式1不为0,计算机求第二个表达式的值。若为0,计算机求第3个表达式的值。
我们常常可以用它求两个变量的最值。

编写一个程序,使输入两个数后,能输出其中较大的数。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    int M,N,max;
    scanf("%d %d",&M,&N);
    max=M>N?M:N;
    printf("%d",max);
 return 0;
}

输入

5 1

输出

5

常用的运算符就这么多,在实际运用中,我们常常会使用运算符进行一些混合运算,还需要注意运算符的优先级和结合性进行使用。

发布了25 篇原创文章 · 获赞 20 · 访问量 3292

猜你喜欢

转载自blog.csdn.net/qq_44886056/article/details/89208220
今日推荐