第四章第四章 主要內容 (用法很簡單,主要是看演算法是否嚴密)
4.1 關係運算子和關係表示式
4.2 邏輯運算子和邏輯表示式
4.3 if語句
4.4 switch語句
4.5 程式舉例
4.1 關係運算子和關係表示式
1.關係運算子及其優先次序
《小於)
《小於或等於)
>大於)
>大於或等於)
等於)不等於)
說明:關係運算子的優先順序低於算術運算子如:5>8-5
關係運算子的優先順序高於賦值運算子如:5>(a=3)
4.1 關係運算子和關係表示式
2.關係表示式
用關係運算子將兩個表示式(可以是算術表示式或
關係表示式,邏輯表示式,賦值表示式,字元表示式)
接起來的式子,稱關係表示式
例:a>b,a+b>b+c,(a=3)>(b=5),』a』<『b』,(a>b)>(b關係表示式的值是乙個邏輯值,即「真」或「假」。
例:關係表示式」a>b」的值為「真」,表示式的值為1。
c語言中沒有專用的邏輯值,1代表真,0代表假
4.2 邏輯運算子和邏輯表示式
1.邏輯運算子及其優先次序
(1邏輯與) 相當於其他語言中的and
(2邏輯或) 相當於其他語言中的or
(3邏輯非) 相當於其他語言中的not
例:a&&b 若a,b為真,則a&&b為真。
a||b 若a,b之一為真,則a||b為真。
!a 若a為真,則!a為假。
優先次序:
!(非)->&&()->||()
邏輯運算子中的「&&」和「||」低於關係運算子,「!」高於算
術運算子
4.2 邏輯運算子和邏輯表示式
2.邏輯表示式
用邏輯運算子將關係表示式或邏輯量連線起來的式子就
是邏輯表示式。
邏輯表示式的值應該是乙個邏輯量「真」或「假」。
例:設a=4,b=5:
!a的值為0a&&b的值為1
a||b的值為1a||b的值為1
4&&0||2的值為1
任何非零的數值被認作「真」
4.2 邏輯運算子和邏輯表示式
例:5>3&&8<4-!0
自左向右運算
1&&0邏輯值為0
8<3邏輯值為0
4-1值為3
!0邏輯值為1
5>3邏輯值為1
表示式值為0
4.2 邏輯運算子和邏輯表示式
在邏輯表示式的求解中,並不是所有的邏輯運算子都要被執行。
(1)a&&b&&c 只有a為真時,才需要判斷b的值,只有a和b都為真時,
才需要判斷c的值。
(2)a||b||c 只要a為真,就不必判斷b和c的值,只有a為假,才
判斷b。a和b都為假才判斷c
例:(m=a>b)&&(n=c>d)
當a=1,b=2,c=3,d=4,m和n的原值為1時,由於「a>b」的值
為0,因此m=0,而「n=c>d」不被執行,因此n的值不是0而
仍保持原值1。
4.3 if語句
語句的三種基本形式
(1)if (表示式) 語句
例: if(x>y) printf(「%d」,x);
4.3 if語句
(2)if(表示式) 語句1
else語句2
例: if (x>y) printf(「%d」,x);
else printf(「%d」,y);
4.3 if語句
(3)if(表示式1)語句1
else if(表示式2)語句2
else if(表示式3)語句3
……else if(表示式m)語句m
else 語句n
5.3 if語句
例: if (number>500)cost=0.15;
else if(number>300)cost=0.10;
else if(number>100)cost=0.075;
else if(number>50)cost=0.05;
else cost=0;
注意:當大於號時,從大到小篩選,
當小於號時,從小到大篩選。
否則會出錯。
4.3 if語句
說明:(1)3種形式的if語句中在if後面都有表示式,
一般為邏輯表示式或關係表示式。
(2)第二,第三種形式的if語句中,在每個
else前面有乙個分號,整個語句結束處有一
個分號。
(3)在if和else後面可以只含有乙個內嵌的操
作語句,也可以由多個操作語句,此時用花
括號將幾個語句括起來成為乙個復合語句。
4.3 if語句
例4.1 輸入兩個實數,按代數值由小到大的順序輸出這兩個數。 (又一種兩個數排序)
#include<>
void main()
printf(″%5.2f,%5.2f\n″,a,b);}
4.3 if語句
例4.2 輸入三個數a,b,c,要求按由小到大的順序輸出。
if a>b 將a和b對換
if a>c 將a和c對換
if b>c 將b和c對換
4.3 if語句
#include <>
void main
if(a>c)
t=a;a=c;c=t;}
if(b>c)
t=b;b=c;c=t;}
printf("%5.2f,%5.2f,%5.2f\n",a,b,c);
}4.3 if語句
語句的巢狀
在if語句中又包含乙個或多個if語句稱為if語句的巢狀。
形式:if()
if() 語句1
else 語句2
else
if() 語句3
else 語句4
內嵌if
4.3 if語句
匹配規則:
else總是與它上面的,最近的,統一復合語句中的,未配
對的if語句配對。
例:if()
if() 語句1
else
if() 語句2
else 語句3
例:if()
else
if() 語句2
else 語句3
當if和else數目不同時,可以加花括號來確定配對關係。
4.3 if語句
1 (x<0)
例 4.3 有乙個函式 y= 0 (x=0),編一程式,輸入乙個x
值,輸出y值1 (x>0)
演算法1演算法1:
輸入x輸入x
若x<0,則y=-1若x<0,則y=-1
若x=0,則y=0否則:
若x>0,則y=1若x=0,則y=0
輸出y若x>0,則y=1
輸出y 4.3 if語句
#include<>
void main()
printf(「x=%d,y=%d\n」,x,y);
4.3 if語句
上例中的程式段有四個,請判斷哪個是正確的?
程式1程式2:
if(x<0if(x>=0)
y=-1if(x>0) y=1;
elseelse y=0;
if(x==0) y=0else y=-1;
else y=1;
程式3else指代不明) 程式4else指代不明)
y=-1y=0;
if(x!=0if(x>=0)
if(x>0) y=1if(x>0) y=1;
else y=0else y=-1; 正確
正確4.3 if語句
3.條件運算子
格式: 表示式1?表示式2∶表示式3
C語言第4章選擇結構程式設計
4.1 什麼是算術運算?什麼是關係運算?什麼是邏輯運算?答 略4.2 c語言中如何表示 真 和 假 系統如何判斷乙個量的 真 和 假 答 在c語言中,用1和0表示真和假的值 判斷乙個邏輯表示式的值時,非0代表真,0代表假。比如3 4為真,因為3是非0,4也是非0,真與真,結果還是真,而3 4的值為1...
第4章C語言選擇結構程式設計
本章知識點要求 1.用if語句實現選擇結構 2.用switch語句實現多分支選擇結構 3.選擇結構的巢狀 4.c語言支援兩種條件語句 if和switch.此外,條件運算子 在某些情況下可以替換if.引言 c語言選擇結構程式設計結構的執行過程是通過條件判斷來決定程式的下一步 那麼,它主要是通過條件表示...
4章選擇結構程式設計C語言入門習題
第四章選擇結構程式設計 一 選擇題 1 有以下程式 main 程式執行後的輸出結果是 a 123 b 234 c 223 d 233 2 以下程式段中與語句k a b?b c?1 0 0 功能等價的是 a if a b b c k 1 b if a b b c k 1 else k 0 c if a...