C 程式的執行順序結構以及關係和邏輯運算子講解

2022-10-04 03:42:08 字數 3679 閱讀 3892

c++順序結構程式

【例】求一元二次方程序ax2+bx+c=0的根。a,b,c的值在執行時由鍵盤輸入,它們的值滿足b2-4ac≥0。根據求x1,x2的演算法。它可以編寫出以下c++程式:

#include

#include //由於程式要用到數學函式sqrt,故應包含標頭檔案cmathwww.cppcns.com

using namespace std;

int main( )

{ float a,b,c,x1,x2;

cin>>a>>b>>c;

x1=(-b+sqrt(b*b-4*a*c))/(2*a);

x2=(-b-sqrt(b*b-4*a*c))/(2*a);

cout<

運**況如下:

4.5 8.8 2.4 ↙

x1=-0.327612

x2=-1.17794

如果程式中要用到數學函式,都要包含標頭檔案cmath(也可以用老形式的標頭檔案math.h,但提倡使用c++新形式的標頭檔案)。在寫程式時程式設計客棧,一定要注意將數學表示式正確地轉換成合法的c++表示式。

可以看到:順序結構的程式中的各執行語句是順序執行的。這種程式最簡單,最容易理解。

c++關係運算和邏輯運算(關係運算子和邏輯運算子)

往往要求根據某個指定的條件是否滿足來決定執行的內容。例如,購物在1000元以下的打九五折,1000元及以上的打九折。

c++提供if語句來實現這種條件選擇。如:

if amount<1000 tax=0.95; //amount代表購物總額,tax代表折扣

else tax=0.9; //若amount<1000,條件滿足,tax=0.95,否則tax=0.9

pay=amount*tax; //pay為實付款

關係運算和關係表示式

上面if語句中的「amount<1000」實現的不是算術運算,而是關係運算。實際上是比較運算,將兩個資料進行比較,判斷比較的結果。「amount<1000」就是乙個比較式,在高階語言中稱為關係表示式,其中「>」是乙個比較符,稱為關係運算子。

c++的關係運算子有:

關於優先次序:

前4種關係運算子(,>=)的優先級別相同,後兩種也相同。前4種高於後兩種。例如,「>」優先於「==」。而「>」與「

關係運算子的優先順序低於算術運算子。

關係運算子的優先順序高於賦值運算子。

例如:

用關係運算子將兩個表示式連線起來的式子,稱為關係表示式。關係表示式的一般形式可以表示為:

表示式 關係運算子 表示式

其中的「表示式」可以是算術表示式或關係表示式?邏輯表示式?賦值表示式?字元表示式。例如,下面都是合法的關係表示式:

pzbrkm

a>b, a+b>b+c,(a==3)>(b==5), 'a'b)>(b

關係表示式的值是乙個邏輯值,即「真」或「假」。例如,關係表示式「5==3」的值為「假」,「5>=0」的值為「真」。在c和c++中都用數值1代表「真」,用0代表「假」。如果有以下賦值表示式:

邏輯常量和邏輯變數

c語言沒有提供邏輯型資料,關係表示式的值(真或假)分別用數值1和0代表。c++增加了邏輯型資料。邏輯型常量只有兩個,即false(假)和true(真)。

邏輯型變數要用型別識別符號bool來定義,它的值只能是true和false之一。如

bool found, flag=false; //定義邏輯變數found和flag,並使flag的初值為false

found=true; //將邏輯常量true賦給邏輯變數found

由於邏輯變數是用關鍵字bool來定義的,因此又稱為布林變數。邏輯型常量又稱為布林常量。所謂邏輯型,就是布林型。

設立邏輯型別的目的是為了看程式時直觀易懂。

在編譯系統處理邏輯型資料時,將false處理為0,將true處理為1。因此,邏輯型資料可以與數值型資料進行算術運算。

如果將乙個非零的整數賦給邏輯型變數,則按「真」處理,如

flag=123; //賦值後flag的值為true

cout<

輸出為數值1。

邏輯運算和邏輯表示式

有時只用乙個關係表示式還不能正確表示所指定的條件。

c++提供3種邏輯運算子:

(1) &&  邏輯與(相當於其他語言中的and)

(2) ||  邏輯或(相當於其他語言中的or)

(3) !邏輯非(相當於其他語言中的not)

邏輯運算舉例如下:

在乙個邏輯表示式中如果包含多個邏輯運算子,按以下的優先次序:

(1) !(非)→ &&(與)→ ?(或),即「!」為三者中最高的。

(2) 邏輯運算子中的「&&」和「||」低於關係運算子,「!」高於算術運算子。

例如:

將兩個關係表示式用邏輯運算子連線起來就成為乙個邏輯表示式,上面幾個式子就是邏輯表示式。邏輯表示式的一般形式可以表示為

表示式 邏輯運算子 表示式

邏輯表示式的值是乙個邏輯量「真」或「假」。前面已說明,在給出邏輯運算結果時,以數值1代表「真」,以0代表「假」,但在判斷乙個邏輯量是否為「真」時,採取的標準是: 如果其值是0就認為是「假」,如果其值是非0就認為是「真」。例如:

(1) 若a=4,則!a的值為0。因為a的值為非0,被認作「真」,對它進行「非」運算,得「假」,「假」以0代表。

(2) 若a=4,b=5,則a && b的值為1。因為a和b均為非0,被認為是「真」 。

(3) a,b值同前,a-b||a+b的值為1。因為a-b和a+b的值都為非零值。

(4) a,b值同前,!a || b的值為1。

(5) 4 && 0 || 2 的值為1。

在c++中,整型資料可以出現在邏輯表示式中,在進行邏輯運算時,根據整型資料的值是0或非0,把它作為邏輯量假或真,然後參加邏輯運算。

通過這幾個例子可以看出: 邏輯運算結果不是0就是1,不可能是其他數值。而在邏輯表示式中作為參加邏輯運算的運算物件可以是0(「假」)或任何非0的數值(按「真」對待)。如果在乙個表示式中的不同位置上出現數值,應區分哪些是作為數值運算或關係運算的物件,哪些作為邏輯運算的物件。

實際上,邏輯運算子兩側的表示式不但可以是關係表示式或整數(0和非0),也可以是任何型別的資料,如字元型?浮點型或指標型等。系統最終以0和非0來判定它們屬於「真」或「假」。例如'c ' &&  'd'的值為1。

熟練掌握c++的關係運算子和邏輯運算子後,可以巧妙地用乙個邏輯表示式來表示乙個複雜的條件。例如,要判別某一年(year)是否為閏年。閏年的條件是符合下面兩者之一: ①能被4整除,但不能被100整除。②能被100整除,又能被400整除。例如2004? 2023年是閏年,2005? 2023年不是閏年。

可以用乙個邏輯表示式來表示:

(year % 4 == 0 && year % 100 != 0) || year % 400 == 0

當給定year為某一整數值時,如果上述表示式值為真(1),則year為閏年;否則year為非閏年。可以加乙個「!」用來判別非閏年:

!((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)

若表示式值為真(1),year為非閏年。也可以用下面的邏輯表示式判別非閏年:

(year % 4 != 0) || (year % 100 == 0 && year % 400 !=0)

若表示式值為真,year為非閏年。請注意表示式中右面的括號內的不同運算子(%,!,&&,==)的運算優先次序。

本文標題: c++程式的執行順序結構以及關係和邏輯運算子講解

本文位址:

c程式的執行順序

在c語言的課堂裡老師都告訴我們程式的執行入口函式是main函式,但是實際上程式在執行之初最先開始執行的卻不是main,至少還有一些程式設計師可控的函式可以在main函式之前執行,也可以有一些函式在main結束之後執行。attribute constructor 標記的函式實在main執行之前執行的,...

C 中程式的執行順序

2012年07月03日 19 33 39 cmifaredll cmifaredll 2012年07月03日 19 33 39 bool cmifaredll loaddll 2012年07月03日 19 33 39 bool cmifaredll loaddll 2012年07月03日 19 33...

iOS 概述和程式的執行順序

二程式的執行順序 顯示面積。盡可能少而緊湊的介面元素 足夠大的互動控制項。記憶體空間。程式執行空間小,記憶體管理優化,避免過高質量的和音訊。程式執行限制。一次只有乙個前台程式,程式退出時間不得超過5秒。能量消耗。cpu負載 發熱 電池消耗快 演算法優化。使用者使用習慣。快速啟動 短暫使用,隨時可能退...