數(shù)據(jù)結構chapter1概論14級_第1頁
數(shù)據(jù)結構chapter1概論14級_第2頁
數(shù)據(jù)結構chapter1概論14級_第3頁
數(shù)據(jù)結構chapter1概論14級_第4頁
數(shù)據(jù)結構chapter1概論14級_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、P1C語言程序設計授課教師:張?zhí)柽hEmail: 遵循ISO/IEC 14882:2003C+標準P2第1章 概 論1.1 C語言背景知識1.2 C語言的發(fā)展及特點1.3 C語言程序的書寫格式和結構特點1.4 C語言的基本語法單位1.5 簡單的輸入與輸出1.6 運行C程序的一般步驟 2022/9/13P31.1 C語言背景知識1、何為程序設計?C語言有何用?2、計算機的數(shù)和編碼系統(tǒng):3、計算機的基本原理4、程序設計語言2022/9/13P4(1.1)1何為程序設計?C語言有何用?程序設計是一個完整的過程,包含:需求分析、總體設計、詳細(功能模塊)設計、代碼編寫、調試、用例測試和源代碼維護。程序設

2、計的目標就是生成能夠可靠執(zhí)行且滿足用戶需求功能的可執(zhí)行應用程序。源代碼(又叫源程序)是用程序設計語言寫成的,本身無法運行于操作系統(tǒng)C+、C是廣泛使用的程序設計語言。2022/9/13P5(1.1)1何為程序設計?C語言有何用?(續(xù))C是結構化的程序設計語言,適合于系統(tǒng)級程序開發(fā),最大代碼量1w行左右C+是面向對象( Object-oriented )的程序設計語言,適合于大規(guī)模級別的應用開發(fā),是當今軟件行業(yè)首選的程序設計語言之一學習C/C+的好處:了解一門行業(yè)推崇的程序設計語言;了解面向對象的軟件工程系統(tǒng)設計概念。C 是C+的子集,C+包含過程性語言部分和面向對象語言部分,C就是過程性語言部分

3、。2022/9/13P6(1.1)2、計算機的數(shù)和編碼系統(tǒng):(1)二進制人們最習慣和熟悉的計數(shù)和運算方式是十進制,即逢十進一。而計算機內數(shù)是以 二進制 0 和 1 來表示的。故存在現(xiàn)實與計算機中數(shù)表示方式的轉換。同十進制數(shù)一樣在計算機內部二進制數(shù)也有多位構成,彼此之間逢二進一,如同十進制數(shù)字的每一位都有一個權值(同樣的1在不同數(shù)位上的取值),二進制數(shù)也是如此??陕?022/9/13P7(1.1)2、計算機的數(shù)和編碼系統(tǒng)(cont.)例1:二進制位: b7 b6 b5 b4 b3 b2 b1 b0 0 1 0 1 1 1 1 0 權 值: 27 26 25 24 23 22 21 20 轉換成1

4、0進制數(shù) = b727 + b626 + b525 + b424 + b323 + b222 + b121 + b020 = 027 + 126 + 025 + 124 + 123 + 122 + 121 + 020 = 64 + 16 + 8 + 4 + 2 = 942022/9/13P8(1.1)2、計算機的數(shù)和編碼系統(tǒng)(cont.) 把二進制數(shù)轉換成十進制數(shù)的方法(稱為二翻十運算)dec = bn12n1 + bn-22n-2 + .+ b12 + b0 式中,bn1、bn-2、.、b1、b0均為二進制數(shù)(二進制碼元)。 若二進制數(shù)的位數(shù)為n(如8位),n個bits可表示2n個不同的數(shù),

5、無符號數(shù)數(shù)值范圍是0 2n 1,如0 28 1 = 255,即所表示最大數(shù)值255的二進制碼,其8個bits都是1。2022/9/13P9(1.1)2、計算機的數(shù)和編碼系統(tǒng)(cont.) 位數(shù)越多表示數(shù)的動態(tài)范圍越大,且最大數(shù)值再加1則n位都變成0,并向(n+1)位進位,稱為“溢出”,這就是說n位二進制數(shù)已裝滿了,則溢出一個2n 數(shù)值后,再從零開始計數(shù)。 十六進制和八進制數(shù):由于二進制數(shù)較長,閱讀和書寫困難,且容易出錯,而且4位二進制數(shù)可以用一位十六進制數(shù)來表示,3位二進制數(shù)對應一位八進制數(shù),它們之間具有直接的、唯一的對應關系如下表所示2022/9/13P10(1.1)2、計算機的數(shù)和編碼系統(tǒng)

