![大學計算機基礎程序設計基礎_第1頁](http://file4.renrendoc.com/view/8ad46dd761128c573995fd737454066b/8ad46dd761128c573995fd737454066b1.gif)
![大學計算機基礎程序設計基礎_第2頁](http://file4.renrendoc.com/view/8ad46dd761128c573995fd737454066b/8ad46dd761128c573995fd737454066b2.gif)
![大學計算機基礎程序設計基礎_第3頁](http://file4.renrendoc.com/view/8ad46dd761128c573995fd737454066b/8ad46dd761128c573995fd737454066b3.gif)
![大學計算機基礎程序設計基礎_第4頁](http://file4.renrendoc.com/view/8ad46dd761128c573995fd737454066b/8ad46dd761128c573995fd737454066b4.gif)
![大學計算機基礎程序設計基礎_第5頁](http://file4.renrendoc.com/view/8ad46dd761128c573995fd737454066b/8ad46dd761128c573995fd737454066b5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
大學計算機基礎程序設計基礎大學計算機基礎程序設計基礎大學計算機基礎程序設計基礎大學計算機基礎程序設計基礎全文共140頁,當前為第1頁。2第十章程序設計基礎算法2C程序入門33程序與程序設計★31數(shù)據(jù)類型和表達式4輸入輸出35大學計算機基礎程序設計基礎全文共140頁,當前為第2頁。310.1程序與程序設計程序與程序設計31程序設計語言的發(fā)展32常見的程序設計語言33大學計算機基礎程序設計基礎全文共140頁,當前為第3頁。4軟件=計算機程序+文檔資料10.1.1程序與程序設計計算機是依靠硬件和軟件的配合進行工作的,硬件是計算機系統(tǒng)的基礎,軟件附著在硬件上,指揮和控制硬件工作。那么,軟件是什么呢?
計算機程序(核心)文檔資料軟件軟件安裝說明書
用戶使用手冊
有關技術資料、服務信息等
10.1程序與程序設計大學計算機基礎程序設計基礎全文共140頁,當前為第4頁。5計算機程序=一系列指令的集合10.1程序與程序設計10.1.1程序與程序設計那么什么是計算機程序呢?事實上,為了能讓計算機解決實際問題并完成預定功能,人們需要按照解題步驟和功能要求,從計算機的指令系統(tǒng)中選出相關的指令并進行編排(稱為編程),形成一組有序的指令集合。所以,計算機程序就是計算機為完成某一任務所必須執(zhí)行的一系列指令的集合。
而用程序設計語言(也稱計算機語言)來編寫計算機程序的過程就叫程序設計。大學計算機基礎程序設計基礎全文共140頁,當前為第5頁。610.1.2程序設計語言的發(fā)展計算機程序設計語言經歷了從機器語言、匯編語言到高級語言的發(fā)展歷程。機器語言匯編語言高級語言第4代語言1GL2GL3GL4GL10.1程序與程序設計大學計算機基礎程序設計基礎全文共140頁,當前為第6頁。710.1.2程序設計語言的發(fā)展1.機器語言
機器語言是計算機誕生和發(fā)展初期使用的語言。機器語言程序是由0和1的二進制代碼按一定規(guī)則組成的,并能被機器直接理解和執(zhí)行的指令集合。例如,計算A=8+12的機器語言程序如下:
1011000000001000:把8放入累加器A中
0010110000001100:12與累加器A中的值相加,結果仍放入A中
11110100:結束,停機10.1程序與程序設計大學計算機基礎程序設計基礎全文共140頁,當前為第7頁。810.1.2程序設計語言的發(fā)展1.機器語言
機器語言編寫的程序不僅難讀、難懂、難修改,而且不同機器使用的指令系統(tǒng)也不盡相同,所以現(xiàn)在已經沒有人使用機器語言直接編程了。當然,機器語言也有其優(yōu)點,編寫的程序代碼不需要翻譯,因此占用空間少,執(zhí)行速度快。10.1程序與程序設計大學計算機基礎程序設計基礎全文共140頁,當前為第8頁。910.1.2程序設計語言的發(fā)展2.匯編語言
匯編語言開始于20世紀50年代初。為了克服機器語言的缺點,人們將機器指令的代碼用英文助記符來表示,例如用ADD表示加、JMP表示程序跳轉等。例如,計算A=8+12的匯編語言程序如下:
MOV
A,8
:把8放入累加器A中
ADD
A,12
:12與累加器A中的值相加,結果仍放入A中
HLT
:結束,停機
10.1程序與程序設計大學計算機基礎程序設計基礎全文共140頁,當前為第9頁。1010.1.2程序設計語言的發(fā)展2.匯編語言匯編語言克服了機器語言難讀、難懂的缺點,同時又保持了其編程質量高,占存儲空間少,執(zhí)行速度快的優(yōu)點。故在編寫系統(tǒng)軟件和過程控制軟件時,仍經常采用匯編語言。但匯編語言仍然是面向機器的語言。使用匯編語言編程需要直接安排存儲,規(guī)定寄存器和運算器的動作次序等。此外,不同計算機的指令長度、尋址方式、寄存器數(shù)目等都不一樣,所以匯編語言程序的通用性較差。
10.1程序與程序設計大學計算機基礎程序設計基礎全文共140頁,當前為第10頁。1110.1.2程序設計語言的發(fā)展2.匯編語言匯編語言編寫的程序(源程序),必須經過匯編程序(一種語言處理程序)翻譯成計算機所能識別的機器語言后,才能被計算機執(zhí)行。
10.1程序與程序設計大學計算機基礎程序設計基礎全文共140頁,當前為第11頁。1210.1.2程序設計語言的發(fā)展3.高級語言
從最初與計算機交流的痛苦經歷中,人們意識到,應該設計一種這樣的語言,它接近于數(shù)學語言或自然語言,同時又不依賴于計算機硬件,編出的程序能在所有計算機上通用。經過努力,1954年,第一個完全脫離機器硬件的高級語言FORTRAN語言問世了。高級語言的表示形式近似于自然語言,對各種公式的表示近似于數(shù)學公式。而且,一條高級語言語句的功能往往相當于十幾條甚至幾十條匯編語言的指令,程序編寫相對比較簡單。因此,在工程計算、數(shù)據(jù)處理等方面,人們常用高級語言來編寫程序。10.1程序與程序設計大學計算機基礎程序設計基礎全文共140頁,當前為第12頁。1310.1.2程序設計語言的發(fā)展3.高級語言
用高級語言編寫的程序稱為高級語言源程序,也不能直接執(zhí)行,必須經過語言處理程序的解釋或編譯后才能執(zhí)行。10.1程序與程序設計大學計算機基礎程序設計基礎全文共140頁,當前為第13頁。1410.1.2程序設計語言的發(fā)展4.非過程化的程序語言
人們稱高級語言是第3代語言,其特點是面向過程。面向過程是指用戶在程序中不但要說明解決什么問題,還要告訴計算機如何去解決。計算機技術的發(fā)展要求新一代的計算機語言能夠根據(jù)用戶說明的問題,智能化的去自動尋找解決方案,具有這種功能的語言稱為第4代語言(Fourth-GenerationLanguage,4GL)。目前4GL尚未發(fā)展成熟,主要面向基于數(shù)據(jù)庫應用的領域(SQL),還不適用于科學計算、高速實時系統(tǒng)和系統(tǒng)軟件等的開發(fā)。10.1程序與程序設計大學計算機基礎程序設計基礎全文共140頁,當前為第14頁。1510.1.3常見的程序設計語言
第一個高級程序設計語言是FORTRAN語言,它是由美國IBM公司在20世紀50年代開發(fā)出來的。之后,隨著計算機應用的發(fā)展,先后出現(xiàn)了COBOL、BASIC、PASCAL、C、C++、Java等高級語言。1.FORTRAN語言
由美國著名的計算機先驅人物約翰·巴克斯(JohnWamer)于1954年提出。FOUTRAN是FORmulaTRANslator的縮寫,意思是“公式翻譯機”。顧名思義,該語言主要用于科學計算。FORTRAN自推出之日起,版本不斷更新,功能不斷增強,目前在工程應用領域,F(xiàn)ORTRAN仍然被廣泛使用。10.1程序與程序設計大學計算機基礎程序設計基礎全文共140頁,當前為第15頁。1610.1.3常見的程序設計語言2.COBOL語言
COBOL(COmmonBusinessOrientedLanguage,通用事務處理語言)是在美國國防部推動下,由政府機構和工業(yè)界聯(lián)合開發(fā)的一種語言,于1960年正式推出,主要用于商業(yè)數(shù)據(jù)處理。
COBOL語言曾經使用非常廣泛,20世紀70年代近一半的程序是用COBOL語言編寫的。當前,在商業(yè)領域,COBOL語言仍然占有重要席位。10.1程序與程序設計大學計算機基礎程序設計基礎全文共140頁,當前為第16頁。1710.1.3常見的程序設計語言3.BASIC語言
BASIC(Beginner’sAll-purposeSymbolicInstructionCode,初學者的通用符號指令代碼)是1964年由美國的JohnG.Kemeny和ThomasE.Kurtz在FORTRAN語言的基礎上開發(fā)的。由于簡單易學,BASIC語言得到了廣泛普及。Microsoft公司對BASIC可謂是一往情深,從早期微型機上內置的BASIC,到80年代產生的第一個編譯版本QuickBASIC,直到目前非常流行的VisualBasic,一直沒有中斷過對BASIC語言的的改進。
最新出現(xiàn)的VisualBasic.NET,是采用Microsoft的.NET技術的VisualBasic語言。
10.1程序與程序設計大學計算機基礎程序設計基礎全文共140頁,當前為第17頁。1810.1.3常見的程序設計語言4.PASCAL語言
PASCAL是由瑞士計算機科學家NiklausWirth設計的一種語言,1968年提出后被全世界廣泛接受。這個語言的名字是為了紀念著名的法國數(shù)學家,也是計算科學的先驅BlaisePascal而起的。由于結構小巧、語法嚴謹、數(shù)據(jù)類型豐富,從20世紀70年代末往后的很長一段時間里,PASCAL成為世界范圍的計算機專業(yè)教學語言。
20世紀80年代,隨著C語言的流行,PASCAL走向了衰落。目前,在商業(yè)上僅有Borland公司仍在開發(fā)基于PASCAL語言系統(tǒng)的Delphi,它使用了面向對象與軟件組件的概念,主要用于開發(fā)商用軟件。
10.1程序與程序設計大學計算機基礎程序設計基礎全文共140頁,當前為第18頁。1910.1.3常見的程序設計語言5.C與C++語言
C是由美國貝爾實驗室的KennetL.Thompson和DennisM.Ritchie于1972年設計開發(fā)的,當時主要用于編寫UNIX操作系統(tǒng)。后來由于其功能豐富、使用靈活、執(zhí)行速度快、可移植性強,迅速成為最廣泛使用的程序設計語言之一。
C語言既可以用來開發(fā)系統(tǒng)軟件,也可以用來開發(fā)應用軟件,應用領域很廣泛。例如,在中國廣泛使用的計算機輔助設計軟件AutoCAD、數(shù)學軟件系統(tǒng)Mathematica等,以及許多語言編譯系統(tǒng)本身,其軟件系統(tǒng)的全部或部分都是用C語言開發(fā)的。C語言已經成為最重要的軟件系統(tǒng)開發(fā)語言之一。10.1程序與程序設計大學計算機基礎程序設計基礎全文共140頁,當前為第19頁。2010.1.3常見的程序設計語言5.C與C++語言
1980年,貝爾實驗室的BjarneStroustrup對C語言進行了擴充,加入了面向對象的概念,并于1983年改名為C++。目前,C++已經成為應用最廣的面向對象程序設計語言。Microsoft公司的VisualC++和Borland公司的C++Builder是C++語言最常用的開發(fā)工具,利用這些開發(fā)工具,可以高效率的開發(fā)出復雜的Windows應用程序。
最新出現(xiàn)的C#語言使用了C++的語法和語義,是基于Microsoft公司推出的新一代軟件開發(fā)環(huán)境.NET平臺的高級程序設計語言。10.1程序與程序設計大學計算機基礎程序設計基礎全文共140頁,當前為第20頁。2110.1.3常見的程序設計語言6.Java語言
Java是Sun公司開發(fā)的一種跨平臺的網(wǎng)絡編程語言,于1995年正式發(fā)布。其語言風格與C++接近,但舍棄了C++中一些不常用或容易被誤用的成分,如指針等。
Java語言最主要的特點是,同一個Java程序不用重新編譯就可以在不同平臺的計算機上運行。Java在網(wǎng)絡上的獨特優(yōu)勢以及其跨平臺的特點,使得它已經成為Internet上最受歡迎的編程語言之一。10.1程序與程序設計大學計算機基礎程序設計基礎全文共140頁,當前為第21頁。2210.1.3常見的程序設計語言7.網(wǎng)頁設計類語言目前,最常用的3種動態(tài)網(wǎng)頁設計語言有ASP(ActiveServerPages)、JSP(JavaServerPages)、PHP(HypertextPreprocessor)。三者都提供在HTML代碼中混合某種程序代碼、由語言引擎解釋執(zhí)行程序代碼的能力。
ASP是一個Web服務器端的開發(fā)環(huán)境,利用它可以產生和執(zhí)行動態(tài)的、互動的、高性能的Web服務應用程序。ASP支持VBScript、JScript等腳本語言。JSP是用Java語言作為腳本語言的,并可以在Servlet和JavaBean的支持下,完成功能強大的站點程序。
PHP是一種跨平臺的服務器端的嵌入式腳本語言。它大量地借用C、Java和Perl語言的語法,并融合PHP自己的特性,使Web開發(fā)者能夠快速地寫出動態(tài)生成頁面。10.1程序與程序設計大學計算機基礎程序設計基礎全文共140頁,當前為第22頁。2310.2算法算法的基本概念31算法的特征32算法的表示方法33算法的評價34常用算法★35大學計算機基礎程序設計基礎全文共140頁,當前為第23頁。2410.2算法10.2.1算法的基本概念廣義的說,為解決一個問題而采取的方法和步驟,就稱為“算法”。本書所關心的當然只限于“計算機算法”。所謂的計算機算法就是使用計算機來解決一個問題時所采取的特定方法和步驟。大學計算機基礎程序設計基礎全文共140頁,當前為第24頁。2510.2算法10.2.1算法的基本概念例如,要求出1+2+3+…+100的和,可設計如下的計算機算法。設兩個變量:一個變量sum用來存放求和的結果,另一個變量i用來存放每次被加的數(shù)值;
S1:使0=>sum;S2:使1=>i;
S3:使i的值累加到sum中,即sum+i=>sum;
S4:使i的值加1,i+1=>i;
S5:如果i<=100,返回S3繼續(xù)執(zhí)行;否則,算法結束。最后得到的sum的值就是要求的和。大學計算機基礎程序設計基礎全文共140頁,當前為第25頁。2610.2算法10.2.1算法的基本概念算法設計完成后,用某種程序設計語言描述出來就是計算機程序了。
算法與程序設計語言及程序的關系如圖所示。
大學計算機基礎程序設計基礎全文共140頁,當前為第26頁。2710.2.2算法的特征1.確定性算法的描述必須無歧義,以保證算法的執(zhí)行結果是確定的。
2.可行性
算法中的每一步操作都必須是可執(zhí)行的,也就是說算法中每一步都能通過手工或機器在有限時間內完成。
3.輸入
一個算法有0個或多個輸入,在算法運算開始之前給出算法所需數(shù)據(jù)的初值,這些輸入取自特定的對象集合。4.輸出
作為算法運算的結果,一個算法產生一個或多個輸出,輸出是同輸入有某種特定關系的量。5.有窮性
一個算法總是在執(zhí)行了有窮步的運算后終止,即該算法是可達的。10.2算法大學計算機基礎程序設計基礎全文共140頁,當前為第27頁。2810.2算法10.2.3算法的表示方法算法有很多種表示方法,常用的有自然語言、流程圖、N-S圖、偽代碼等。1.自然語言用人們日常使用的語言,即自然語言來描述算法通俗易懂,但存在以下缺陷:
(1)易產生歧義,往往要根據(jù)上下文才能判別其確切含義;
(2)語句繁瑣、冗長,尤其是描述包含選擇和循環(huán)的算法時,不太方便。因此,一般不用自然語言來描述算法,除非是很簡單的問題。大學計算機基礎程序設計基礎全文共140頁,當前為第28頁。2910.2算法10.2.3算法的表示方法2.流程圖流程圖是用如圖所示的一些圖框、線條以及文字說明來描述算法。
流程圖表示的算法形象、直觀,便于交流。因此被廣泛使用。大學計算機基礎程序設計基礎全文共140頁,當前為第29頁。3010.2算法流程圖順序結構入口分支結構循環(huán)結構P條件,A語句1,B語句2出口AB出口入口nPAByP當型出口入口nyA直到型P出口入口nyA大學計算機基礎程序設計基礎全文共140頁,當前為第30頁。31真假要求出1+2+3+…+100的和開始結束0→s1→i輸出si<=100s+i→si+1→i大學計算機基礎程序設計基礎全文共140頁,當前為第31頁。3210.2算法10.2.3算法的表示方法3.N-S圖
N-S圖是一種簡化的流程圖,去掉了流程圖中的流程線,全部算法寫在一個矩形框內。N-S圖三種基本結構——順序結構、選擇結構、循環(huán)結構的符號如圖所示。
N-S圖表示算法直觀、形象,且比流程圖緊湊易畫。實際應用中也經常采用。大學計算機基礎程序設計基礎全文共140頁,當前為第32頁。3310.2算法10.2.3算法的表示方法4.偽代碼
用流程圖和N-S圖表示算法直觀易懂,但畫起來比較費事,尤其當設計一個復雜算法并需要反復修改時,就更加麻煩。為了設計算法時方便,常用一種稱為偽代碼的工具。所謂“偽代碼”就是用介于自然語言和計算機語言之間的文字和符號來描述算法。偽意味著假,因此用偽代碼寫的算法是一種假代碼——不能被計算機所理解,但便于轉換成某種語言編寫的計算機程序。用偽代碼寫算法并無固定的、嚴格的語法規(guī)則,只要意思表達清楚,書寫格式清晰易讀即可。大學計算機基礎程序設計基礎全文共140頁,當前為第33頁。3410.2.4算法的評價1.正確性:無歧義,四個含義:
a.程序不含語法錯誤;
b.程序對幾組輸入的數(shù)據(jù)能夠得出滿足規(guī)格說明要求的結果;
c.程序對于精心選擇的典型、苛刻而帶有刁難性的幾組數(shù)據(jù)能夠得出滿足規(guī)格說明要求的結果;
d.程序對于一切合法的輸入數(shù)據(jù)都能產生滿足規(guī)格說明要求的結果。達到d層的正確性極為困難,一般以c層作為正確性的衡量標準。2.可讀性:有助于對算法的閱讀、交流、理解、調試和修改。3.健壯性:對非法輸入數(shù)據(jù),能適當作出反映或進行處理。4.效率與低存儲量要求:時間復雜度和空間復雜度10.2算法大學計算機基礎程序設計基礎全文共140頁,當前為第34頁。3510.2算法10.2.4算法的評價時間復雜度:是從算法效率的角度來考慮的,指依據(jù)算法編寫出的程序在計算機上運行所消耗的時間。常常從算法中選取一種基本操作,以該基本操作重復執(zhí)行的次數(shù)作為算法的時間復雜度。空間復雜度:指依據(jù)算法編寫出的程序在計算機上運行時所占存儲空間的大小。通常也用算法所占輔助存儲空間大小的數(shù)量級來表示算法的空間復雜度。
大學計算機基礎程序設計基礎全文共140頁,當前為第35頁。3610.2算法10.2.5常用算法1.交換兩個變量的值
引例:設有兩個杯子A和B,分別盛放酒和醋,要求將它們互換。S1:C←AS2:A←BS3:B←C大學計算機基礎程序設計基礎全文共140頁,當前為第36頁。3710.2算法10.2.5常用算法1.交換兩個變量的值
已知變量x和y中分別存放了數(shù)據(jù),現(xiàn)在要交換其中的數(shù)據(jù)。為了達到交換的目的,需要引進一個中間變量m(每個變量代表著一塊內存區(qū)域),其算法如下:①將x中的數(shù)據(jù)送給變量m,即x→m;②將y中的數(shù)據(jù)送給變量x,即y→x;③將m中的數(shù)據(jù)送給變量y,即m→y。自然語言描述算法大學計算機基礎程序設計基礎全文共140頁,當前為第37頁。38開始結束輸入x,yx→my→xm→y輸出x,y開始輸入x,yx→my→xm→y輸出x,y結束流程圖NS流程圖大學計算機基礎程序設計基礎全文共140頁,當前為第38頁。3910.2算法10.2.5常用算法2.累加和累乘
累加和累乘是程序設計常用的算法,累加是指將數(shù)值不斷的累加到累加器上,如前面所介紹的1+2+3+…+100。累加器,存放累加和的變量。sum+xsum=sum+x累加器,sum為累加器變量大學計算機基礎程序設計基礎全文共140頁,當前為第39頁。4010.2算法10.2.5常用算法2.累加和累乘
例:5+10+15+…+100請同學們討論有多少種算法?算法1、直接賦值。如右圖注意:實際編程時,省略號也必須換成數(shù)字,顯然本例中只有20個數(shù)字累加,還可以用這種方法,如果有幾萬個數(shù)字累加,這種方法就沒有辦法實現(xiàn)。大學計算機基礎程序設計基礎全文共140頁,當前為第40頁。4110.2算法10.2.5常用算法2.累加和累乘
例:5+10+15+…+100請同學們討論有多少種算法?算法2、使用公式。(5+100)+(10+95)+(15+90)+…+(50+55)
=105*10注意:本例中,根據(jù)數(shù)字規(guī)律可以使用上面的公式。但不具有通用性。大學計算機基礎程序設計基礎全文共140頁,當前為第41頁。4210.2算法10.2.5常用算法算法3、使用累加。使用循環(huán)變量i,取5~100之間的數(shù)字,步長為5。5*(1+2+3+…+20),循環(huán)變量i,取1~20之間的數(shù)字,步長為1請看右圖。真假大學計算機基礎程序設計基礎全文共140頁,當前為第42頁。4310.2算法10.2.5常用算法算法3、使用累加。使用循環(huán)變量i,取5~100之間的數(shù)字,步長為5。5*(1+2+3+…+20),循環(huán)變量i,取1~20之間的數(shù)字,步長為1請看右圖。真假大學計算機基礎程序設計基礎全文共140頁,當前為第43頁。4410.2算法10.2.5常用算法算法4、使用枚舉。使循環(huán)變量i取1~100之間的每個整數(shù),步長為1。
在循環(huán)中只有當i是5的倍數(shù)時才將i累加到S中。請看右圖,這種方法的通用性最好。真真假假大學計算機基礎程序設計基礎全文共140頁,當前為第44頁。4510.2算法10.2.5常用算法3.枚舉法(窮舉法或試湊法)
1.根據(jù)條件確定答案的范圍,利用循環(huán)將范圍內所有可能的情況一一列出。2.對所有可能的情況逐一驗證。若某個情況符合條件,則為一個解;若全部情況均不符合條件,則問題無解。大學計算機基礎程序設計基礎全文共140頁,當前為第45頁。4610.2算法10.2.5常用算法3.枚舉法(窮舉法或試湊法)
1.m的因子范圍為1-m之間的整數(shù)。2.設置變量i取1-m之間的每個整數(shù),對i的每個取值進行判斷。例:顯示出正整數(shù)m的所有因子。真假假真大學計算機基礎程序設計基礎全文共140頁,當前為第46頁。4710.2算法10.2.5常用算法3.枚舉法(窮舉法或試湊法)
1.m和n最大公約數(shù)的范圍為n~1之間的整數(shù)。2.設置變量i從n開始向1變化,當找到第一個能夠同時整除m和n的數(shù),即是m、n最大公約數(shù)。例:顯示出正整數(shù)m和n的最大公約數(shù)(m>=n)。真假假真大學計算機基礎程序設計基礎全文共140頁,當前為第47頁。4810.2算法10.2.5常用算法4.遞推法(迭代法)
從初值出發(fā),歸納出新值與舊值間的關系,利用循環(huán)來完成迭代,每次循環(huán)時都從舊值的基礎上遞推出新值,并由新值代替舊值。例:猴子吃桃子問題。小猴有桃若干,每天吃掉現(xiàn)有數(shù)的一半多一個,到第7天要吃時只剩下一個了,問小猴原有桃子多少個?設第n天的桃子為xn,它是前一天的桃子數(shù)的一半少1個,遞推公式xn-1=(xn+1)×2大學計算機基礎程序設計基礎全文共140頁,當前為第48頁。4910.2算法10.2.5常用算法4.遞推法(迭代法)
大學計算機基礎程序設計基礎全文共140頁,當前為第49頁。5010.2算法10.2.5常用算法5.求最值
如果要求最大值,在n個數(shù)中先假設第1個數(shù)為最大值并存入變量max,用變量max依次同第2、3、…、n個數(shù)據(jù)逐一比較,一旦某個數(shù)比max大,則用這個數(shù)來替換max中原有的值,所有數(shù)比較完,最大值也就獲得(打擂法)。大學計算機基礎程序設計基礎全文共140頁,當前為第50頁。5110.2算法10.2.5常用算法5.求最值
例:輸入三個數(shù),輸出其中的最大值。大學計算機基礎程序設計基礎全文共140頁,當前為第51頁。5210.2算法10.2.5常用算法5.求最值
例:輸入n個數(shù),輸出其中的最小值。大學計算機基礎程序設計基礎全文共140頁,當前為第52頁。5310.3C程序入門C語言概述31C程序結構32C程序的上機步驟33大學計算機基礎程序設計基礎全文共140頁,當前為第53頁。54產生背景ALGOL60→CPL語言→BCPL→B語言,寫UNIX系統(tǒng)產生過程時間:1972~1973地點:美國貝爾實驗室目的:UNIX操作系統(tǒng)設計人:Ken.Thompson和Dennis.M.RitchieC標準標準C:1978年
K&R合著《TheCProgrammingLanguage》ANSIC:1983年87ANSIC:1987年1990年國際標準的ANSIC,1994年再次修訂。C版本TurboC或稱TCVisualC++VC10.3.1C語言概述大學計算機基礎程序設計基礎全文共140頁,當前為第54頁。55C語言的特點:C語言具有完善的功能和非常高的效率。C語言可以對硬件操作,是介于匯編語言和高級語言之間的一種語言。C語言是結構化的程序設計語言。C語言具有豐富的數(shù)據(jù)類型和運算類型。C語言具有良好的移植性。C語言書寫靈活,表達簡潔。10.3.1C語言概述大學計算機基礎程序設計基礎全文共140頁,當前為第55頁。56表1C語言與Pascal語言比較通過表1我們可以得出結論:C比
Pascal簡練,因此源程序更短,編程效率高。C語言PASCAL語言含義{}if(e)S;inti;inta[10];intf();int*p;i+=2;i++,++i;BEGINENDIF(e)THENS;VARi:INTEGER;VARa:ARRAY[1..10]OFINTEGER;FUNCTIONf():INTEGER;VARP:INTEGER;i=i+2;i=i+1;函數(shù)體、分程序、復合語句條件語句定義i為整形變量定義a為一維數(shù)組定義f為返回整形值函數(shù);p為指向整形變量的指針變量;賦值語句,使i+2賦給Ii自增值1,i加1賦給I大學計算機基礎程序設計基礎全文共140頁,當前為第56頁。57/*example1.1ThefirstCProgram*/#include<stdio.h>main(){printf(“Thisisacprogram.\n”);}注釋編譯預處理主函數(shù)語句輸出:Thisisacprogram.例.第一個程序Thisisacprogram.
printf語句中的“\n”是換行符
10.3.2C程序結構大學計算機基礎程序設計基礎全文共140頁,當前為第57頁。58/*例
求兩個整數(shù)之和*/#include<stdio.h>/*主函數(shù)*/voidmain(){inta,b,sum;/*定義變量*/a=10;b=24;sum=add(a,b);printf(”sum=%d\n",sum);}/*求兩個數(shù)x,y之和的函數(shù)*/intadd(intx,inty){intz;z=x+y;return(z);}運行結果:sum=34函數(shù)語句預處理命令注釋printf語句中的“
%d”是表示“十進制整數(shù)類型”大學計算機基礎程序設計基礎全文共140頁,當前為第58頁。59例
從鍵盤輸入兩個整數(shù),輸出其中較大的數(shù)#include<stdio.h>voidmain(){intmax(intx,inty)inta,b,c;
scanf(“%d,%d”,&a,&b);c=max(a,b);printf("max=%d",c);}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}scanf語句中“&a”的含義是“取地址”輸入:10,20輸出:max=20聲明部分,定義變量調用max函數(shù),返回值賦給c定義max子函數(shù),函數(shù)值、形參x、y為整型通過max函數(shù)將z值帶回調用處大學計算機基礎程序設計基礎全文共140頁,當前為第59頁。60多用小寫字母,大小寫敏感不使用行號,無程序行概念可使用空行和空格常用鋸齒形書寫格式main(){
……………….………………
…………..…………..
……………….
………………………….
……………….………………..}main(){
inti,j,sum;sum=0;for(i=1;i<10;i++){for(j=1;j<10;j++){sum+=i*j;}}printf(“%d\n”,sum);}優(yōu)秀程序員的素質之一:使用TAB縮進{}對齊有足夠的注釋有合適的空行C語言格式特點大學計算機基礎程序設計基礎全文共140頁,當前為第60頁。61C語言結構特點函數(shù)與主函數(shù)程序由一個或多個函數(shù)組成必須有且只能有一個主函數(shù)main(),可以放在程序中任一位置程序執(zhí)行從main開始,在main中結束,其它函數(shù)通過嵌套調用得以執(zhí)行。程序語句C程序由語句組成用“;”作為語句終止符注釋/**/為注釋,不能嵌套VC中也可以使用//不產生編譯代碼例:/*Thisisthemain/*ofexample1.1*/*/非法編譯預處理命令大學計算機基礎程序設計基礎全文共140頁,當前為第61頁。62編輯鏈接編譯執(zhí)行file.exe程序代碼的錄入,生成源程序*.c語法分析查錯,翻譯生成目標程序*.obj與其它目標程序或庫鏈接裝配,生成可執(zhí)行程序*.exe10.3.3C程序的上機步驟大學計算機基礎程序設計基礎全文共140頁,當前為第62頁。63VC++集成開發(fā)環(huán)境打開VC。單擊“file/new”選擇“file”選項卡,C++sourcefile輸入文件名(擴展名.c),選擇保存位置(Lacation)。單擊“OK”.c大學計算機基礎程序設計基礎全文共140頁,當前為第63頁。64VC++集成開發(fā)環(huán)境編譯、鏈接和運行的命令項都處在菜單Build之中。
注意,在對程序進行編譯、鏈接和運行前,最好先保存自己的工程(使用“File→SaveAll”菜單項)以避免程序運行時系統(tǒng)發(fā)生意外而使自己之前的工作付之東流。首先選擇執(zhí)行菜單第一項Compile,此時將對程序進行編譯。
若編譯中發(fā)現(xiàn)錯誤(error)或警告(warning),將在Output窗口中顯示出它們所在的行以及具體的出錯或警告信息,可以通過這些信息的提示來糾正程序中的錯誤或警告(注意,錯誤是必須糾正的,否則無法進行下一步的鏈接;而警告則不然,它并不影響進行下一步,當然最好還是能把所有的警告也“消滅”掉)。當沒有錯誤與警告出現(xiàn)時,Output窗口所顯示的最后一行應該是:
“Hello.obj-0error(s),0warning(s)”。大學計算機基礎程序設計基礎全文共140頁,當前為第64頁。65VC++集成開發(fā)環(huán)境選擇菜單的第二項Build來進行鏈接生成可執(zhí)行程序。
在鏈接中出現(xiàn)的錯誤也將顯示到Output窗口中。鏈接成功后,Output窗口所顯示的最后一行應該是:
“hello.exe-0error(s),0warning(s)”。運行(執(zhí)行)程序,選擇Execute項(該選項前有一個深色的感嘆號標志“!”.
VC6將運行已經編好的程序,執(zhí)行后將出現(xiàn)如圖所示,其中的“pressanykeytocontinue”是由系統(tǒng)產生的,使得用戶可以瀏覽輸出結果,直到按下了任一個鍵盤按鍵時為止(那時又將返回到集成界面的編輯窗口處)。編譯、鏈接和運行也可以使用工具按鈕。建立C的源程序也可以直接在windows新建一文本文件,然后將擴展名改為.C。大學計算機基礎程序設計基礎全文共140頁,當前為第65頁。6610.4基本數(shù)據(jù)類型與運算符C的數(shù)據(jù)類型31表達式和運算符32大學計算機基礎程序設計基礎全文共140頁,當前為第66頁。67C語言是一種強類型的計算機語言,所有用到的數(shù)據(jù),必須被說明為某種數(shù)據(jù)類型,數(shù)據(jù)類型是程序設計中的重要概念。數(shù)據(jù)類型確定數(shù)據(jù)在內存中占所空間的大小及存儲形式。在C語言中,數(shù)據(jù)類型可分為:基本類型,構造類型,指針類型,空類型四大類。10.4.1C的數(shù)據(jù)類型大學計算機基礎程序設計基礎全文共140頁,當前為第67頁。6810.4.1C的數(shù)據(jù)類型C數(shù)據(jù)類型基本類型構造類型指針類型空類型void字符型char整型實型(浮點型)單精度型float雙精度型double數(shù)組類型結構體類型共用體類型短整型short長整型long整型int數(shù)據(jù)類型決定:1.數(shù)據(jù)占內存字節(jié)數(shù)2.數(shù)據(jù)取值范圍3.可以進行的操作大學計算機基礎程序設計基礎全文共140頁,當前為第68頁。6910.4.1C的數(shù)據(jù)類型短整型整型(int)整型長整型無符號(unsignedshort)有符號(short)無符號(unsigned)有符號(int)無符號(unsignedlong)有符號(long)大學計算機基礎程序設計基礎全文共140頁,當前為第69頁。70標識符定義:標識變量名、符號常量名、函數(shù)名、數(shù)組名、文件名的字符串序列——名字。命名規(guī)則:只能由字母、數(shù)字、下劃線組成,且第一個字符必須是字母或下劃線大小寫字母含義不同,一般用小寫不能使用關鍵字使用:先定義、后使用標識符應該“見名知意”,如total,max標識符應該“不宜混淆”,如l與1,O與010.4.2常量與變量大學計算機基礎程序設計基礎全文共140頁,當前為第70頁。71常量和符號常量定義:程序運行過程中,其值不能被改變的量(常數(shù))分類:直接常量、符號常量類型示例直接常量整型常量12、0、-3實型常量4.6、-1.23、1.23e+5字符常量‘a’、‘b’字符串常量"a"、""、"abc"、"10"符號常量PRICE、PAI大學計算機基礎程序設計基礎全文共140頁,當前為第71頁。72<>符號常量:用標識符代表常量一般用大寫字母:
PRICE、PI定義格式:
#define
符號常量常量其值在作用域內不能改變和再賦值。例
符號常量舉例#definePRICE30#include<stdio.h>voidmain(){intnum,total;num=10;total=num*PRICE;printf("total=%d\n",total);}total=300運行結果:符號常量的優(yōu)點是:見名知意、一改全改大學計算機基礎程序設計基礎全文共140頁,當前為第72頁。73變量定義:其值可以改變的量。定義格式:數(shù)據(jù)類型變量名;變量應該有名字,并在內存中占據(jù)一定的存儲單元。變量名和變量值有不同的含義變量實際代表一塊內存存貯區(qū)域變量名實為這個區(qū)域的標識
a3例變量的使用main(){inta;a=3;printf(“a=%d",a);}變量名變量值存儲區(qū)域大學計算機基礎程序設計基礎全文共140頁,當前為第73頁。74整型常量(整常數(shù))的三種表示方法十進制整數(shù):由數(shù)字0~9和正負號表示.
如123,-456,0八進制整數(shù):由數(shù)字0開頭,后跟數(shù)字0~7表示.
如0123,011十六進制整數(shù):由0x開頭,后跟0~9,a~f,A~F表示.
如0x123,0xff八、十六進制數(shù)都是無符號數(shù)。整數(shù)數(shù)據(jù)大學計算機基礎程序設計基礎全文共140頁,當前為第74頁。75注意:十進制數(shù)10的二進制形式為1010,不同的編譯系統(tǒng)為整型數(shù)據(jù)分配的字節(jié)數(shù)是不相同的,TurboC2.0和TurboC++3.0為一個整型變量在內存中分配2個字節(jié)的存儲單元,VC++6.0則分配4個字節(jié)。數(shù)值是以補碼(complement)表示的。大學計算機基礎程序設計基礎全文共140頁,當前為第75頁。76整型變量的分類:共六種有符號基本整型有符號短整型有符號長整型無符號基本整型無符號短整型無符號長整型(signed)int(signed)short(int)(signed)long(int)unsignedintunsignedshort(int)unsignedlong(int)
注意:括號表示其中的內容是可選的.大學計算機基礎程序設計基礎全文共140頁,當前為第76頁。77整數(shù)類型的有關數(shù)據(jù)(VC++):
類型類型說明符長度數(shù)的范圍基本型int4字節(jié)-231~231-1短整型short2字節(jié)-215~215-1
長整型long4字節(jié)-231~231-1
無符號整型unsigned4字節(jié)0~(232-1)
無符號短整型unsignedshort2字節(jié)0~65535
無符號長整型unsignedlong4字節(jié)0~(232-1)大學計算機基礎程序設計基礎全文共140頁,當前為第77頁。78整型變量的定義:定義整型變量的一般形式:類型說明符變量名,變量名,...;
在定義變量的同時給變量賦值稱為變量初始化。變量初始化的格式為:類型說明符變量名=<表達式>,變量名=<表達式>,...;
大學計算機基礎程序設計基礎全文共140頁,當前為第78頁。79【例】分析以下程序的運行結果。#include<stdio.h>main(){inta=1,b=2,c;longx=29,y=2147483600;c=a;a=10;printf("a+b=%d,x+y=%ld,c=%d\n",a+b,x+y,c);}程序的運行結果為:a+b=12,x+y=2147483629,c=1大學計算機基礎程序設計基礎全文共140頁,當前為第79頁。80【例】分析以下程序的運行結果。#include<stdio.h>main(){shortd=-1;
printf("%hd,%hu\n",d,d);}
程序的運行結果為:-1,65535
大學計算機基礎程序設計基礎全文共140頁,當前為第80頁。81【例】分析以下程序的運行結果。#include<stdio.h>main(){inti=65535;shortj=i;
printf("i=%d,j=%d\n",i,j);}
程序的運行結果為:i=65535,j=-1
本例中,變量i是整型變量,在內存中占四個字節(jié)。65535在內存中存放形式為:00000000000000001111111111111111變量是j是短整型變量,在內存中只占兩個字節(jié),因此在將i賦給j時,只將低端的兩個字節(jié)賦給j中內容為:
1111111111111111(-1的補碼)所以輸出的i為65535,j為-1。大學計算機基礎程序設計基礎全文共140頁,當前為第81頁。82浮點型常量的表示方法兩種表示形式小數(shù)指數(shù)0.1233e-3注意:字母e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù)1e3、1.8e-3、-123e-6、-.1e-3e3、2.1e3.5、.e3、e
浮點型數(shù)據(jù)(實型數(shù)據(jù))大學計算機基礎程序設計基礎全文共140頁,當前為第82頁。83浮點型變量:浮點型變量分為單精度(float型)、雙精度(double型)。
浮點型數(shù)據(jù)在內存中的存放形式是用科學記數(shù)法(即指數(shù)的方式)存放的,在占用相同的存儲空間時,浮點型數(shù)據(jù)可以存儲更大范圍的數(shù)據(jù),但浮點型數(shù)據(jù)有有效位限制(精度)。類型類型說明符數(shù)的范圍(絕對值)字節(jié)數(shù)有效位單精度float0和1.2×10-38~3.4×103847~8雙精度double0和2.3×10-308~1.7×10308815~16大學計算機基礎程序設計基礎全文共140頁,當前為第83頁。84【例】分析以下程序的運行結果。#include<stdio.h>main(){
floatx=101235342.98345678;
doubley=422222222345.11223344556677889900;
printf("x=%f,y=%lf\n",x,y);}程序的運行結果為:x=101235344.000000,y=422222222345.112240
八個有效位十六個有效位大學計算機基礎程序設計基礎全文共140頁,當前為第84頁。85在內存中存放字符時,所存放的是該字符的二進制代碼(ASCII碼)
字符型數(shù)據(jù)字符十進制代碼八進制十六進制二進制換行1012A00001010回車1315D00001101空格32402000010000字符0~948~5760~7130~3900110000~00111001字符A~Z65~90101~13241~5A01000001~01011010字符a~z97~122141~17261~7A01100001~01111010大學計算機基礎程序設計基礎全文共140頁,當前為第85頁。86字符常量(1)用單引號包含的一個字符是字符型常量(2)只能包含一個字符例‘a’,’A’,‘1’‘abc’、“a”字符型數(shù)據(jù)大學計算機基礎程序設計基礎全文共140頁,當前為第86頁。87
有些以“\”開頭的特殊字符稱為轉義字符轉義字符轉義字符的意義ASCII碼(十進制)\n回車換行符,將光標移到下一行開頭10\r回車符,將光標移到本行開頭13\t制表符,將光標橫向跳到下一個制表位置9\b退格符,將光標移到前一列8\f換頁符,將光標移到下一頁開頭12\\反斜杠字符(\)92\"雙引號字符(")34\'單引號字符(')39\ddd1~3位八進制數(shù)所代表的字符\xhh1~2位十六進制數(shù)所代表的字符大學計算機基礎程序設計基礎全文共140頁,當前為第87頁。88【例】分析以下程序的運行結果。main(){intx=16,y=2008;
printf("y=%d\rx=%d\n",y,x);printf("\%c%c%c\b%.1f\n",'C','+','+',6.0);}
程序的運行結果為:x=1608C+6.0大學計算機基礎程序設計基礎全文共140頁,當前為第88頁。89字符變量字符型變量用來存放字符常量,注意只能放一個字符。字符變量的定義形式如下:charc1,c2;一個字符變量在內存中占一個字節(jié)。大學計算機基礎程序設計基礎全文共140頁,當前為第89頁。90【例】分析以下程序的運行結果。#include<stdio.h>main(){chara=66;intb='A';printf("%d,%c\n",a,a);printf("%d,%c\n",b,b);}
程序的運行結果為:66,B65,A大學計算機基礎程序設計基礎全文共140頁,當前為第90頁。91【例】以下程序實現(xiàn)大小寫字母轉換。#include<stdio.h>main(){chara='x',b='Y';/*a,b被說明為字符變量并賦值*/a=a-32;/*把小寫字母換成大寫字母*/b=b+32;printf("%c,%c\n",a,b);}
程序的運行結果為:X,y大學計算機基礎程序設計基礎全文共140頁,當前為第91頁。92字符串常量字符串常量是一對雙引號括起來的字符序列.合法的字符串常量:
“Howdoyoudo.”,“CHINA”,“a”
,“$123.45”可以輸出一個字符串,如
printf(“Howdoyoudo.”);字符串常量大學計算機基礎程序設計基礎全文共140頁,當前為第92頁。93
‘a’是字符常量,”a”是字符串常量,二者不同。
如:假設C被指定為字符變量
:charcc=’a’;
c=”a”;c=”CHINA”;
結論:不能把一個字符串常量賦給一個字符變量。大學計算機基礎程序設計基礎全文共140頁,當前為第93頁。94C規(guī)定:在每一個字符串常量的結尾加一個“字符串結束標志”,以便系統(tǒng)據(jù)此判斷字符串是否結束。C規(guī)定以字符’\0’作為字符串結束標志。
如:如果有一個字符串常量”CHINA”,實際上在內存中是:CHINA\0
它占內存單元不是5個字符,而是6個字符,最后一個字符為’\0’。但在輸出時不輸出’\0’。大學計算機基礎程序設計基礎全文共140頁,當前為第94頁。95【例】分析以下程序的運行結果。#include<stdio.h>#include<string.h>main(){printf("%d,%d\n",strlen("abcd"),sizeof("abcd"));}程序的運行結果為:4,5strlen是用來計算字符串的長度,這是一個庫函數(shù)sizeof是用來計算字符串所占存儲空間的大小,這是一個運算符。大學計算機基礎程序設計基礎全文共140頁,當前為第95頁。96編程時,要在程序中寫一些算式,這些算式就是表達式;一個表達式可能包含一個或多個操作,而連接這些操作對象的是運算符。如:x+y-z/2就是一個C語言表達式。特殊的,在程序設計語言中,單個常量、單個變量、單個函數(shù)也算表達式。C語言運算符有:算術運算符、關系與邏輯運算符、賦值運算符、條件運算符、逗號運算符等。
10.4.2運算符和表達式
大學計算機基礎程序設計基礎全文共140頁,當前為第96頁。97算術運算符和算術表達式基本算術運算符:+-*/%結合方向:從左向右優(yōu)先級:->*/%>+-
(2)(3)(4)說明:“-”可為單目運算符時,右結合性兩整數(shù)相除,結果為整數(shù)%要求兩側均為整型數(shù)據(jù)+-*/運算的兩個數(shù)中有一個數(shù)為實數(shù),結果是double型例5/2=-5/2.0=例5%2=-5%2=1%10=
5%1=5.5%2例5/2=2
-5/2.0=-2.5例5%2=1
-5%2=-11%10=
1
5%1=
05.5%2()大學計算機基礎程序設計基礎全文共140頁,當前為第97頁。98自增、自減運算符++--作用:使變量值加1或減1種類:前置++i,--i(先執(zhí)行i+1或i-1,再使用i值)后置i++,i--(先使用i值,再執(zhí)行i+1或i-1)例
j=3;k=++j; j=3;k=j++; j=3;printf(“%d”,++j); j=3;printf(“%d”,j++); a=3;b=5;c=(++a)*b; a=3;b=5;c=(a++)*b;//k=4,j=4//k=3,j=4//4,j=4//3,j=4//c=20,a=4//c=15,a=4大學計算機基礎程序設計基礎全文共140頁,當前為第98頁。99幾點說明:例-i++i=3;printf(“%d”,-i++);
-(i++)//-3
++--不能用于常量和表達式,如
5++,(a+b)++++--結合方向:自右向左優(yōu)先級:-++-->*/%>+-
(2)(3)(4)該運算符常用于循環(huán)語句中,使循環(huán)變量加減1有關表達式使用中的問題說明不同系統(tǒng)對運算符和表達式的處理次序不同,盡可能寫通用性強的語句不要寫有歧義和不知系統(tǒng)如何執(zhí)行的程序大學計算機基礎程序設計基礎全文共140頁,當前為第99頁。100賦值運算符和賦值表達式簡單賦值運算符符號:=格式:變量標識符=表達式作用:將一個數(shù)據(jù)(常量或表達式)賦給一個變量左側必須是變量,不能是常量或表達式例a=3;d=func();c=d+2;例3=x-2*y; a+b=3;(×)類型轉換賦值轉換規(guī)則:使賦值號右邊表達式值自動轉換成其左邊變量的類型例
floatf;inti=10;f=i;則
f=10.0例inti;i=2.56;//結果i=2;大學計算機基礎程序設計基礎全文共140頁,當前為第100頁。101復合賦值運算符種類:+=-=*=/=%=《=》=&=^=|=含義:exp1op=exp2exp1=exp1opexp2a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3大學計算機基礎程序設計基礎全文共140頁,當前為第101頁。102賦值表達式形式:<變量><賦值運算符><表達式>賦值表達式的值與變量值相等,且可嵌套例:a=b=c=5a=(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)//表達式值為5,a,b,c值為5//b=5;a=5//表達式值11,c=6,a=11//表達式值10,a=10,b=4,c=6//表達式值5,a=5,b=10,c=2大學計算機基礎程序設計基礎全文共140頁,當前為第102頁。103關系運算符及其優(yōu)先次序C語言提供6種關系運算符種類:<<===>=>!=結合方向:自左向右優(yōu)先級別:< (小于)<= (小于等于)> (大于)>= (大于等于)== (等于)!= (不等于)
優(yōu)先級6(高)
優(yōu)先級7(低)c>a+b//c>(a+b)a>b!=c//(a>b)!=ca==b<c//a==(b<c)a=b>c//a=(b>c)算術運算符高關系運算符賦值運算符低大學計算機基礎程序設計基礎全文共140頁,當前為第103頁。104關系表達式用關系運算符將兩個表達式連接起來的式子關系表達式的值:是邏輯值“真”或“假”,用1和0表示a>b,(a+b)>(b+c),5==3inta=3,b=2,c=1,d,f; a>b (a>b)==c b+c<a d=a>b f=a>b>c//表達式值1//表達式值1//表達式值0//d=1//f=0大學計算機基礎程序設計基礎全文共140頁,當前為第104頁。105關系運算幾點注意:例5>2>7>8在C中是允許的,值為0例
inti=1,j=7,a;a=i+(j%4!=0);
則a=2例‘a’>0結果為‘A’>100結果為10>結合方向自左至右用ASCII值比較大學計算機基礎程序設計基礎全文共140頁,當前為第105頁。106關系運算中應該注意注意區(qū)分“=”與“==”inta=0,b=1;if(a=b)printf(“aequaltob”);elseprintf(“anotequaltob”);應避免對實數(shù)作相等或不等于0的判斷如1.0/3.0*3.0==1.0可改寫為:fabs(1.0/3.0*3.0-1.0)<1e-6結果為:
aequaltob大學計算機基礎程序設計基礎全文共140頁,當前為第106頁。107邏輯運算符和邏輯表達式用邏輯運算符將關系表達式或邏輯量連接起來的式子就是邏輯表達式。邏輯運算符:C語言提供3種邏輯運算符
運算符名稱 含義&&邏輯與示例||邏輯或若a、b之一為真,則a||b為真!邏輯非若a為真,則!a為假;a為假,則!a為真
若a、b同時為真,則a&&b為真a&&ba||b!a“&&”和“||”是雙目運算符
“!”是單目運算符大學計算機基礎程序設計基礎全文共140頁,當前為第107頁。108邏輯運算真值表ab!a!ba&&ba||b真假真假假假真真真假假假假假真真假假真真真假真真例:優(yōu)先次序
(a>b)&&(x>y)(a==b)||(x==y)(!a)||(a>b)//寫成a>b&&x>y//寫成a==b||x==y//寫成!a||a>b邏輯運算符的優(yōu)先次序
!(非),&&(與),||(或)優(yōu)先次序:高(2)(11)(12)低結合方向:從右向左從左向右從左向右大學計算機基礎程序設計基礎全文共140頁,當前為第108頁。109邏輯表達式C語言中,
運算量:
0表示“假”,運算結果:0表示“假”,非0表示“真”,
1表示“真”,例a=4;b=5;!aa&&ba||b!a||b4&&0||25>3&&2||8<4-!0‘c’&&‘d’值為1值為0值為1值為1值為1值為1//(5>3)&&2||(8<(4-(!0)))值為1大學計算機基礎程序設計基礎全文共140頁,當前為第109頁。110邏輯運算中的注意點:短路特性:邏輯表達式求解時,并非所有的邏輯運算符都被執(zhí)行,只是在必須執(zhí)行下一個邏輯運算符才能求出表達式的解時,才執(zhí)行該運算符。
若a=1;b=2;c=3;d=4;m=1;n=1;
則(m=a>b)&&(n=c>d)
a&&b&&c//只在a為真時,才判別b的值;
只在a、b都為真時,才判別c的值
a||b||c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 申請書格式講解
- 2020-2025年中國雙黃連行業(yè)市場運行態(tài)勢與投資戰(zhàn)略咨詢報告
- 2025年中國城市燃氣生產和供應(供氣)行業(yè)發(fā)展前景展望與投資戰(zhàn)略規(guī)劃分析報告
- 電競行業(yè)的環(huán)境友好策略-以綠建酒店的推廣為例
- 戶口分戶申請書范文
- 2025年度企業(yè)知識產權授權委托合同書模板
- 2025年度智能房地產居間服務協(xié)議合同
- 2025年度醫(yī)療設備融資租賃及維護保養(yǎng)服務合同
- 2025年度微電影劇本創(chuàng)作與拍攝制作服務合同
- 2025年度影視行業(yè)獨家演員隱私保護合同
- 企業(yè)對外溝通與形象塑造制度
- 中國高血壓防治指南-解讀全篇
- 2024年監(jiān)控安裝合同范文6篇
- 2024年山東省高考政治試卷真題(含答案逐題解析)
- 煙葉復烤能源管理
- 應收賬款管理
- 食品安全管理員考試題庫298題(含標準答案)
- 非ST段抬高型急性冠脈綜合征診斷和治療指南(2024)解讀
- 2024年山東濟寧初中學業(yè)水平考試地理試卷真題(含答案詳解)
- 撫恤金喪葬費協(xié)議書模板
- 準備單元 雪地上的“足跡”(教學設計)-2023-2024學年五年級下冊科學大象版
評論
0/150
提交評論