版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
02走進(jìn)C語言48任務(wù)1求解1×2×3×4×5——算法和基本數(shù)據(jù)類型的認(rèn)識任務(wù)2求圓的面積——基本運(yùn)算符的使用49求解1×2×3×4×5——算法和基本數(shù)據(jù)類型的認(rèn)識任務(wù)150學(xué)習(xí)目標(biāo)1.掌握程序算法的概念和基本思路。2.熟悉C語言的基本數(shù)據(jù)類型。51任務(wù)描述人們在工作和生活中,每做一件事情都要考慮采取什么樣的方式、方法,所采取的方式、方法是否合理往往決定了實(shí)施過程是否順利以及結(jié)果是否成功,這些方式、方法就是算法。不同的人解決相同的問題所用算法可能不同。本任務(wù)具體要求是編寫兩種算法求數(shù)學(xué)問題1×2×3×4×5的值,閱讀用兩種算法編寫的兩個(gè)程序,分析兩種算法是如何在兩個(gè)程序中實(shí)現(xiàn)的,探討程序中所用的數(shù)據(jù)類型。52相關(guān)知識一、算法概念算法是一組解決問題的步驟,它可以產(chǎn)生結(jié)果,也可能在限定的條件下終止??梢杂米匀徽Z言、偽代碼(pseudo-code)、N/S圖(也稱流程圖)等多種方法來描述算法。同一問題可用不同算法解決,一個(gè)算法的質(zhì)量優(yōu)劣將影響到算法乃至程序的效率。算法分析的目的在于選擇合適算法和改進(jìn)算法。對一個(gè)算法的評價(jià)主要從時(shí)間復(fù)雜度和空間復(fù)雜度來考慮。531.?算法衡量標(biāo)準(zhǔn)算法質(zhì)量好壞的衡量標(biāo)準(zhǔn)如下:(1)思路清晰正確。(2)過程簡單明了。(3)算法合理準(zhǔn)確。2.?算法分類(1)數(shù)值算法。數(shù)值算法是指關(guān)于數(shù)學(xué)問題的求解的方法,如求三角形的面積、方程式的根、100以內(nèi)偶數(shù)和等。(2)非數(shù)值算法。非數(shù)值算法是指人力系統(tǒng)資料錄入、圖書館書籍檢索、辦公自動(dòng)化處理等數(shù)值之外的數(shù)據(jù)的處理。543.?算法應(yīng)用準(zhǔn)則設(shè)計(jì)算法時(shí),應(yīng)遵循以下幾點(diǎn)。(1)確定性。算法中的每一個(gè)步驟都應(yīng)是確定無誤的,不能產(chǎn)生歧義。(2)有限性。算法中的每個(gè)步驟必須是有限的,而不能是無限的,要使算法在合情合理的范圍內(nèi)正確地執(zhí)行并能得出正確的結(jié)果。55(3)有效性。算法中的每一個(gè)步驟必須能有效地執(zhí)行,也就是說每一個(gè)步驟都要符合高級語言的編寫特點(diǎn),符合常理。(4)保證輸入輸出。在執(zhí)行算法時(shí),需要通過輸入獲取信息,目的是求解。一個(gè)算法可以有零個(gè)、一個(gè)或多個(gè)輸入,沒有輸入可以,但沒有輸出的算法是沒有意義的。564.?常用算法(1)遞推算法。遞推算法是一種用若干步可重復(fù)的簡單運(yùn)算(規(guī)律)來描述復(fù)雜問題的方法。(2)遞歸算法。遞歸算法通常把一個(gè)大型復(fù)雜的問題層層轉(zhuǎn)化為一個(gè)與原問題相似、規(guī)模更小的問題來求解。(3)窮舉算法。窮舉算法又稱暴力破解法,是指對于要解決的問題,列舉出它的所有可能的情況,逐個(gè)判斷哪些符合問題所要求的條件,從而得到問題的解。57(4)分治算法。在計(jì)算機(jī)科學(xué)中,分治算法是一種很重要的算法。分治算法可簡單地理解為“分而治之”,就是把一個(gè)復(fù)雜的問題分成兩個(gè)或更多的相同或相似的子問題,再把子問題分成更小的子問題,直到子問題可以直接求解為止,原問題的解即子問題解的合并結(jié)果。(5)動(dòng)態(tài)規(guī)劃算法。最優(yōu)化原理是動(dòng)態(tài)規(guī)劃算法的基礎(chǔ)。一個(gè)過程的最優(yōu)決策無論其初始狀態(tài)和初始決策如何,對以第一個(gè)決策所形成的狀態(tài)作為初始狀態(tài)的過程而言,在其之后所實(shí)施的諸策略必須構(gòu)成最優(yōu)策略。簡言之,一個(gè)最優(yōu)策略的子策略,對它的初態(tài)和終態(tài)而言也必定是最優(yōu)的。58(6)貪心算法。貪心算法是指在對問題求解時(shí),總是做出在當(dāng)前看來是最好的選擇。也就是說,貪心算法不從整體最優(yōu)上加以考慮,它所做出的決策僅是在某種意義上的局部最優(yōu)解。貪心算法不是對所有問題都能得到整體最優(yōu)解,但對大部分問題能得到整體最優(yōu)解或是整體最優(yōu)解的近似解。595.?算法的設(shè)計(jì)【例
】計(jì)算2+4+6+8+10+…+100的算法之一是“依次判斷1~100的整數(shù),只要是偶數(shù)就累加”。分析此算法的編程思路,觀察用此算法編寫的程序,上機(jī)輸入編輯、調(diào)試運(yùn)行并輸出結(jié)果。本問題求在一定范圍內(nèi)(題中為1~100)、滿足一定條件(題中為偶數(shù))的若干整數(shù)的和,可以理解為一個(gè)累加和的問題。設(shè)置一個(gè)變量(可用S表示),其初始值為0,在指定的范圍內(nèi)尋找滿足條件的整數(shù),將它們一一累加到S中,并將正在查找的整數(shù)用一個(gè)變量i表示。60可以使用C語言語句“S=S+i;”來累加,它表示把S的值加上i后重新賦給S。這個(gè)算法的累加過程需要反復(fù)執(zhí)行,要用程序設(shè)計(jì)語言的循環(huán)控制語句(有關(guān)循環(huán)控制語句的知識將在后續(xù)任務(wù)中學(xué)習(xí))來完成,其循環(huán)過程如下。(1)判斷i是否滿足偶數(shù)的條件,把滿足條件的整數(shù)累加到S中。(2)對循環(huán)次數(shù)進(jìn)行控制,這可以通過i的變化來控制。61二、數(shù)據(jù)類型1.?常用數(shù)據(jù)類型(1)字符型(char)數(shù)據(jù)。每個(gè)字符型數(shù)據(jù)在內(nèi)存中占1個(gè)字節(jié)的存儲空間。(2)整型(int)數(shù)據(jù)。整型數(shù)據(jù)用來描述整數(shù),整數(shù)在計(jì)算機(jī)中是準(zhǔn)確表示的。整型數(shù)據(jù)的長度與機(jī)器字長相同,16位的編譯器上整型數(shù)據(jù)長為16位,32位的編譯器上整型數(shù)據(jù)長為32位。62(3)實(shí)型數(shù)據(jù)。1)單精度浮點(diǎn)型(float)數(shù)據(jù)。單精度浮點(diǎn)型數(shù)據(jù)用于描述日常使用的實(shí)數(shù),實(shí)數(shù)在計(jì)算機(jī)中一般是近似表達(dá)的。每個(gè)單精度浮點(diǎn)型數(shù)據(jù)占4字節(jié)的存儲空間,以浮點(diǎn)形式存儲。2)雙精度浮點(diǎn)型(double)數(shù)據(jù)。每個(gè)double型數(shù)據(jù)占8字節(jié)的存儲空間,雙精度型數(shù)據(jù)的實(shí)數(shù)近似程度比較高。(4)無值型(void)數(shù)據(jù)。無值型數(shù)據(jù)沒有具體的值,通常描述無形式參數(shù)的函數(shù)、無返回值的函數(shù)等。632.?C語言的特點(diǎn)(1)整型常量。整型常量即整數(shù),在計(jì)算機(jī)中是準(zhǔn)確表示的,C語言能識別的整數(shù)可以是十進(jìn)制、八進(jìn)制和十六進(jìn)制,輸出格式分別為%d、%o和%x。(2)實(shí)型常量。實(shí)數(shù)在計(jì)算機(jī)中是近似表示的,又稱浮點(diǎn)數(shù)。在C語言中,實(shí)數(shù)只采用十進(jìn)制。它有兩種書寫形式,即十進(jìn)制小數(shù)形式和指數(shù)形式。64(3)字符型常量。1)普通字符。字符型常量只能是單個(gè)字符,并且只能用單引號引起來,不能用雙引號或括號。字符可以是字符集中的任意字符,數(shù)字字符用單引號引起來后不能以原數(shù)值參與數(shù)值運(yùn)算。2)ASCII碼。ASCII碼即美國信息交換標(biāo)準(zhǔn)代碼,現(xiàn)已成為國際通用標(biāo)準(zhǔn),它統(tǒng)一規(guī)定了常用符號用相應(yīng)的二進(jìn)制數(shù)來表示。標(biāo)準(zhǔn)ASCII碼也稱基礎(chǔ)ASCII碼,使用7位二進(jìn)制數(shù)來表示所有的大寫和小寫字母、數(shù)字0~9、標(biāo)點(diǎn)符號以及一些特殊控制字符。653)轉(zhuǎn)義字符。轉(zhuǎn)義字符是一種特殊的字符型常量,以反斜杠“\”開頭,后跟一個(gè)或多個(gè)字符。轉(zhuǎn)義字符具有特定的含義,不同于字符原有意義,故而得名。4)字符串常量。字符串常量是由一對雙引號引起來的字符序列。(4)符號常量。符號常量是使用一個(gè)標(biāo)識符表示一個(gè)常量,需要用#define命令定義,一個(gè)#define命令只能定義一個(gè)符號常量,末尾不加分號并且符號常量名習(xí)慣上采用大寫。663.?變量及其類型(1)變量概念。1)變量定義。在C語言中,變量必須先定義后使用。變量定義的一般形式如下。類型說明符
變量名;2)變量賦初值。在定義變量的同時(shí),還可以進(jìn)行賦值操作。3)變量定義的位置和作用域。變量定義的位置有3處,在函數(shù)外部定義的變量稱為全局變量;在函數(shù)體內(nèi)定義的變量稱為局部變量;在函數(shù)的形式參數(shù)表中定義的變量稱為形式參數(shù),簡稱形參。67(2)變量類型。1)整型變量。整型變量按照在內(nèi)存中所占字節(jié)長度可分為短整型(shortint)變量、基本整型(int)變量和長整型(longint)變量;根據(jù)有無符號可分為有符號(signed)整型變量和無符號(unsigned)整型變量,有符號整型變量可以表示0、正數(shù)和負(fù)數(shù),無符號整型變量可以表示0和正數(shù),但表示正數(shù)的范圍擴(kuò)大一倍。682)實(shí)型變量。實(shí)型變量可用于存放特別大或特別小的數(shù),整型變量可表示的數(shù)據(jù)范圍有限,超出就會發(fā)生溢出,導(dǎo)致程序出錯(cuò),這時(shí)可以考慮用實(shí)型變量存放數(shù)據(jù)。但實(shí)型數(shù)據(jù)總會有誤差,所以有效位數(shù)很重要。實(shí)型變量主要有單精度浮點(diǎn)型(float)變量和雙精度浮點(diǎn)型(double)變量兩種形式。單精度型變量有效位數(shù)為7位,一般雙精度型變量有效位數(shù)為16位,長雙精度型變量有效位數(shù)為19位。3)字符型變量。字符型變量用來存放單個(gè)字符,在內(nèi)存中占1個(gè)字節(jié)的存儲單元,用關(guān)鍵字char進(jìn)行定義。字符型變量只能存放1個(gè)字符,而不能存放字符串。69求圓的面積——基本運(yùn)算符的使用任務(wù)270學(xué)習(xí)目標(biāo)1.能運(yùn)用基本算術(shù)運(yùn)算符編寫程序。2.能運(yùn)用邏輯運(yùn)算符、關(guān)系運(yùn)算符和條件運(yùn)算符編寫程序。3.能規(guī)范編寫C語言程序表達(dá)式。71任務(wù)描述無論是簡單的數(shù)值運(yùn)算,還是較復(fù)雜的邏輯運(yùn)算,只要有運(yùn)算就要用到運(yùn)算符。在C語言中,運(yùn)算符是執(zhí)行特定算術(shù)或邏輯操作的符號?!?”“-”“*”“/”這4個(gè)符號分別是C語言中“加”“減”“乘”“除”4種運(yùn)算符,只用這4個(gè)簡單的運(yùn)算符就能解決很多數(shù)、理、化等各領(lǐng)域的運(yùn)算問題。不過,“+”“-”“*”“/”運(yùn)算符只是C語言運(yùn)算符中最簡單、最常用的一小部分,C語言各種運(yùn)算符及其參與構(gòu)成的表達(dá)式數(shù)量眾多,這在高級語言中是少見的,這也是C語言的主要特點(diǎn)之一。72本任務(wù)介紹C語言的運(yùn)算符和如何正確使用運(yùn)算符寫出合法的表達(dá)式。通過實(shí)例體會,正是豐富的運(yùn)算符和各種運(yùn)算符構(gòu)成的表達(dá)式,使C語言編程的表達(dá)方式靈活多樣、功能強(qiáng)大。本任務(wù)具體要求是已知正n
邊形的周長是
r,用正n
邊形的邊長做一個(gè)圓的半徑,求圓的面積,上機(jī)編輯調(diào)試正
n邊形的周長是9的程序,并輸出
n
為3時(shí)圓的面積。73相關(guān)知識C語言中運(yùn)算符的作用是告訴編譯程序如何執(zhí)行程序代碼運(yùn)算,針對幾個(gè)操作數(shù)項(xiàng)目進(jìn)行運(yùn)算。針對一個(gè)操作數(shù)項(xiàng)目進(jìn)行運(yùn)算稱為單目運(yùn)算,針對兩個(gè)操作數(shù)項(xiàng)目進(jìn)行運(yùn)算稱為雙目運(yùn)算或二元運(yùn)算,依此類推。用運(yùn)算符把C語言中操作數(shù)連起來的式子稱為表達(dá)式。當(dāng)幾個(gè)不同的運(yùn)算符同時(shí)出現(xiàn)在表達(dá)式中時(shí),各運(yùn)算符參與運(yùn)算的先后順序稱為運(yùn)算符的優(yōu)先級。在表達(dá)式中,優(yōu)先級較高的運(yùn)算符先于優(yōu)先級較低的運(yùn)算符進(jìn)行運(yùn)算。C語言運(yùn)算符的優(yōu)先級共分為15級,其中1級運(yùn)算符的優(yōu)先級最高,15級運(yùn)算符的優(yōu)先級最低(見附錄2)。74C語言的運(yùn)算符除了具有不同的優(yōu)先級外,還有一個(gè)特點(diǎn),就是具有不同的結(jié)合性。運(yùn)算符的結(jié)合性是指當(dāng)同一個(gè)優(yōu)先級的運(yùn)算符同時(shí)出現(xiàn)在表達(dá)式中時(shí),其運(yùn)算的優(yōu)先次序。運(yùn)算符的結(jié)合性分為兩種,即左結(jié)合性(自左向右運(yùn)算)和右結(jié)合性(自右向左運(yùn)算)。根據(jù)運(yùn)算符的結(jié)合性可以確定表達(dá)式運(yùn)算的結(jié)合方向。具有右結(jié)合性的運(yùn)算符包括所有單目運(yùn)算符、賦值運(yùn)算符“=”和條件運(yùn)算符,其他運(yùn)算符都是左結(jié)合性的運(yùn)算符。在一個(gè)操作數(shù)兩側(cè)的運(yùn)算符優(yōu)先級相同時(shí),按運(yùn)算符的結(jié)合性所規(guī)定的結(jié)合方向處理。75各操作數(shù)參與運(yùn)算的先后順序不僅要遵守運(yùn)算符優(yōu)先級別的規(guī)定,還要受運(yùn)算符結(jié)合性的制約,這種結(jié)合性是其他一些高級語言的運(yùn)算符所沒有的,因此也增加了C語言的復(fù)雜性,編程中應(yīng)注意運(yùn)算符的結(jié)合性,以免出現(xiàn)錯(cuò)誤。C語言的運(yùn)算符按功能可分為算術(shù)運(yùn)算符、賦值運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、條件運(yùn)算符、逗號運(yùn)算符、取內(nèi)存字節(jié)數(shù)運(yùn)算符、強(qiáng)制類型轉(zhuǎn)換運(yùn)算符、指針運(yùn)算符、特殊運(yùn)算符和位操作運(yùn)算符等。運(yùn)算符按不同方式組合可構(gòu)成功能豐富的表達(dá)式,實(shí)現(xiàn)各種運(yùn)算,為C程序的編寫奠定基礎(chǔ)。76一、算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算,也稱數(shù)值運(yùn)算,是程序設(shè)計(jì)中使用最多的一種數(shù)據(jù)運(yùn)算。1.?算術(shù)運(yùn)算符算術(shù)運(yùn)算符可用于各類數(shù)值運(yùn)算。算術(shù)運(yùn)算符包括加“+”、減“-”、乘“*”、除“/”、求余(或稱模運(yùn)算,“%”)、自增“++”、自減“--”,共7種。77(1)基本運(yùn)算符。1)加法運(yùn)算符“+”。加法運(yùn)算符為雙目運(yùn)算符,即應(yīng)有兩個(gè)操作數(shù)參與加法運(yùn)算,如x+y、a+5+6等。加法運(yùn)算符具有左結(jié)合性。2)減法運(yùn)算符“-”。減法運(yùn)算符為雙目運(yùn)算符,具有左結(jié)合性。3)乘法運(yùn)算符“*”。乘法運(yùn)算符為雙目運(yùn)算符,如a*b等,具有左結(jié)合性。4)除法運(yùn)算符“/”。除法運(yùn)算符為雙目運(yùn)算符,如5/6等,具有左結(jié)合性。78(2)求余運(yùn)算符。求余運(yùn)算符(模運(yùn)算符)“%”為雙目運(yùn)算符,求余運(yùn)算的結(jié)果等于兩數(shù)相除后的余數(shù),如3%2的結(jié)果為1,具有左結(jié)合性。求余運(yùn)算符用來求兩個(gè)整數(shù)的余數(shù)時(shí),要求兩側(cè)數(shù)據(jù)必須是整型數(shù)據(jù)。(3)自增、自減運(yùn)算符。自增運(yùn)算符和自減運(yùn)算符都是單目運(yùn)算符,具有右結(jié)合性。自增運(yùn)算符記為“++”,其功能是使變量的值自增1。自減運(yùn)算符記為“--”,其功能是使變量值自減1。79(4)算術(shù)運(yùn)算符的優(yōu)先級和結(jié)合性。1)優(yōu)先級。算術(shù)運(yùn)算符的優(yōu)先級從高到低依次為:自增“++”、自減“--”優(yōu)先于乘“*”、除“/”、求余“%”;乘“*”、除“/”、求余“%”優(yōu)先于加“+”、減“-”。2)結(jié)合性。乘“*”、除“/”、求余“%”、加“+”、減“-”具有左結(jié)合性;自增“++”、自減“--”、負(fù)號“-”具有右結(jié)合性。802.?算術(shù)表達(dá)式用算術(shù)運(yùn)算符把操作數(shù)連起來的式子稱為算術(shù)表達(dá)式。算術(shù)表達(dá)式要按規(guī)則正確書寫,尤其是乘法運(yùn)算符“*”在表達(dá)式中既不能用“×”“.”符號代替,也不能省略;除法運(yùn)算符“/”同樣也不能用“÷”符號代替。恰當(dāng)使用圓括號可以改變算術(shù)運(yùn)算優(yōu)先次序,避免出現(xiàn)二義性。又如,在表達(dá)式“---i”中,3個(gè)負(fù)號會產(chǎn)生歧義,系統(tǒng)編譯時(shí)會出錯(cuò),正確的表達(dá)式應(yīng)寫為“-(--i)”。圓括號使用時(shí)要“成對”出現(xiàn)。C語言中允許多重圓括號嵌套“成對”使用,不允許使用方括號或大括號,方括號和大括號有另外的含義。81二、賦值運(yùn)算符和賦值表達(dá)式1.?賦值運(yùn)算符賦值運(yùn)算符是最典型的右結(jié)合性運(yùn)算符。(1)簡單賦值運(yùn)算符。簡單賦值運(yùn)算符“=”是雙目運(yùn)算符,必須連接兩個(gè)操作數(shù),運(yùn)算符“=”左邊只能是變量或數(shù)組元素,不能是常量,不能是表達(dá)式;右邊則可以是任何表達(dá)式。82(2)復(fù)合賦值運(yùn)算符。在C語言中有10種復(fù)合賦值運(yùn)算符,也稱賦值縮寫。它們分別由一個(gè)雙目運(yùn)算符與賦值運(yùn)算符“=”組成,具有賦值和計(jì)算雙重功能。使用復(fù)合賦值運(yùn)算符可以簡化程序,提高編譯效率。復(fù)合賦值運(yùn)算符分為兩種,即復(fù)合算術(shù)賦值運(yùn)算符和復(fù)合位運(yùn)算賦值運(yùn)算符。復(fù)合算術(shù)賦值運(yùn)算符有“+=”“-=”“*=”“/=”“%=”,復(fù)合位運(yùn)算賦值運(yùn)算符有“<<=”“>>=”“&=”“|=”“^=”,其具體含義見下表。8384復(fù)合賦值運(yùn)算符及其含義2.?賦值表達(dá)式用賦值運(yùn)算符把操作數(shù)連接起來的式子稱為賦值表達(dá)式。簡單賦值表達(dá)式的一般如下。變量
賦值運(yùn)算符
表達(dá)式復(fù)合賦值表達(dá)式的一般形式如下。變量
雙目運(yùn)算符
賦值運(yùn)算符
表達(dá)式復(fù)合賦值表達(dá)式的一般形式等效于下列形式。變量
賦值運(yùn)算符
變量
雙目運(yùn)算符
表達(dá)式賦值表達(dá)式的值就是為變量所賦的值。在進(jìn)行復(fù)合賦值運(yùn)算時(shí),要將右邊的表達(dá)式作為一個(gè)整體與左邊的變量進(jìn)行運(yùn)算。85三、關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符用于程序中的比較運(yùn)算。在程序中經(jīng)常需要比較兩個(gè)量的大小關(guān)系,以決定程序下一步的工作。關(guān)系運(yùn)算符主要用于構(gòu)造流程控制中的條件表達(dá)式,運(yùn)算結(jié)果是邏輯值。1.?關(guān)系運(yùn)算符比較兩個(gè)量大小的運(yùn)算符稱為關(guān)系運(yùn)算符,主要用來對兩個(gè)算術(shù)表達(dá)式或賦值表達(dá)式進(jìn)行比較運(yùn)算。C語言中的關(guān)系運(yùn)算符有“<”“<=”“>”“>=”“==”“!=”,其含義見下表。86關(guān)系運(yùn)算符都是雙目運(yùn)算符,其結(jié)合性均為左結(jié)合性。關(guān)系運(yùn)算符的優(yōu)先級低于算術(shù)運(yùn)算符,高于賦值運(yùn)算符。在6個(gè)關(guān)系運(yùn)算符中,“<”“<=”“>”“>=”的優(yōu)先級相同,“==”和“!=”的優(yōu)先級相同,“<”“<=”“>”“>=”的優(yōu)先級高于“==”和“!=”。87關(guān)系運(yùn)算符及其含義2.?關(guān)系表達(dá)式用關(guān)系運(yùn)算符把操作數(shù)連接起來的式子稱為關(guān)系表達(dá)式。關(guān)系運(yùn)算符中相等的比較是用兩個(gè)等號表示,即“==”,注意不要與賦值運(yùn)算符混淆。C語言不提供邏輯型數(shù)據(jù),而是用整數(shù)1表示邏輯真,用整數(shù)0表示邏輯假。在同一表達(dá)式中有多個(gè)關(guān)系表達(dá)式時(shí),應(yīng)根據(jù)優(yōu)先級進(jìn)行運(yùn)算。88四、邏輯運(yùn)算符和邏輯表達(dá)式1.?邏輯運(yùn)算符邏輯運(yùn)算符有3種,分別是邏輯非運(yùn)算符“!”、邏輯與運(yùn)算符“&&”、邏輯或運(yùn)算符“‖”。邏輯運(yùn)算符優(yōu)先次序是邏輯非運(yùn)算符的優(yōu)先級高于其他兩個(gè)邏輯運(yùn)算符,邏輯與運(yùn)算符的優(yōu)先級高于邏輯或運(yùn)算符。89邏輯運(yùn)算符和其他運(yùn)算符優(yōu)先級的關(guān)系是邏輯與運(yùn)算符“&&”、邏輯或運(yùn)算符“‖”的優(yōu)先級低于關(guān)系運(yùn)算符,邏輯非運(yùn)算符“!”的優(yōu)先級高于算術(shù)運(yùn)算符。按照運(yùn)算符的優(yōu)先順序可以得出表達(dá)式“a>b&&c>d”等價(jià)于“(a>b)&&(c>d)”,表達(dá)式“!b==c‖d<a”
等價(jià)于“((!b)==c)‖(d<a)”,
表達(dá)式“a+b>c&&x+y<b”
等價(jià)于“((a+b)>c)&&((x+y)<b)”。邏輯與運(yùn)算符“&&”和邏輯或運(yùn)算符“‖”均為雙目運(yùn)算符,具有左結(jié)合性;邏輯非運(yùn)算符“!”為單目運(yùn)算符,具有右結(jié)合性。902.?邏輯表達(dá)式用邏輯運(yùn)算符把關(guān)系表達(dá)式或操作數(shù)連接起來的有意義的式子稱為邏輯表達(dá)式。邏輯與和邏輯或的邏輯表達(dá)式的一般形式如下。表達(dá)式
邏輯運(yùn)算符
表達(dá)式邏輯非的邏輯表達(dá)式的形式如下。!表達(dá)式邏輯表達(dá)式的值是一個(gè)邏輯值,即真或假。C語言編譯系統(tǒng)在給出邏輯結(jié)果時(shí),以數(shù)字1表示真,以數(shù)字0表示假,但是在判斷一個(gè)量是否為真時(shí),以非0表示真,以0表示假??梢园堰壿嫳磉_(dá)式的運(yùn)算結(jié)果(0或1)賦給整型變量或字符型變量。91(1)邏輯與運(yùn)算。邏輯與運(yùn)算也稱邏輯乘,需要有兩個(gè)運(yùn)算量,當(dāng)兩個(gè)運(yùn)算量皆為真時(shí)結(jié)果為真,兩個(gè)運(yùn)算量中有一個(gè)為假時(shí)其結(jié)果為假。(2)邏輯或運(yùn)算。邏輯或運(yùn)算也稱邏輯和,需要有兩個(gè)運(yùn)算量,當(dāng)兩個(gè)運(yùn)算量皆為假時(shí)結(jié)果為假,兩個(gè)運(yùn)算量中有一個(gè)為真時(shí),結(jié)果為真。(3)邏輯非運(yùn)算。邏輯非運(yùn)算也稱取反運(yùn)算,僅需要有一個(gè)運(yùn)算量,非真結(jié)果為假,非假結(jié)果為真。92各運(yùn)算的邏輯真值表見下表。93邏輯真值表五、條件運(yùn)算符和條件表達(dá)式條件運(yùn)算符由“?”“:”連接組成,是三目運(yùn)算符。條件表達(dá)式一般形式如下。表達(dá)式
1?
表達(dá)式
2:
表達(dá)式
3條件表達(dá)式的含義是當(dāng)表達(dá)式1的值非0時(shí),整個(gè)條件表達(dá)式的值是表達(dá)式2的值,否則,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年人教新課標(biāo)八年級歷史下冊月考試卷含答案
- 2025年人教版PEP選擇性必修3化學(xué)上冊月考試卷含答案
- 2025年新世紀(jì)版高二歷史下冊月考試卷
- 2025年浙教版八年級地理上冊月考試卷含答案
- 二零二五年度文化展覽館導(dǎo)覽員勞動(dòng)合同模板4篇
- 二零二五年度環(huán)保設(shè)備銷售合同約定乙方甲方售后服務(wù)賠償細(xì)則4篇
- 二零二五年度廚房設(shè)備智能化改造升級合同12篇
- 二零二五年度農(nóng)產(chǎn)品深加工訂單加工合作合同模板3篇
- 2025年度農(nóng)業(yè)科技創(chuàng)新項(xiàng)目合作開發(fā)合同4篇
- 個(gè)性化離婚合同樣本下載(2024年修訂版)版B版
- 拉薩市2025屆高三第一次聯(lián)考(一模)語文試卷(含答案解析)
- 《保密法》培訓(xùn)課件
- 回收二手機(jī)免責(zé)協(xié)議書模板
- (正式版)JC∕T 60023-2024 石膏條板應(yīng)用技術(shù)規(guī)程
- 人教版高中生物學(xué)新舊教材知識差異盤點(diǎn)
- (權(quán)變)領(lǐng)導(dǎo)行為理論
- 2024屆上海市浦東新區(qū)高三二模英語卷
- 2024年智慧工地相關(guān)知識考試試題及答案
- GB/T 8005.2-2011鋁及鋁合金術(shù)語第2部分:化學(xué)分析
- 不動(dòng)產(chǎn)登記實(shí)務(wù)培訓(xùn)教程課件
- 不銹鋼制作合同范本(3篇)
評論
0/150
提交評論