6、(cont.) 十進制 二進制 十六進制 八進制 0 0000 0 0 1 0001 1 1 2 0010 2 2 3 0011 3 3 4 0100 4 4 5 0101 5 5 6 0110 6 6 7 0111 7 7 8 1000 8 10 9 1001 9 11 10 1010 A 12 11 1011 B 13 12 1100 C 14 13 1101 D 15 14 1110 E 16 15 1111 F 172022/9/13P11(1.1)2、計算機的數(shù)和編碼系統(tǒng)(cont.) 從表中可知,二進制數(shù)和十六進制數(shù)之間的轉換非常簡捷方便,即4位二進制數(shù)可以用一位十六進制數(shù)來表示。

7、例如:94 = 0101,1110 = 5E(H)其中,H是Hexadecimal(十六進制的)第1個字母,在計算機的教材中用以表明十六進制數(shù)。但在代碼中常寫成0X5E. 十六進制數(shù)轉換成十進制數(shù):為了簡便,我們討論4位十六進制數(shù)的轉換情況,(因為我們通常用4位16進制數(shù)表示段內偏移地址碼)dec=hex3163+hex2162+hex116+hex0例如:0 x80AF= 8163+ 0162+A16+F = 32768+0+160+15 = 32943 八進制類推2022/9/13P12(1.1)2、計算機的數(shù)和編碼系統(tǒng)(cont.)(3)二進制數(shù)的原碼、反碼和補碼:以上的整數(shù)都是無符號整

8、數(shù),考慮帶符號的整數(shù)在計算機內如何表示呢 正號和負號如何表示通常取一個二進制數(shù)的最高位為符號位,1表示負號,0表示正號。例如,一個8bits二進制數(shù)的最高位是b7,其后7個bits是它的數(shù)值,一個16bits二進制數(shù)的最高位是b15,其后15bits是它的數(shù)值。這種表示法叫原碼反碼:正數(shù)的反碼和原碼相同;負數(shù)的反碼是對原碼符號后面二進制碼各位取反(即將“0”變?yōu)椤?”,“1”變?yōu)椤?”)。?2022/9/13P13(50)10的八位二進制原碼為(00110010)原(50)10的八位二進制原碼為(10110010)原(156)10的十六位二進制原碼為 (0000000010011100)原(1

9、56)10的十六位二進制原碼為 (1000000010011100)原(1.1)2、計算機的數(shù)和編碼系統(tǒng)(cont.)為什么要用16位二進制碼來表示?2022/9/13P14(1.1)2、計算機的數(shù)和編碼系統(tǒng)(cont.)(50)10的八位二進制原碼為(00110010)原(50)10的八位二進制原碼為(10110010)原(50)10的八位二進制反碼為(00110010)反(50)10的八位二進制反碼為(11001101)反50+(-50)= ?2022/9/13P15(1.1)2、計算機的數(shù)和編碼系統(tǒng)(cont.)在計算機中,數(shù)的處理和存儲形式既不是原碼也不是反碼,而是數(shù)的二進制補碼!規(guī)則

10、:正數(shù)的補碼和原碼相同;負數(shù)的補碼是在該數(shù)的反碼的最低位加1。求負運算變補運算,即:求出負號后面數(shù)的碼按位取反1,如果負號后面的數(shù)還是負數(shù),則遞歸地求出該負號后面的數(shù)的碼按位取反+1。減法運算用加法來實現(xiàn)(補碼相加)。參與運算的所有數(shù)都以補碼形式表示。在內存中以補碼來保存。2022/9/13P16(1.1)2、計算機的數(shù)和編碼系統(tǒng)(cont.)(50)10的八位二進制原碼為(00110010)原(+50)10的八位二進制反碼為 (00110010)反(50)10的八位二進制補碼為(00110010)補(50)10的八位二進制原碼為(10110010)原(50)10的八位二進制反碼為(11001

11、101)反(50)10的八位二進制補碼為(11001110)補m個bits帶符號的數(shù)可表示2m個二進制數(shù),其數(shù)值范圍:-2m-1 2m-1-1,如-27 27-1=-128 1272022/9/13P17為什么要引入反碼和補碼?根據(jù)帶符號數(shù)的原碼表示法可知:絕對值相同的正負兩數(shù),其數(shù)值位相同,僅最高位(即符號位)不同。這種表示法對帶符號數(shù)的運算來講不方便,甚至產(chǎn)生問題。比如:+94和-94相加或者94-94這樣的減法運算,正確的結果應該是0,而原碼表示法的結果卻不為0。為了把減法運算轉換成帶符號數(shù)的加法運算,引入了反碼和補碼的概念。2022/9/13P181.1 C語言的入門知識1、何為程序設

