C語言程序設(shè)計(jì)基本方法和技巧大學(xué)計(jì)算機(jī)公共基礎(chǔ)課_第1頁
C語言程序設(shè)計(jì)基本方法和技巧大學(xué)計(jì)算機(jī)公共基礎(chǔ)課_第2頁
C語言程序設(shè)計(jì)基本方法和技巧大學(xué)計(jì)算機(jī)公共基礎(chǔ)課_第3頁
C語言程序設(shè)計(jì)基本方法和技巧大學(xué)計(jì)算機(jī)公共基礎(chǔ)課_第4頁
C語言程序設(shè)計(jì)基本方法和技巧大學(xué)計(jì)算機(jī)公共基礎(chǔ)課_第5頁
已閱讀5頁,還剩597頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、C語言程序設(shè)計(jì)基本方法和技巧大學(xué)計(jì)算機(jī)公共基礎(chǔ)課2授課計(jì)劃周次理論內(nèi)容實(shí)驗(yàn)內(nèi)容1第1講 C語言概述與理論課對應(yīng)2第2講 C語言快速入門與理論課對應(yīng)3第3講 基本數(shù)據(jù)類型與理論課對應(yīng)4第4講 輸入輸出和庫函數(shù)與理論課對應(yīng)5第5講 運(yùn)算符和表達(dá)式與理論課對應(yīng)6第6講 語句和算法與理論課對應(yīng)7第7講 選擇結(jié)構(gòu)與理論課對應(yīng)8第8講 循環(huán)結(jié)構(gòu)與理論課對應(yīng)9第9講 函數(shù)與理論課對應(yīng)10第10講 作用范圍和存儲類別與理論課對應(yīng)11第11講 數(shù)組與理論課對應(yīng)12第11講 數(shù)組與理論課對應(yīng)13第12講 指針與理論課對應(yīng)14第13講 字符串與理論課對應(yīng)15第14講 結(jié)構(gòu)體與理論課對應(yīng)16第15講 編譯預(yù)處理與理論

2、課對應(yīng)17第16講 文件與理論課對應(yīng)18*第17講 高級數(shù)據(jù)結(jié)構(gòu)(選講)與理論課對應(yīng)C語言程序設(shè)計(jì)第一講 C語言概述C 語言程序設(shè)計(jì)4第一講 C語言概述預(yù)備知識計(jì)算機(jī)組成和工作原理計(jì)算機(jī)語言和程序C語言的簡史為什么學(xué)習(xí)和使用C語言C語言程序的開發(fā)過程C語言編程環(huán)境C語言編程實(shí)驗(yàn)環(huán)境C語言程序設(shè)計(jì)5計(jì)算機(jī)計(jì)算機(jī)(Computer)能進(jìn)行計(jì)算和邏輯判斷的設(shè)備在一組指令(instructions)程序(programs)的控制下處理數(shù)據(jù)硬件(Hardware)組成計(jì)算機(jī)的各種物理部件鍵盤、鼠標(biāo)、顯示器、內(nèi)存、硬盤、光驅(qū)等等軟件(Software)計(jì)算機(jī)中運(yùn)行的程序和數(shù)據(jù)C語言概述6計(jì)算機(jī)的組成計(jì)算機(jī)

3、包括六大部件輸入單元(Input unit)從輸入設(shè)備(鍵盤、鼠標(biāo))獲得數(shù)據(jù)輸出單元(Output unit)把數(shù)據(jù)輸出到輸出設(shè)備(顯示器、打印機(jī)等)內(nèi)存(Memory unit)臨時(shí)存儲正在處理的數(shù)據(jù)和運(yùn)行的程序可以快速地訪問容量不大C語言概述7計(jì)算機(jī)的組成中央處理單元(Central processing unit, CPU)算術(shù)邏輯單元(Arithmetic and logic unit, ALU)進(jìn)行算術(shù)運(yùn)算和邏輯判斷控制器(Control unit)管理和協(xié)調(diào)計(jì)算機(jī)的其它部件輔助存儲器(Secondary storage unit)保存需長期存儲的數(shù)據(jù)和非活動的程序保存時(shí)間長價(jià)格便宜

4、、容量大例如硬盤、光盤、磁帶C語言概述8計(jì)算機(jī)的工作原理六大部件緊密協(xié)作C語言概述9計(jì)算機(jī)的工作原理CPU負(fù)責(zé)執(zhí)行程序從內(nèi)存中讀取一條指令執(zhí)行該指令從內(nèi)存中讀取下一條指令并執(zhí)行一個(gè)主頻為1GHz的CPU可以在一秒鐘內(nèi)進(jìn)行大約一億次這樣的操作 CPU有自己的工作區(qū):包括若干個(gè)寄存器(Registers)CPU只能理解有限的指令(CPU的指令集)指令能夠完成的任務(wù)是具體的例如,把一個(gè)數(shù)從內(nèi)存移動到某一個(gè)寄存器C語言概述10計(jì)算機(jī)程序和語言存儲在計(jì)算機(jī)中的一切內(nèi)容都是二進(jìn)制的數(shù)字形式數(shù)據(jù):數(shù)、字符、圖片、聲音、動畫等等指令計(jì)算機(jī)程序確切告訴計(jì)算機(jī)如何完成某項(xiàng)任務(wù)的指令序列就是一套程序計(jì)算機(jī)語言用來編

5、寫程序C語言概述#include #include void main() float a,b,c,p,disc,q,x1,x2; scanf(%f%f%f,&a,&b,&c); p=-b/(2*a); disc=b*b-4*a*c; q=sqrt(disc)/(2*a); x1=p+q; x2=p-q; printf(x1=%f,x2=%f,x1,x2);00110011001101100110011001101111機(jī)器語言數(shù)字形式的指令碼就是機(jī)器語言(Machine language)用機(jī)器語言編寫的程序能夠被計(jì)算機(jī)直接理解和執(zhí)行但是,編寫程序非常費(fèi)力例如,編寫程序完成兩個(gè)數(shù)相加的任務(wù)需

6、要以下幾步把地址為2000的內(nèi)存單元中的數(shù)復(fù)制到寄存器1;把地址為2004的內(nèi)存單元中的數(shù)復(fù)制到寄存器2;把寄存器2中的數(shù)與寄存器1中的數(shù)相加,結(jié)果保留在寄存器1中;把寄存器1中的數(shù)復(fù)制到地址為2008的內(nèi)存單元中。C語言概述00110011001101112匯編語言符號化的指令碼就是匯編語言(Assembly language)例如,完成兩個(gè)數(shù)相加的匯編語言程序匯編語言程序必須被翻譯成機(jī)器語言程序才能被執(zhí)行匯編程序(Assembler)充當(dāng)“翻譯”C語言概述ldreg n1, r1把變量n1的值復(fù)制到寄存器1(r1);ldreg n2, r2把變量n2的值復(fù)制到寄存器2(r2);add r1

