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

常用的運算符就這麼多,在實際運用中,我們常常會使用運算符進行一些混合運算,還需要注意運算符的優先級和結合性進行使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章