12、計?C+語言有何用?2、計算機的數(shù)和編碼系統(tǒng):3、計算機的基本原理4、程序設計語言(1)存儲程序式計算機原理(馮紐曼VonNeumann式計算機原理) 原理:計算機在開始特定的工作時(比如計算),將預先準備好的程序代碼(指可執(zhí)行代碼,而不是源代碼)和數(shù)據(jù)通過一定的方式送到有記憶功能的組件內存儲器中保存起來,按一定順序存儲,計算機工作時,只要知道程序中第一條指令存放的地址單元,就能順序依次取出每一條指令加以識別,并執(zhí)行指令所規(guī)定的操作,達到相應控制或計算的目的。2022/9/13P19(1.1)3、計算機的基本原理:在CPU(中央處理機)中識別外設2022/9/13P20(1.1)3、計算機的基

13、本原理:計算機系統(tǒng)的層次結構圖主機外部設備外存儲器控制臺內存儲器Memory中央處理單元CPU輸入/輸出接口地址總線數(shù)據(jù)總線控制總線執(zhí)行程序在運行前會被加載到內存儲器;程序運行過程中的變量數(shù)據(jù)和狀態(tài)值也保存在內存儲器中。主機外部設備外存儲器控制臺內存儲器Memory中央處理單元CPU輸入/輸出接口地址總線數(shù)據(jù)總線控制總線執(zhí)行程序在運行前會被加載到內存儲器;程序運行過程中的變量數(shù)據(jù)和狀態(tài)值也保存在內存儲器中。執(zhí)行程序在運行前會被加載到內存儲器;程序運行過程中的變量數(shù)據(jù)和狀態(tài)值也保存在內存儲器中。2022/9/13P21(1.1)3、計算機的基本原理:(2)計算機組成和層次結構2022/9/13P

14、22(1.1)3、計算機的基本原理:計算機系統(tǒng)的層次結構圖2022/9/13P231.1 C語言的入門知識1、何為程序設計?C+語言有何用?2、計算機的數(shù)和編碼系統(tǒng):3、計算機的基本原理4、程序設計語言2022/9/13P24(1.1)4、程序設計語言:(1)匯編語言 讀寫難、維護難便于記憶代碼需具體機器 指令系統(tǒng)支持 代碼復雜、編程效率低;代碼緊湊,執(zhí)行效率高 便于移值機器語言匯編語言高級語言2022/9/13P25機器語言匯編語言C 語言高級語言翻譯成機器語言后,方能在宿主機器中運行,這個翻譯過程稱作“編譯”2022/9/13P26(1.1)4、程序設計語言:MCS51系列單片(微型計算)

15、機的指令系統(tǒng)中的機器及匯編指令: 機器碼指令 匯編指令 操作內容 0000 ,0100(04H) INC A A + 1 A 0000 ,1110(0EH) INC R1 R1 + 1 R1 INC A(INC為單詞Increment的縮寫),其操作含義是把累加器A的內容(所存放的數(shù)據(jù))增1后再放回A 2022/9/13P27(1.1)4、程序設計語言:命令1:將a放入寄存器eax中(ebp是數(shù)據(jù)段指針,a_$是變量 a的偏移位置)mov eax,DWORD PTR a_$ ebp 8b 45 fcmov ecx,DWORD PTR b_$ ebp8b 4d f8add ecx,ecx03 c