7、, r2把r2中的數(shù)與r1中的數(shù)相加,結(jié)果保留在r1中;store r1, sum把r1中的數(shù)復(fù)制到變量sum。13高級語言高級語言(High-level language)使用數(shù)學(xué)符號和類似英語的單詞例如,完成兩個(gè)數(shù)相加的C語言程序從多方面提高了編程效率不必考慮CPU的指令集不必考慮CPU實(shí)現(xiàn)特定任務(wù)的精確步驟采用接近人類思考問題的方式去書寫程序高級語言程序必須被編譯程序(Compiler)翻譯成機(jī)器語言程序才能被執(zhí)行C語言概述sum = n1 + n2;14C語言的簡史C語言的起源美國貝爾實(shí)驗(yàn)室的Dennis Ritchie在1972年開發(fā)的用于設(shè)計(jì)UNIX操作系統(tǒng)其前身是B語言(Ken

8、Thompson于1970年為第一個(gè)UNIX系統(tǒng)開發(fā)的語言)C語言的標(biāo)準(zhǔn)美國國家標(biāo)準(zhǔn)化組織(ANSI)于1983年成立了一個(gè)委員會(X3J11),以確定C語言的標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)(ANSI C)于1989年被正式采用,即C89。最新的標(biāo)準(zhǔn)是C99標(biāo)準(zhǔn)。目前,大多數(shù)C語言編譯器沒有完全實(shí)現(xiàn)C99的所有修改。C語言概述15為什么學(xué)習(xí)和使用C語言C語言的特點(diǎn)C語言是一種強(qiáng)大而靈活的語言,可以用來編寫任意復(fù)雜的程序。C語言簡潔、緊湊,使用方便、靈活。C語言程序效率高、運(yùn)行速度快。C語言是可移植的。C語言很適合結(jié)構(gòu)化程序設(shè)計(jì),因而要求用戶以功能模塊的方式來思考問題。C語言具有自我擴(kuò)展能力。C語言概述16為什么

9、學(xué)習(xí)和使用C語言C與C+(C加加,see-plus-plus)貝爾實(shí)驗(yàn)室于二十世紀(jì)八十年代在C語言的基礎(chǔ)上開發(fā)的。C+是C語言的超集,包含了C語言的所有內(nèi)容,同時(shí)增加了面向?qū)ο缶幊谭矫娴膬?nèi)容。C與Java(爪哇)Sun公司于1995年發(fā)布的面向?qū)ο缶幊陶Z言。Java也是基于C語言的。C與C#(see-sharp)微軟在2000年6月與.NET平臺一同推出。C#也是從C語言派生的一種面向?qū)ο笳Z言。C語言概述17C語言程序的開發(fā)過程一般分成五個(gè)步驟定義程序目標(biāo)設(shè)計(jì)程序編寫代碼編譯運(yùn)行、測試和調(diào)試程序C語言概述18C語言程序的開發(fā)過程定義程序目標(biāo)在開始解決問題之前,程序的開發(fā)人員必須徹底了解問題的是

10、什么,對即將要創(chuàng)建的程序要做的事情有個(gè)清晰的想法。這需要仔細(xì)考慮以下問題程序需要什么信息程序需要執(zhí)行哪些計(jì)算和操作程序應(yīng)該報(bào)告什么信息例如,計(jì)算任意一個(gè)圓環(huán)的面積提出問題,明確目標(biāo)圓環(huán)是什么?如何計(jì)算?計(jì)算精度?C語言概述19C語言程序的開發(fā)過程設(shè)計(jì)程序決定程序如何去解決問題。需要考慮如何給程序提供必要的數(shù)據(jù)程序中如何表示數(shù)據(jù)用什么方法來處理數(shù)據(jù)程序如何組織程序怎樣報(bào)告結(jié)果完成這個(gè)程序需要多長時(shí)間應(yīng)該用一般的概念考慮設(shè)計(jì)中的問題,而不是考慮具體的代碼。 C語言概述20C語言程序的開發(fā)過程編寫代碼編寫代碼來實(shí)現(xiàn)前面的設(shè)計(jì),即用某一門語言來表示程序設(shè)計(jì)。需要開發(fā)人員熟練掌握該語言的知識??梢栽诓莞?/p>

11、紙上勾畫自己的想法或書寫代碼,但最終必須將代碼輸入計(jì)算機(jī)。輸入代碼所采用的機(jī)制則取決于具體的編程環(huán)境。一般來說,需要使用文本編輯器(例如Windows的記事本程序)來創(chuàng)建一種文件,稱為源文件源文件包含程序設(shè)計(jì)的C語言表示形式(稱為源程序或源代碼)C語言概述21C語言程序的開發(fā)過程編譯把C語言源程序轉(zhuǎn)換成機(jī)器語言表示的程序。這種程序可以直接被計(jì)算機(jī)理解和執(zhí)行,所以稱之為可執(zhí)行程序,放在可執(zhí)行文件中。編譯的具體細(xì)節(jié)取決于使用的編程環(huán)境。C語言分兩步完成這一工作:編譯和鏈接。編譯器將源代碼轉(zhuǎn)換為目標(biāo)代碼,并存在目標(biāo)文件中。鏈接器將目標(biāo)代碼與其他代碼結(jié)合起來生成可執(zhí)行文件。這種把編譯和鏈接分開來做的方

12、法便于程序的模塊化??梢苑謩e編譯程序的各個(gè)模塊,然后用鏈接器把編譯過的模塊結(jié)合起來。這樣,如果需要改變一個(gè)模塊,則不需要重新編譯所有其他模塊。C語言概述22C語言程序的開發(fā)過程運(yùn)行、測試和調(diào)試程序運(yùn)行包含可執(zhí)行程序的文件,觀察運(yùn)行的結(jié)果。在不同的系統(tǒng)中運(yùn)行程序的方式可能不同。例如,Windows的控制臺和資源管理器。應(yīng)該對程序進(jìn)行仔細(xì)的檢查,看程序是否在做該做的事。比較好的做法是為驗(yàn)證程序的正確性設(shè)計(jì)一個(gè)測試計(jì)劃。越早做越好,因?yàn)樗兄诶砬宄绦騿T的思路。程序中的錯(cuò)誤被稱為bug,調(diào)試(Debug)就是要發(fā)現(xiàn)并修正錯(cuò)誤。C語言概述23C語言的編程環(huán)境開發(fā)程序的具體操作取決于使用的編程環(huán)境因?yàn)镃