16、9sub eax,ecx2b c1Inc eax40mov DWORD PTR a_$ ebp,eax89 45 fc特點:晦澀、難懂、程序復雜工作量大;語言越低級,越靠近機器;語言越高級越靠近人的表達和理解。2022/9/13P28(1.1)4、程序設計語言:(2)高級語言:比如:Fortran、Basic、Pascal(ObjectPascal) 、C/C+、Java等 特點:引入數(shù)據(jù)類型和方便的流程控制,以及更接近人的思維模式的程序設計語句。 不局限于機器硬件,而且不要求對硬件有過多的理解; 屬于高級語言有相應的數(shù)據(jù)類型,還有流程控制語言成分;程序易讀、易維護,編程工作量相對匯編語言低很

17、多; 代碼移植性較好; 代碼冗余量大,程序執(zhí)行效率較低(有的高級語言上是先編譯成匯編語言代碼,再編譯成機器碼)。對應前面的匯編指令用C語言表達:a =a2*b+12022/9/13P291.2 C/C+語言的發(fā)展及特點1.2.1 C/C+語言的發(fā)展過程 C/C+語言是目前世界上流行最廣泛的通用程序設計語言。C語言的發(fā)展過程可粗略地分為三個階段:1970年至1973年為誕生階段,1973年至1988年為發(fā)展階段,1988年以后為成熟階段 。 C語言的發(fā)展過程如下: 1960年:ALGOL 1963年:CPL 1967年:BCPL 1970年:B(托馬森) 1972年:C (里奇)貝爾實驗室 80

18、年代:C+(Bjarne Stroustrup )貝爾實驗室1983年,ANSI制定了ANSI C標準;2022/9/13P301.2 C/C+語言的發(fā)展及特點1.2.1 C/C+語言的發(fā)展過程 C/C+是目前世界上流行最廣泛的通用程序設計語言。C語言的發(fā)展過程可粗略地分為三個階段:1970年至1973年為誕生階段,1973年至1988年為發(fā)展階段,1988年以后為成熟階段 。 C語言的發(fā)展過程如下: 1960年:ALGOL 1963年:CPL 1967年:BCPL 1970年:B 1972年:C貝爾實驗室 80年代:C+(Bjarne Stroustrup )貝爾實驗室1983年,ANSI制

19、定了ANSI C標準;1987年,ANSI又公布了87 ANSI C標準 ,明確定義了與機器無關的C語言(美國國家標準化協(xié)會)2022/9/13P311.2 C+語言的發(fā)展及特點1.2.1 C/C+語言的發(fā)展過程(cont.)Kernighan和Ritchie合編的The C Programming Language(1988版)詳細介紹了ANSI C的全部內容,這本書成為最成功的計算機學術著作之一1990年,ISO國際標準化組織接受了87ANSI C為ISO 標準(ISO9899-1990)1998年ISO國際標準化組織頒布了C+程序設計語言的國際標準ISO/IEC 1488-1998200

20、3更新的C+標準:ISO/IEC 14882:2003 2022/9/13P321.2.2 C/C+語言的特點1. 介乎于高級語言和匯編語言之間,兼有兩者的優(yōu)點。2. 引用結構化程序架構,便于軟件工程化。語言簡潔(目標代碼和源代碼都很簡潔),且表達能力強,使用靈活,易于學習和應用。編譯系統(tǒng)小巧(關鍵字個數(shù)、輸入輸出功能非語法成分、數(shù)據(jù)類型和流程控制結構的最佳組合)5. 可移植性好 。2022/9/13P33 C/C+是一個杰出的程序設計語言,一方面,C/C+的語法限制不太嚴格,程序設計自由度大,它給程序員無限的自由空間去隨意的運用該語言而不受系統(tǒng)約束,就象前面的數(shù)據(jù)類型可以隨意轉換,數(shù)組下標可

21、以越界,可以任意訪問任一內存段等等,這是受批評最多的,但也是最受人喜愛的地方,它使得C /C+較之一個更嚴謹更完善,而有更多限制的語言更有市場。 靈活和限制:2022/9/13P34靈活和限制: (cont.)指針是C/C+自由和靈活的象征,指針類型可以使程序員訪問機器系統(tǒng)的所有地址空間,而不正確使用指針則會導致用戶程序的錯誤運行,甚至更嚴重的情況是造成整個系統(tǒng)的崩潰。正是指針的使用特殊性,C/C+的語法中對指針的類型檢測進行了嚴格的限制。不同類型的指針不能參與運算、賦值等。2022/9/13P35靈活和限制: (cont.)C/C+語言的靈活性可以使程序員編制任何類型的程序。但是靈活也會使程