13、語言是可移植的,所以它在許多環(huán)境中都是可用的。例如UNIX、Linux、Windows和MS-DOS。C語言編程環(huán)境包括一系列程序。編輯器編譯器鏈接器運(yùn)行和調(diào)試環(huán)境C語言概述Hello.cHello.objHello.exe編輯器源代碼編譯器目標(biāo)代碼鏈接器可執(zhí)行代碼啟動代碼庫代碼執(zhí)行如果有錯(cuò)如果有錯(cuò)如果有錯(cuò)24C語言的編程環(huán)境編輯器使用一個(gè)文本編輯器程序輸入源代碼,并將代碼保存在源文件中。一般,C程序的源文件名稱的擴(kuò)展名是.c例如和。該名稱應(yīng)該遵循特定的操作系統(tǒng)的命名規(guī)則。例如,MS-DOS要求基本名包含的字符數(shù)不能大于8,所以不是合法的DOS文件名。Windows允許長文件名,所以是合法的W

14、indows文件名。C語言概述Hello.c編輯器源代碼25C語言的編程環(huán)境編譯器編譯器接收源文件,生成目標(biāo)文件,擴(kuò)展名為.obj或.o。編譯器還會檢查輸入的程序是否是有效的C語言程序。如果編譯器發(fā)現(xiàn)錯(cuò)誤,就會報(bào)告出錯(cuò),且不能生成可執(zhí)行程序。這時(shí)就必須修改錯(cuò)誤,然后再編譯。顯然,為了能迅速找到錯(cuò)誤,理解特定編譯器的報(bào)錯(cuò)信息是一項(xiàng)有用的技能。C語言概述Hello.cHello.obj編輯器源代碼編譯器目標(biāo)代碼如果有錯(cuò)26C語言的編程環(huán)境鏈接器目標(biāo)代碼雖然已經(jīng)是機(jī)器代碼,但還不能被執(zhí)行。缺少下面兩個(gè)東西啟動代碼:相當(dāng)于程序和操作系統(tǒng)之間的接口。 庫函數(shù)的代碼:庫文件中包含許多函數(shù)的目標(biāo)代碼。 鏈接

15、器的作用就是將這三個(gè)元素(目標(biāo)代碼、啟動代碼和庫代碼)結(jié)合起來,并將它們放在一個(gè)文件中,即可執(zhí)行文件,擴(kuò)展名為.exe或.out。C語言概述Hello.objHello.exe目標(biāo)代碼鏈接器可執(zhí)行代碼啟動代碼庫代碼如果有錯(cuò)27Windows的C語言編程環(huán)境Windows的C語言編程環(huán)境Windows并不包含C編譯器,所以需要獲得并安裝一個(gè)C編譯器。 許多現(xiàn)代的編譯器都是集成開發(fā)環(huán)境(或叫IDE)的一部分。包括一個(gè)編輯器、編譯器、鏈接器和包括一個(gè)符號調(diào)試程序在內(nèi)的運(yùn)行支持系統(tǒng)。許多軟件廠商都提供了基于Windows的集成開發(fā)環(huán)境Microsoft公司的Visual C/C+Borland公司的C

16、/C+ BuilderMetrowerks公司的Code Warrior目前,大多數(shù)IDE把C和C+編譯器結(jié)合在一起。C語言概述28DOS的C語言編程環(huán)境DOS的C語言編程環(huán)境基于DOS的IDE Borland公司的Turbo CBorland公司的Borland C+許多Windows上的IDE也提供了在DOS命令行環(huán)境中編程的命令行工具。C語言概述29C語言編程實(shí)驗(yàn)環(huán)境簡介上機(jī)實(shí)驗(yàn)環(huán)境簡介舉例演示的基本操作啟動創(chuàng)建源文件構(gòu)建工程(編譯、鏈接)運(yùn)行程序C語言概述30小結(jié)C是一種通用的程序設(shè)計(jì)語言,具有許多突出的優(yōu)點(diǎn)。程序設(shè)計(jì)的初學(xué)者應(yīng)該嚴(yán)格按照C語言程序的開發(fā)過程進(jìn)行訓(xùn)練,以便盡快掌握程序設(shè)

17、計(jì)的基本原則。C是一種需要編譯的高級語言。進(jìn)行C語言編程的具體操作依賴于所使用的編程環(huán)境。程序設(shè)計(jì)是一門實(shí)踐性很強(qiáng)的課程,在學(xué)習(xí)過程中必須十分重視實(shí)驗(yàn)環(huán)節(jié)。C語言概述第二講 C語言快速入門32第二講 C語言快速入門C語言程序的基本結(jié)構(gòu)C語言的字符集和關(guān)鍵字編程環(huán)境C語言程序設(shè)計(jì)33C語言程序的基本結(jié)構(gòu)一個(gè)簡單的C語言程序問題:在屏幕上顯示一行文字:“Hello World!”源程序運(yùn)行結(jié)果C語言快速入門/* 在屏幕上顯示Hello World! */#include void main() /* 定義主函數(shù) */ printf(Hello World!n); Hello World!34C語言

18、程序的基本結(jié)構(gòu)一個(gè)簡單的C語言程序程序結(jié)構(gòu)分析C語言快速入門/* 在屏幕上顯示Hello World! */#include void main() /* 定義主函數(shù) */ printf(Hello World!n); 注釋部分以增加程序的可讀性。不被執(zhí)行。35C語言程序的基本結(jié)構(gòu)一個(gè)簡單的C語言程序程序結(jié)構(gòu)分析C語言快速入門/* 在屏幕上顯示Hello World! */#include void main() /* 定義主函數(shù) */ printf(Hello World!n); 預(yù)處理命令 程序中包含某一文件內(nèi)容。 “stdio.h”為標(biāo)準(zhǔn)輸入輸出函數(shù)頭文件名。36C語言程序的基本結(jié)構(gòu)一個(gè)

19、簡單的C語言程序程序結(jié)構(gòu)分析C語言快速入門/* 在屏幕上顯示Hello World! */#include void main() /* 定義主函數(shù) */ printf(Hello World!n); 函數(shù) C程序由函數(shù)組成。一個(gè)C程序有且僅有一個(gè)主函數(shù)(main函數(shù))。37C語言程序的基本結(jié)構(gòu)一個(gè)簡單的C語言程序程序結(jié)構(gòu)分析C語言快速入門/* 在屏幕上顯示Hello World! */#include void main() /* 定義主函數(shù) */ printf(Hello World!n); 函數(shù)說明 說明函數(shù)類型、函數(shù)名和函數(shù)參數(shù)。38C語言程序的基本結(jié)構(gòu)一個(gè)簡單的C語言程序程序結(jié)構(gòu)分析