22、序員為此付出代價:由于C/C+語法定義和檢測較松,程序設計自由度大,使得對程序員的要求較高,Pascal和其它高級語言都通過嚴格的語法檢查來保證程序的正確性,而C /C+則放寬了語法檢查(典型的例子不對數(shù)組下標的越界進行語法檢查),這就要求程序員要熟練掌握C /C+的語法規(guī)則,仔細檢查所編程序,確保其正確無誤,而不要過分地依賴C /C+編譯器的查錯功能。2022/9/13P36結構化編程 VS 面向對象編程過程性語言和面向對象的語言C語言誕生初期,結構化程序設計盛行,精巧設計的C語言滿足用戶高效執(zhí)行、低成本系統(tǒng)移植等需求。但隨著開發(fā)規(guī)模的擴大,其不能很好描述現(xiàn)實世界中對象的缺點造成了諸如代碼維

23、護、重用甚至代碼設計等困難C+應運而生恰恰是順應大規(guī)模應用的開發(fā),用類(class)類型和對象來對應現(xiàn)實世界中的物體,更好地設計描述現(xiàn)實世界的應用程序,方便了代碼重用和代碼維護2022/9/13P371.3 C/C+語言程序書寫格式和結構特點 1.3.1 C/C+語言程序的書寫格式2022/9/13P38【例】 /example.cpp#include int max(int,int); int main(void) int a,b,c; cinab;/從標準輸入設備讀取數(shù)據(jù)存進變量a和b c=max(a,b); cout“max =”c=y) z=x; else z=y; return z;

24、 語句結束符注釋符編譯預處理指令函數(shù)原型說明語句定義變量賦值語句,函數(shù)調用函數(shù)定義函數(shù)定義程序執(zhí)行出口main函數(shù)是整個程序執(zhí)行入口點標準輸出流類的對象 cout標準輸入流類的對象 cin、是流插入操作符2022/9/13P39 #include /預編譯指令不是語句,沒有分號 int max(int,int) ;/語句以分號結尾,如函數(shù)原型語句 int main(void) int a,b,c; std:cinab; /std為名字空間,在iostream中定義 c=max(a,b); std:cout“max =”c=y) z =x; else z =y; return z; 標準C+誕生

25、前的用法: #include 標準C+: #include 放進名字空間std中2022/9/13P40可以看出,C/C+語言程序有以下若干格式特點 :C/C+語言程序習慣上使用小寫英文字母。C/C+語言程序也是由一個個的語句組成。C/C+語言程序使用分號;作為語句的終止符或分隔符。一般情況下,每個語句占用一個書寫行的位置。C/C+語言程序中用大括弧對 ,表示程序的結構層次范圍。C/C+語言程序中,為了增強可讀性,可以使用適量的空格和空行。2022/9/13P41標準C+庫中標識符從屬于std名字空間,注意特殊的訪問格式#include using std:cout; using std:ci

26、n; using std:endl; int main() / cout number1 number2; / 從鍵盤讀入2個數(shù)據(jù) / return 0; #include using namespace std; int main() / cout number1 number2; /讀入數(shù)據(jù) / return 0; 2022/9/13P421.3.2 C/C+語言程序的結構特點例1.2 C/C+語言程序結構特點(下面代碼使用了標準C的輸入輸出庫函數(shù)) #include /標準C的輸入輸出頭文件stdio.h int max(int,int) ; int main(void) int a,b

27、,c; scanf(“%d %d”,&a,&b); /scanf庫函數(shù)在stdio.h中定義,與cin等價 c=max(a,b); printf(“max =%dn”,c); / printf庫函數(shù)在頭文件stdio.h中定義,與cout等價 return 0; int max(int x,int y) int z; if(x=y) z =x;else z =y; return z; 函數(shù)定義頭函數(shù)定義體2022/9/13P43從上面程序可看出:(1)C/C+語言程序的執(zhí)行是從主函數(shù)開始的,主函數(shù)中的所有語句執(zhí)行完畢,則程序執(zhí)行結束。(2)main函數(shù)之外的其它函數(shù)都是在執(zhí)行main函數(shù)時,通

28、過嵌套調用得以執(zhí)行的,在程序中除了可以調用用戶自己編制的函數(shù)外,還可以調用由系統(tǒng)提供的標準庫函數(shù),如scanf、printf 。2022/9/13P44C/C+程序基本結構小結:(1) C/C+程序的組成: 一個C/C+程序可以由若干個函數(shù)定義構成,其中必須有且只能有一個以main命名的主函數(shù)。(2) 函數(shù)定義的組成: 函數(shù)定義是一個獨立的程序塊,相互不能嵌套。 一個函數(shù)定義由兩個部分組成:函數(shù)頭和函數(shù)體。查看案例2022/9/13P45(3) C/C+標準函數(shù) C/C+函數(shù)分為兩類: 標準函數(shù) 用戶定義函數(shù) 用戶定義函數(shù)是由程序員在自己的源程序中編寫的函數(shù)。 標準函數(shù)是由C/C+編譯程序提供

29、的一些通用函數(shù),C/C+標準函數(shù)又稱為C/C+庫函數(shù)。 用戶程序需要使用標準函數(shù)時,需要使用前用 # include包含該標準函數(shù)所需的系統(tǒng)頭文件即可。2022/9/13P461.4 C/C+語言的基本語法單位 1.4.1 標識符 1.4.2 關鍵字 1.4.3 分隔符 1.4.4 常量2022/9/13P471.4.1 標識符1.標識符:在高級語言程序中由用戶(即程序員)或編譯程序(有時稱系統(tǒng))定義的常量、變量、數(shù)據(jù)類型、函數(shù)、過程和程序等的名字。2.標識符的組成規(guī)則 :由字母、下劃線和數(shù)字(09)組成,其第一個字符必須是字母或下劃線。 字母要區(qū)分大小寫;下劃線_被作為一個字符看待。3. 標

30、識符的有效長度:能夠被編譯程序識別的標識符的字符的數(shù)目稱為標識符的有效長度。標準C規(guī)定標識符的有效長度為31。注意:標識符不能與關鍵字同名。2022/9/13P481.4.2 關鍵字 關鍵字由固定的小寫字母組成,是系統(tǒng)預定的名字,用于表示C/C+語言的語句結構、數(shù)據(jù)類型、存儲類型或運算符。關鍵字又稱為保留字 。標準C定義的32個關鍵字如下(C+在C基礎上擴充到63個):auto break case char constcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeo

31、fstaticstructswitchtypedefunionunsignedvoidvolatilewhile2022/9/13P491.4.3 分隔符 分隔符:包括空格符、制表符、換行符、換頁符及注釋符。程序中兩個相鄰的標識符、關鍵字和常量之間必須用分隔符分開(通常用空格符,逗號符等)。1.4.4 常量(文字量) 文字量: 程序中其數(shù)值不發(fā)生變化的量.C/C+語言中的常量有三類:數(shù),字符和字符串 。此外,C/C+語言中還經(jīng)常使用兩種表現(xiàn)形式不同的常量:換碼序列(又叫轉義序列符)和符號常量.。常量的類型是由常量的文字自身隱含說明的 。2022/9/13P501.5 簡單的輸入與輸出 一個完整

32、的計算機程序,常常要求具備輸入輸出功能.C/C+語言本身沒有配備完成輸入輸出的語句.C/C+語言程序的輸入輸出功能是通過調用系統(tǒng)提供的標準函數(shù)實現(xiàn)的 。2022/9/13P511.5.1 格式化輸入輸出函數(shù) 格式化輸入輸出函數(shù)是按指定的格式完成輸入輸出過程. 1. 輸出函數(shù)printf( ) 輸出函數(shù)printf( )的一般使用形式如下: printf(“輸出格式”,輸出項系列);調用前必須在程序開頭加上頭文件包含include 2022/9/13P52(1)printf( )函數(shù)的功能是按照給定的輸出格式、把輸出項輸出到標準輸出設備,輸出格式中用%打頭后面跟有一個字母的部分稱為轉換說明符。