20、C語言快速入門/* 在屏幕上顯示Hello World! */#include void main() /* 定義主函數(shù) */ printf(Hello World!n); 函數(shù)體 包括變量說明和語句執(zhí)行部分。39C語言程序的基本結(jié)構(gòu)一個(gè)簡單的C語言程序程序結(jié)構(gòu)分析C語言快速入門/* 在屏幕上顯示Hello World! */#include void main() /* 定義主函數(shù) */ printf(Hello World!n); 函數(shù)調(diào)用語句 格式輸出函數(shù)printf( )。 輸出“Hello world!”。Hello World!40C語言程序的基本結(jié)構(gòu)含有算術(shù)運(yùn)算的C語言程序問題:

21、求方程 的根(設(shè) )。源程序C語言快速入門#include #include void main() float a,b,c,p,disc,q,x1,x2; scanf(%f%f%f,&a,&b,&c); p=-b/(2*a); disc=b*b-4*a*c; q=sqrt(disc)/(2*a); x1=p+q; x2=p-q; printf(x1=%f,x2=%f,x1,x2);41C語言程序的基本結(jié)構(gòu)含有算術(shù)運(yùn)算的C語言程序程序結(jié)構(gòu)分析C語言快速入門#include #include void main() float a,b,c,p,disc,q,x1,x2; scanf(%f%f%f

22、,&a,&b,&c); p=-b/(2*a); disc=b*b-4*a*c; q=sqrt(disc)/(2*a); x1=p+q; x2=p-q; printf(x1=%f,x2=%f,x1,x2); 預(yù)處理命令42C語言程序的基本結(jié)構(gòu)含有算術(shù)運(yùn)算的C語言程序程序結(jié)構(gòu)分析C語言快速入門#include #include void main() float a,b,c,p,disc,q,x1,x2; scanf(%f%f%f,&a,&b,&c); p=-b/(2*a); disc=b*b-4*a*c; q=sqrt(disc)/(2*a); x1=p+q; x2=p-q; printf(x1

23、=%f,x2=%f,x1,x2); 函數(shù) 一個(gè)主函數(shù)(main函數(shù))。43C語言程序的基本結(jié)構(gòu)含有算術(shù)運(yùn)算的C語言程序程序結(jié)構(gòu)分析C語言快速入門#include #include void main() float a,b,c,p,disc,q,x1,x2; scanf(%f%f%f,&a,&b,&c); p=-b/(2*a); disc=b*b-4*a*c; q=sqrt(disc)/(2*a); x1=p+q; x2=p-q; printf(x1=%f,x2=%f,x1,x2); 函數(shù)說明部分44C語言程序的基本結(jié)構(gòu)含有算術(shù)運(yùn)算的C語言程序程序結(jié)構(gòu)分析C語言快速入門#include #in

24、clude void main() float a,b,c,p,disc,q,x1,x2; scanf(%f%f%f,&a,&b,&c); p=-b/(2*a); disc=b*b-4*a*c; q=sqrt(disc)/(2*a); x1=p+q; x2=p-q; printf(x1=%f,x2=%f,x1,x2); 函數(shù)體 變量說明部分 執(zhí)行部分45C語言程序的基本結(jié)構(gòu)含有算術(shù)運(yùn)算的C語言程序程序結(jié)構(gòu)分析C語言快速入門#include #include void main() float a,b,c,p,disc,q,x1,x2; scanf(%f%f%f,&a,&b,&c); p=-b/

25、(2*a); disc=b*b-4*a*c; q=sqrt(disc)/(2*a); x1=p+q; x2=p-q; printf(x1=%f,x2=%f,x1,x2); 運(yùn)行程序 鍵盤輸入a、b、c的值; 屏幕顯示x1和x2的值。1 0 -446C語言程序的基本結(jié)構(gòu)包含多個(gè)函數(shù)的C語言程序問題:求|a|+|b|的值。源程序C語言快速入門#includefloat absv(float x) float y; y=x=0?x:-x; return y;void main() float a,b,c; printf(input a,b:n); scanf(%f%f,&a,&b); c=absv(

26、a)+absv(b); printf(|a|+|b|=%fn,c);47C語言程序的基本結(jié)構(gòu)包含多個(gè)函數(shù)的C語言程序程序結(jié)構(gòu)分析C語言快速入門#includefloat absv(float x) float y; y=x=0?x:-x; return y;void main() float a,b,c; printf(input a,b:n); scanf(%f%f,&a,&b); c=absv(a)+absv(b); printf(|a|+|b|=%fn,c); 程序由兩個(gè)函數(shù)組成: absv函數(shù) main函數(shù)48C語言程序的基本結(jié)構(gòu)包含多個(gè)函數(shù)的C語言程序程序結(jié)構(gòu)分析C語言快速入門#in

27、cludefloat absv(float x) float y; y=x=0?x:-x; return y;void main() float a,b,c; printf(input a,b:n); scanf(%f%f,&a,&b); c=absv(a)+absv(b); printf(|a|+|b|=%fn,c); 調(diào)用absv函數(shù)求絕對值。49C語言程序的基本結(jié)構(gòu)包含多個(gè)函數(shù)的C語言程序程序結(jié)構(gòu)分析C語言快速入門#includefloat absv(float x) float y; y=x=0?x:-x; return y;void main() float a,b,c; print

28、f(input a,b:n); scanf(%f%f,&a,&b); c=absv(a)+absv(b); printf(|a|+|b|=%fn,c); 運(yùn)行程序 屏幕顯示提示信息; 鍵盤輸入a、b的值; 屏幕顯示a、b絕對值之和。input a,b:-5 1350C語言程序的基本結(jié)構(gòu)C語言程序的基本結(jié)構(gòu)小結(jié)C語言快速入門一個(gè)C程序由一個(gè)或多個(gè)函數(shù)組成,但有且僅有一個(gè)主函數(shù)(main函數(shù));main函數(shù)是程序執(zhí)行的入口,可置于程序的任何位置。程序中可以有預(yù)處理命令(如:include 命令)。預(yù)處理命令通常放在程序的最前面。每個(gè)語句以分號結(jié)尾;預(yù)處理命令、函數(shù)頭和花括號“”之后不能加分號。 函

29、數(shù)包括函數(shù)的說明部分和函數(shù)體;函數(shù)體包括變量說明部分和執(zhí)行部分;函數(shù)體由一對花括號“ ”括起來。 括在/*/內(nèi)的文本為注釋。一行可以寫幾個(gè)語句,一個(gè)語句也可以寫在多行上。程序區(qū)分大小寫字母。一般變量、語句等用小寫字母書寫;符號常量、宏名等用大寫字母書寫。標(biāo)識符和保留字之間須加空格以示分隔。51C語言的字符集C語言源程序中使用的字符來自C語言的字符集。字符集(Character set)來自ASCII表52個(gè)大小寫字母(Letters)A B C D E F G H I J K L M N O P Q R S T U V W X Y Za b c d e f g h i j k l m n o

30、p q r s t u v w x y z10個(gè)數(shù)字(Digits)0 1 2 3 4 5 6 7 8 9空白符(Blanks)空格符、制表符、回車符、換行符圖形符號(Graphic characters)! # % & * ( _ ) - + = | ; : , . / ?C語言快速入門52C語言的關(guān)鍵字關(guān)鍵字(Keywords)是C語言中的詞匯。也稱為保留字(Reserved words)類型說明int、long、short、float、double、char、unsigned、signed、const、void、volatile、enum 、struct、union語句定義if、else

31、、goto、switch、case、do、while、for、continue、break、return、default、typedef存儲類別說明auto、register、extern、static長度運(yùn)算符sizeofC語言快速入門53C語言的標(biāo)識符標(biāo)識符(Identifiers)是程序中引用對象的名稱。用來標(biāo)識變量、符號常量、數(shù)組、函數(shù)、結(jié)構(gòu)體、共用體、自定義類型等。命名規(guī)則只能包括大小寫字母、數(shù)字和下劃線;首字符必須是字母或下劃線;一般內(nèi)部標(biāo)識符的前31個(gè)字符有效,而外部標(biāo)識符的前6個(gè)字符有效;(視具體編譯器的規(guī)定)不能與關(guān)鍵字相同。C語言快速入門count,student_name

32、,sum,test13,_number,Sum M.John,$123,hi!,12xyz,void54編程環(huán)境舉例演示的基本操作創(chuàng)建工作區(qū)創(chuàng)建工程(程序)并添加到工作區(qū)創(chuàng)建源文件并添加到工程構(gòu)建工程(編譯、鏈接)運(yùn)行程序C語言快速入門55程序的測試與調(diào)試程序錯(cuò)誤語法錯(cuò)誤未遵循C的語法規(guī)則。編譯器可以檢查。運(yùn)行時(shí)錯(cuò)誤在程序運(yùn)行時(shí)執(zhí)行了無法處理的操作。邏輯錯(cuò)誤程序不能按照預(yù)期的方式運(yùn)行,不能產(chǎn)生預(yù)期的結(jié)果。C語言快速入門56程序的測試與調(diào)試程序測試審查和運(yùn)行程序,檢測程序是否存在錯(cuò)誤。測試步驟在編譯前仔細(xì)檢查程序的源代碼,看看是否有明顯的錯(cuò)誤。查看編譯器發(fā)現(xiàn)的語法錯(cuò)誤。對于運(yùn)行時(shí)錯(cuò)誤和邏輯錯(cuò)誤可

33、以采用正確輸出測試。想找出所有錯(cuò)誤是不切實(shí)際的。C語言快速入門57程序的測試與調(diào)試程序調(diào)試隔離和修正錯(cuò)誤。調(diào)試方法采用手工方式來跟蹤程序。在程序中的關(guān)鍵點(diǎn)放置輸出語句來顯示變量的值。使用調(diào)試器。C語言快速入門58小結(jié)C程序的基本結(jié)構(gòu)C語言程序是由一個(gè)或多個(gè)函數(shù)組成的。函數(shù)可以是標(biāo)準(zhǔn)庫函數(shù)和自定義的函數(shù)。C語言的語句可以包含一個(gè)表達(dá)式,也可以包含一個(gè)函數(shù)調(diào)用,以一個(gè)分號作為結(jié)束標(biāo)志。C語言中的變量在使用之前必須先聲明,通過聲明語句中為變量指定一個(gè)名字和數(shù)據(jù)類型??梢酝ㄟ^賦值運(yùn)算改變變量的值。C語言可以使用scanf()函數(shù)和printf()函數(shù)輸入和輸出數(shù)據(jù)。C語言快速入門59小結(jié)編譯器可以發(fā)現(xiàn)

34、程序中的語法錯(cuò)誤,但是程序中的運(yùn)行時(shí)錯(cuò)誤和邏輯錯(cuò)誤只有在程序運(yùn)行時(shí)才表現(xiàn)出來。檢測運(yùn)行時(shí)錯(cuò)誤和邏輯錯(cuò)誤的一種簡單實(shí)用的方法是跟蹤程序的運(yùn)行狀態(tài),即程序每執(zhí)行一步之后所有或主要變量的值。C語言快速入門第三講 基本數(shù)據(jù)類型61第三講 基本數(shù)據(jù)類型引例變量與常量預(yù)備知識內(nèi)儲存器的組織數(shù)據(jù)類型基本數(shù)據(jù)類型整數(shù)類型字符浮點(diǎn)類型C語言程序設(shè)計(jì)62引例引例問題計(jì)算任意一個(gè)圓的面積。源程序()基本數(shù)據(jù)類型#include void main() float r, area; /定義變量 scanf(“%f”,&r); /讀取輸入的半徑 area = 3.14*r*r; /計(jì)算圓的面積 printf(“area

35、=%f”,area); /輸出1areararea = r263變量與常量數(shù)據(jù)(Data)程序需要使用數(shù)據(jù)。數(shù)據(jù)是信息的載體。數(shù)據(jù)有多種形式:數(shù)、字符、圖片等。常量(Constants)在程序運(yùn)行之前可以預(yù)先設(shè)定,并在整個(gè)運(yùn)行過程中沒有變化的數(shù)據(jù)。例如引例中的圓周率。變量(Variables)在程序運(yùn)行過程中可能變化或被賦值的數(shù)據(jù)。例如引例中的半徑和面積?;緮?shù)據(jù)類型64數(shù)據(jù)類型數(shù)據(jù)類型的作用決定數(shù)據(jù)的存儲方式和占用的存儲空間的大小。決定可以進(jìn)行的操作。C語言的數(shù)據(jù)類型基本類型整型(integer),字符型(character),浮點(diǎn)型(floating-point),枚舉類型(enumera

36、tion)構(gòu)造類型結(jié)構(gòu)體(structure),共用體(union),數(shù)組(array)指針類型(pointer)空類型(void)基本數(shù)據(jù)類型65位、字節(jié)和字內(nèi)存儲器的組織基本數(shù)據(jù)類型位(bit):最小的存儲單位,可以容納兩個(gè)值之一,即0或1。200020012002字節(jié)(Byte):基本的存儲單位,8位。字(word):自然的存儲單位,包含若干個(gè)字節(jié)。例如32位機(jī)的一個(gè)字就是32位。地址:以字節(jié)為單位從0開始編號。66整數(shù)的存儲方式有符號的正整數(shù)在內(nèi)存中以二進(jìn)制補(bǔ)碼形式存放。正整數(shù)的補(bǔ)碼與原碼相同。例如:10基本數(shù)據(jù)類型符號位0 0 0 0 0 0 0 00 0 0 0 1 0 1 0RA

37、M數(shù)軸0215-1=32767可表示的數(shù)的范圍-215=-3276867整數(shù)的存儲方式有符號的負(fù)整數(shù)在內(nèi)存中以二進(jìn)制補(bǔ)碼的形式存放。例如:-10基本數(shù)據(jù)類型符號位1 1 1 1 1 1 1 11 1 1 1 0 1 1 0RAM-10的原碼1 0 0 0 0 0 0 00 0 0 0 1 0 1 01 1 1 1 1 1 1 11 1 1 1 0 1 0 11 1 1 1 1 1 1 11 1 1 1 0 1 1 0按位取反加一后得到 -10的補(bǔ)碼符號位不變68整數(shù)的存儲方式無符號整數(shù)所有二進(jìn)制位都存放數(shù)值。例如:65535基本數(shù)據(jù)類型1 1 1 1 1 1 1 11 1 1 1 1 1 1

38、1RAM0216-1=65535可表示的數(shù)的范圍69整數(shù)的類型C語言提供多種整數(shù)類型為程序員提供了針對不同用途的多種選擇?;緮?shù)據(jù)類型類型名稱類型說明符字節(jié)數(shù)數(shù)值范圍基本整型signed int4-2147483648 2147483647短整型signed short int2-3276832767長整型signed long int4-2147483648 2147483647無符號基本整型unsigned int404294967295無符號短整型unsigned short int2065535無符號長整型unsigned long int404294967295C標(biāo)準(zhǔn)只規(guī)定:shor

39、t int long最大最小值參考僅供參考,實(shí)際值與所使用的操作系統(tǒng)、編譯系統(tǒng)、機(jī)器有關(guān)。70整型常量整型常量有三種形式:十進(jìn)制(decimal)整數(shù)12 65 65535八進(jìn)制(octal)整數(shù):帶前綴 0(zero)014 0101 0177777十六進(jìn)制(hexadecimal)整數(shù):帶前綴 0 x 或 0X0 xc 0 x41 0 xffff默認(rèn)類型是int,即有符號的基本整型。可以加上后綴 u 或 U 表示無符號整數(shù),或者 l 或 L 表示長整數(shù)。0 xb5Lu基本數(shù)據(jù)類型71整型變量聲明變量(Declaration)變量在使用之前必須被聲明。聲明語句的格式:舉例RAM基本數(shù)據(jù)類型

40、,.;int counter;int width, height;short x, y;long number;變量聲明創(chuàng)建了變量:為變量分配了存儲空間。height72整型變量初始化(Initialize)變量為變量賦一個(gè)初始值??梢栽诼暶髡Z句中初始化變量。舉例變量獲得值的方法直接賦值輸入初始化基本數(shù)據(jù)類型int counter = 0;int width = 352, height = 288;初始化式RAM288height73整型變量輸出變量的值可以使用printf()函數(shù)。與int類型對應(yīng)的格式說明符是%d。舉例()基本數(shù)據(jù)類型#include void main() int a,

41、b; a=32767; b=-32768; printf(a=%d,b=%dn, a, b);a=32767,b=-3276874整數(shù)的溢出溢出整數(shù)太大,超出了整數(shù)類型的數(shù)值范圍。使用printf() 時(shí)與unsigned int類型對應(yīng)的格式說明符是%u。舉例()基本數(shù)據(jù)類型#include void main() int a, b; unsigned c, d; a = 2147483647; b = a+1; c = 4294967295; d = c+1; printf(a=%d,b=%dn, a, b); printf(c=%u,d=%u, c, d);a=2147483647,b=

42、-2147483648c=4294967295,d=0?75整數(shù)的溢出溢出結(jié)果分析結(jié)論a+1 的結(jié)果(2147483648) 超出了基本整型變量 b 所能容納(表示)的數(shù)值范圍(-21474836482147483647)。請分析d的結(jié)果?;緮?shù)據(jù)類型0 1 1 1 1 1 1 1.1 1 1 1 1 1 11 0 0 0 0 0 0 0.0 0 0 0 0 0 0a(2147483647)1 0 0 0 0 0 0 0.0 0 0 0 0 0 0a+1(2147483648)b(-2147483648)12加正數(shù)減正數(shù)76字符的存儲方式字符編碼計(jì)算機(jī)使用一種數(shù)字編碼(整數(shù))來表示字符,每一個(gè)

43、字符都對應(yīng)一個(gè)特定的整數(shù)。常用的編碼是ASCII(美國信息交換用標(biāo)準(zhǔn)碼)。7位二進(jìn)制數(shù),十進(jìn)制碼值范圍從0到127。一般用一個(gè)字節(jié)保存,最高位為0。字符的存儲方式與整數(shù)相同舉例字母A的ASCII碼值為65,那么在內(nèi)存中以65的二進(jìn)制形式存儲,且占一個(gè)字節(jié)?;緮?shù)據(jù)類型RAM77字符的類型和字符變量C語言的字符類型:char占一個(gè)字節(jié);可視為一個(gè)有符號的整數(shù)。舉例()基本數(shù)據(jù)類型#include void main() char c1, c2; /聲明字符變量 c1 = 97; /把一個(gè)整數(shù)賦值給字符變量 c2 = c1-32; /字符變量可以進(jìn)行算術(shù)運(yùn)算 printf(c1=%c,c2=%cn

44、, c1, c2); printf(c1=%d,c2=%dn, c1, c2);c1=a,c2=Ac1=97,c2=6578字符常量字符常量用單引號括起來的一個(gè)字符。x 9 +C語言將字符常量視為int類型。舉例()如果int類型為16位,char類型為8位,那么對于bc,將把b和c的ASCII碼值存儲在兩個(gè)字節(jié)中,并把c賦值給變量c2。注意:不同系統(tǒng)處理方式不同,結(jié)果不同。基本數(shù)據(jù)類型char c1, c2;c1=a;c2=bc;0 1 1 0 0 0 0 1c10 1 1 0 0 0 1 1c20 1 1 0 0 0 1 10 1 1 0 0 0 1 0bcLH9799999879字符常量

45、轉(zhuǎn)義字符(escape character)指代一些特殊的字符。(打印不出來的字符)舉例()基本數(shù)據(jù)類型a 警報(bào) 反斜杠()b 退格? 問號(?)f 走紙 單引號()n 換行“ 雙引號(”)r 回車ooo 八進(jìn)制值(o表示一個(gè)八進(jìn)制數(shù)字)t 水平制表符xhh 十六進(jìn)制值(h表示一個(gè)十六進(jìn)制數(shù)字)v 垂直制表符#include void main() printf(atbncbd100 x40n);abd80浮點(diǎn)數(shù)的存儲方式浮點(diǎn)數(shù)浮點(diǎn)型數(shù)據(jù)在內(nèi)存中按指數(shù)形式存放。例如:314.15 = 3.1415102基本數(shù)據(jù)類型0 (3.14159)10 0 (2)10 數(shù)符 尾數(shù)部分 階符 階碼 + 3.

46、14159 10+2由此可見,尾數(shù)部分的寬度決定了有效數(shù)字的個(gè)數(shù)(即精度),階碼部分的寬度決定了數(shù)值范圍。RAM科學(xué)計(jì)數(shù)法允許使用少量的數(shù)字表示很大范圍的數(shù)和很小的數(shù)。81浮點(diǎn)數(shù)的類型浮點(diǎn)數(shù)也有多種類型類型名稱及典型大小基本數(shù)據(jù)類型類型名稱類型說明符字節(jié)數(shù)有效數(shù)字?jǐn)?shù)值范圍單精度float467(s)10-371038雙精度double81516(s)10-30710308長雙精度long double101819(s)10-4931104932S = 1參考僅供參考,實(shí)際值與所使用的操作系統(tǒng)、編譯系統(tǒng)、機(jī)器有關(guān)。數(shù)軸0可表示的正數(shù)可表示的負(fù)數(shù)82浮點(diǎn)型常量浮點(diǎn)型常量有兩種形式:十進(jìn)制形式12.

47、3 .65 0.指數(shù)形式: 1.2e-2 .1E5 7E01.210-20.11057.0100默認(rèn)類型是double??梢约由虾缶Y f 或 F 表示float類型,或者 l 或 L 表示long double類型,否則該常量是double類型。2.3f 1.2L .1E5f基本數(shù)據(jù)類型83浮點(diǎn)型變量浮點(diǎn)型變量的聲明和初始化舉例基本數(shù)據(jù)類型float radius;double x = 0.0, y = 0.0;不能寫成:double x = y =0.0;84浮點(diǎn)型變量浮點(diǎn)數(shù)的輸出使用printf()函數(shù)float和double對應(yīng)的格式說明符為%f、%e。舉例()基本數(shù)據(jù)類型#includ

48、e void main() float f; double d;f; d=33333.3333333333; printf(f=%fnd=%f, f, d);有效數(shù)字位數(shù)是有限的,在可表示的有效位之外的數(shù)字被舍去。因此可能會產(chǎn)生誤差。85浮點(diǎn)數(shù)的舍入誤差浮點(diǎn)數(shù)的舍入誤差舉例()基本數(shù)據(jù)類型#include void main() float a, b; a=123456.789e5; b=a+20; printf(a=%fnb=%f, a, b);?86浮點(diǎn)數(shù)的舍入誤差浮點(diǎn)數(shù)的舍入誤差結(jié)果分析基本數(shù)據(jù)類型a=123456.789e5;b=a+20;a+20的理論值應(yīng)該是:但是,一個(gè)實(shí)型變量能夠

49、保證的有效數(shù)字是7位,后面的數(shù)字將被舍去,是沒有意義的。因此,最后得到應(yīng)當(dāng)避免一個(gè)很大的數(shù)和一個(gè)很小的數(shù)直接相加或相減,否則就會“丟失”較小的數(shù)。87浮點(diǎn)數(shù)的溢出上溢舉例()若某系統(tǒng)中的最大float值為,進(jìn)行如下操作得到結(jié)果下溢舉例:假設(shè)-10是最小的指數(shù),能夠保留四位有效數(shù)字如果把數(shù)除以10,將得到結(jié)果,但損失了一位有效數(shù)字。基本數(shù)據(jù)類型float toobig = 3.4e38 * 100.0f;printf(“toobig=%f, toobig);inf無窮大(infinity)88小結(jié)C語言有多種數(shù)據(jù)類型。基本的數(shù)據(jù)類型包括兩大類:整數(shù)類型浮點(diǎn)類型開發(fā)程序時(shí),應(yīng)當(dāng)注意所需變量及其類型

50、的選擇。一般使用int和float表示數(shù),用char表示字符。在使用變量的函數(shù)的可執(zhí)行語句之前聲明該變量,并為它選擇有意義的名字。初始化變量使用的常量應(yīng)當(dāng)與變量的類型相匹配?;緮?shù)據(jù)類型第四講 輸入輸出和庫函數(shù)90第四講 輸入輸出和庫函數(shù)引例字符串常量符號常量格式化輸入輸出字符輸入輸出庫函數(shù)C語言程序設(shè)計(jì)91引例引例問題:計(jì)算任意一個(gè)球體的體積。源程序()輸入輸出和庫函數(shù)#include #include #define PI 3.14159 /定義符號常量void main() double r, volume; printf(Please input the radius of a bal

51、l: ); scanf(%lf, &r); volume = 4.0/3.0*PI*pow(r, 3.0); /使用數(shù)學(xué)函數(shù) printf(“Volume = %.5fn”, volume); /按格式輸出Please input the radius of a ball: 1volume = 4/3r392字符串常量字符串常量用雙引號括起來的字符序列。this is a string x 12345字符串常量的存儲方式字符串中的字符存放在相鄰的存儲單元中,每個(gè)字符占用一個(gè)單元,在最后加上一個(gè)空字符(0)作為結(jié)束標(biāo)識符。舉例輸入輸出和庫函數(shù)thisisastring0每個(gè)字符占一個(gè)字節(jié)結(jié)束標(biāo)記

52、93字符串常量字符串常量和字符常量的區(qū)別字符x是基本型數(shù)據(jù)。字符串”x”是構(gòu)造型數(shù)據(jù)。占用的存儲空間大小不同。輸入輸出和庫函數(shù)xx在內(nèi)存中占一個(gè)字節(jié)“x”x在內(nèi)存中占兩個(gè)字節(jié)094符號常量符號常量符號常量是用一個(gè)標(biāo)識符表示的常量。定義規(guī)則#define 舉例輸入輸出和庫函數(shù)#define MAXSIZE 20#define WELCOME Welcome to you!編譯預(yù)處理器將會用替換以后出現(xiàn)的PI標(biāo)識符。95符號常量為什么需要符號常量名字比數(shù)字包含的信息多。便于維護(hù)如果需要在多個(gè)地方用到同一個(gè)常量,而且必須改變它的值,則只需要修改其符號常量的定義。另一種定義符號常量的方法使用const

53、把一個(gè)變量聲明轉(zhuǎn)換成常量聲明。舉例輸入輸出和庫函數(shù)const int MAX_NUMBER = 30;MAX_NUMBER是只讀的。96輸入輸出輸入輸出是以計(jì)算機(jī)主機(jī)為主體而言的。輸出(Output):從主機(jī)向外部輸出設(shè)備輸出數(shù)據(jù)。輸入(Input):從外部通過輸入設(shè)備向主機(jī)輸入數(shù)據(jù)。輸入輸出和庫函數(shù)主機(jī)鍵盤磁盤光盤掃描儀顯示器打印機(jī)磁盤輸入輸出97輸入輸出流流(stream)按直線排列的字符序列每個(gè)序列包括0個(gè)或多個(gè)字符,并用換行符結(jié)尾ANSI C支持至少254個(gè)字符的序列所有的輸入/輸出都是用流來進(jìn)行的。輸入輸出和庫函數(shù)S!ci源目的98標(biāo)準(zhǔn)輸入輸出流開始執(zhí)行程序時(shí),3個(gè)流自動連接到程序上

54、標(biāo)準(zhǔn)輸入流(standard input)對應(yīng)的源端設(shè)備:keyboard標(biāo)準(zhǔn)輸出流(standard output)對應(yīng)的目的端設(shè)備:screen標(biāo)準(zhǔn)錯(cuò)誤流(standard error)對應(yīng)的目的端設(shè)備:screen操作系統(tǒng)允許這些流重定向到其它設(shè)備輸入輸出和庫函數(shù)type myprog.c prn輸出重定向符輸入重定向符99輸入輸出函數(shù)C語言中數(shù)據(jù)的輸入、輸出是由函數(shù)來實(shí)現(xiàn)的。字符輸入函數(shù):getchar()字符輸出函數(shù):putchar()格式輸入函數(shù):scanf()格式輸出函數(shù):printf()它們都屬于標(biāo)準(zhǔn)輸入輸出庫函數(shù),其原型(prototype)都在頭文件(header file

55、)中。輸入輸出和庫函數(shù)100字符輸入輸出putchar()函數(shù)getchar()函數(shù)使用說明程序中必須包含 頭文件輸入輸出和庫函數(shù)#include 101字符輸出putchar使用形式putchar(character);向標(biāo)準(zhǔn)輸出流輸出一個(gè)字符character使用說明character可以是以下數(shù)據(jù):字符型數(shù)據(jù)整型數(shù)據(jù)轉(zhuǎn)義字符輸入輸出和庫函數(shù)102字符輸出舉例(cw0302.c)輸入輸出和庫函數(shù)#include void main() char a; int b; a=B; b=79; putchar(a); putchar(n); putchar(b); putchar(n); putc

56、har(Y);BOY103字符輸入getchar使用形式variable = getchar();從標(biāo)準(zhǔn)輸入流讀取一個(gè)字符。使用說明只讀取一個(gè)字符。該字符可賦給字符變量、整型變量或作為表達(dá)式的一部分。輸入輸出和庫函數(shù)104字符輸入舉例(cw0303.c)輸入輸出和庫函數(shù)#include void main() char c; c = getchar(); putchar(c);aaabca989123105格式輸入輸出printf()函數(shù)scanf()函數(shù)使用說明程序中可以不明確指定包含 stdio.h 頭文件輸入輸出和庫函數(shù)#include 可以省略此命令106格式輸出printf使用形式p

57、rintf(, );按格式控制字符串規(guī)定的格式,向指定的輸出設(shè)備輸出輸出列表中的輸出項(xiàng)。使用說明格式控制字符串由雙引號括起來的字符串,用于指定輸出格式輸出列表需要輸出的數(shù)據(jù)列表,彼此間用逗號分隔輸出項(xiàng)可以是任意合法的表達(dá)式輸入輸出和庫函數(shù)107格式輸出格式控制字符串舉例輸入輸出和庫函數(shù)printf(“n=%5d,f=%5.2fn”, 3, 6.235)普通字符原樣輸出格式說明符(轉(zhuǎn)換規(guī)則)% 修飾符 格式字符指定數(shù)據(jù)的輸出格式108格式輸出格式字符輸入輸出和庫函數(shù)格式字符功 能d, i以十進(jìn)制有符號形式輸出整數(shù)(正數(shù)不輸出符號)o以八進(jìn)制無符號形式輸出整數(shù)(不輸出前綴)x, X以十六進(jìn)制無符號

58、形式輸出整數(shù)(不輸出前綴)u以十進(jìn)制無符號形式輸出整數(shù)f以小數(shù)形式輸出單、雙精度實(shí)數(shù)e, E以指數(shù)形式輸出單、雙精度實(shí)數(shù)g, G選用%f和%e格式中輸出寬度較短的一種,不輸出無意義的零c以字符形式輸出,輸出一個(gè)字符s輸出字符串109格式輸出格式修飾符輸入輸出和庫函數(shù)修飾符意 義l用于長整型和長雙精度實(shí)型數(shù)據(jù),可加在格式字符 d、o、x、u、f 前面。m(正整數(shù))數(shù)據(jù)最小寬度。.n(正整數(shù))對于實(shí)數(shù),表示輸出n位小數(shù);對于字符串,表示截取的字符個(gè)數(shù)。-輸出的數(shù)字或字符在域內(nèi)向左靠,右邊填空格。#當(dāng)整數(shù)以八進(jìn)制或十六進(jìn)制形式輸出時(shí),輸出前綴??杉釉诟袷阶址鹢、x前面。110格式輸出格式說明符小結(jié)輸

59、入輸出和庫函數(shù)格式字符形 式d, i%d,%md,%-md,%ld,%mld,%-mld,%i,o%o,%mo,%-mo,%lo,%mlo,%-mlo,%#o,x, X%x,%mx,%-mx,%lx,%mlx,%-mlx,%#x,u%u,%mu,%-mu,%lu,%mlu,%-mluf%f,%mf,%m.nf,%lf,e, E%e,%me,%m.ne,g, G%gc%cs%s,%ms,%m.ns,要輸出%就用%111格式輸出舉例()輸入輸出和庫函數(shù)void main() int a=97,b=-1; float f=123.4; printf(“%d,%cn”,a,a); printf(“%d

60、,%o,%x,%un”,b,b,b,b); printf(“%f,%e,%gEND”,f,f,f);97,a-1,177777,ffff,655351 1 1 1 1 1 1 11 1 1 1 1 1 1 1BC112格式輸出舉例()輸入輸出和庫函數(shù)void main() int a=1,b=2,c=3; printf(“%d,%d,%d,%dn”,a,b,c); printf(“%d,%d,%dn”,a,b,c,a+b+c);1,2,3,8981,2,3格式說明符和輸出項(xiàng)在數(shù)量和類型上應(yīng)該一一對應(yīng)。113格式輸入scanf使用形式scanf(, );按格式控制字符串規(guī)定的格式,從指定的輸入設(shè)

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論