33、%d、%u 十進制整數(shù) %x 十六進制整數(shù) %o八進制整數(shù) %f 、%e、%g 浮點小數(shù)(實數(shù)) %c 單一字符 %s 字符串例:printf(“v=%fn”,v); %f可以理解為:占位符2022/9/13P53(2)輸出格式中除轉換說明符以外的其它字符都原封不動地輸出到標準輸出設備顯示器上。其中以打頭后跟一個字母或數(shù)字的部分稱為換碼序列。它們的作用是輸出控制符號和特殊字符,如上述輸出格式中的n是回車換行的控制代碼 。 有關換碼系列的內容將在在第二章詳細介紹。2022/9/13P54(3)使用printf()函數(shù)可以有一個以上的輸出項,這時輸出格式中的轉換說明符與輸出項的個數(shù)必須相同。它們按

34、各自的先后順序一一對應。如下所示:printf(. %d %x %f, a, b, c);printf(. %d %x %f, a, b, c);2022/9/13P552輸入函數(shù)scanf( )輸入函數(shù)scanf( )的一般使用形式如下: scanf(輸入格式,輸入項系列);調用前包含頭文件stdio.h行緩沖輸入,需要敲入回車鍵。(1)輸入格式串中一般只使用轉換說明符,否則容易出錯。(2)輸入項必須是地址量,(變量名前加上&表示變量的地址)。2022/9/13P56(3) 輸入分隔符的指定。在雙引號包圍的輸入格式中,兩個轉換說明符%之間出現(xiàn)的字符就是他們對應輸入項之間的分隔符。 如scan

35、f(%d:%d,&a,&b);這時輸入的數(shù)據(jù)之間必須有分隔符,例如輸入3和5,則實際輸入時一定要輸入3:5(4) 輸入長度的給定 如 scanf(%4d%2d%2d”,&a,&b,&c); 假設一個輸入序列為:19900125 則a=1990,b= 1,c=25(5) 輸入數(shù)據(jù)時,遇到下列情況時該數(shù)據(jù)認為結束 a.遇空格、回車或者tab鍵 b.遇寬度結束,如“%3d”只取輸入項三列 c.遇非法輸入結束。2022/9/13P571.5.2 字符輸入輸出函數(shù) 字符輸入輸出函數(shù)是以一個字節(jié)的字符代碼為單位完成輸入輸出過程的。字符輸入函數(shù)getchar( )包含頭文件stdio.h。行緩沖輸入。 ge

36、tchar( )的功能是從鍵盤讀入一個符號。在程序中必須用另一個變量接收讀取的符號對應的代碼值,如下所示: c=getchar( ); getchar(c);/2022/9/13P582. 字符輸出函數(shù)putchar( )包含頭文件stdio.hputchar的功能是輸出一個字符到標準輸出設備(如:顯示器)顯示,它的常用調用格式如下: putchar(c);或putchar(c); 它把變量c的值作為ASCII編碼值,把與該編碼值對應的字符符號輸出到標準輸出設備顯示;后者直接輸出小寫字母c 2022/9/13P591.5.3 字符串輸入輸出函數(shù)1、gets() 包含stdio.h頭文件 調用格

37、式: char str33; gets(str); 功能:實現(xiàn)從標準輸入設備中讀入一個以回車換行符為結尾的字符串,將回車換行符n轉換成空字符0,送入字符數(shù)組str中。 說明:一種行緩沖輸入,用戶敲入回車,函數(shù)才開始提取數(shù)據(jù)。提取的數(shù)據(jù)被當做字符串。2022/9/13P602、puts() 包含stdio.h頭文件 調用格式: 1、puts(“Hello!”);注:輸出完 Hello!后會自動回車到下一行 2、char string100 =“This is an example of out-putting string !”; puts(string);功能:實現(xiàn)字符串在外設上輸出顯示。把str數(shù)組中的字符串輸出到標準輸出設備上,并將隱含的0 轉換為回車換行操作。2022/9/13P611.5.4 流輸入輸出控制一、標準流 標準輸入輸出流控制是C+中引入的,在這里我們只作一個簡單的介紹。在C中標準輸入設備是鍵盤,設備名為 stdin,標準輸出設備為顯示器,設備名為stdout;在C+中同樣的輸入輸出設備,其設備名對應為cin與cout,它們實際上是C+中 類istream和類ostream的對象。 I / O流是實際輸入輸出的一系列字

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論