C語(yǔ)言程序設(shè)計(jì)完整版課件全套ppt整本書電子講義全書ppt電子課件最全教學(xué)教程_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)完整版課件全套ppt整本書電子講義全書ppt電子課件最全教學(xué)教程_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)完整版課件全套ppt整本書電子講義全書ppt電子課件最全教學(xué)教程_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)完整版課件全套ppt整本書電子講義全書ppt電子課件最全教學(xué)教程_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)完整版課件全套ppt整本書電子講義全書ppt電子課件最全教學(xué)教程_第5頁(yè)
已閱讀5頁(yè),還剩465頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1章

程序設(shè)計(jì)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室2主要內(nèi)容1.1程序設(shè)計(jì)語(yǔ)言的發(fā)展1.2算法與程序設(shè)計(jì)1.3C語(yǔ)言簡(jiǎn)介1.4C語(yǔ)言的結(jié)構(gòu)與執(zhí)行1.5C語(yǔ)言的運(yùn)行與調(diào)試大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室3教學(xué)目的和基本要求:要求學(xué)生了解程序語(yǔ)言及算法的概念,C語(yǔ)言特點(diǎn),C程序開發(fā)過(guò)程,簡(jiǎn)單C程序結(jié)構(gòu)。教學(xué)重點(diǎn):算法的概念、C程序開發(fā)過(guò)程、簡(jiǎn)單C程序結(jié)構(gòu)。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室41.1程序設(shè)計(jì)語(yǔ)言的發(fā)展機(jī)器語(yǔ)言:計(jì)算機(jī)可以直接識(shí)別、執(zhí)行的二進(jìn)制代碼。其優(yōu)點(diǎn)是執(zhí)行速度快;但難寫、難讀、難理解和難修改。匯編語(yǔ)言:使用助記符來(lái)代替機(jī)器語(yǔ)言中復(fù)雜、繁瑣的指令的語(yǔ)言。如Z-80機(jī)中加法指令為ADD。其特點(diǎn)是過(guò)分依賴于機(jī)器碼,即僅適合某類相同或相似的計(jì)算機(jī),因此不易移植。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室51.1程序設(shè)計(jì)語(yǔ)言的發(fā)展高級(jí)語(yǔ)言:獨(dú)立于計(jì)算機(jī)硬件結(jié)構(gòu),讓用戶使用面向問(wèn)題的形式,更加方便編程人員的語(yǔ)言。高級(jí)語(yǔ)言分為如下兩類(1)編譯型:“先編譯后執(zhí)行”,過(guò)程為:源代碼->目標(biāo)代碼->機(jī)器代碼,其執(zhí)行與源程序相互獨(dú)立。比如PASCAL,C等。(2)解釋型:“邊解釋邊運(yùn)行”,程序執(zhí)行離不開源代碼的支持,不利于源程序的保護(hù)和保密。比如BASIC,F(xiàn)oxBASE+等。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室61.1程序設(shè)計(jì)語(yǔ)言的發(fā)展面向結(jié)構(gòu)(面向過(guò)程)的設(shè)計(jì)語(yǔ)言有:BASIC,F(xiàn)ORTRAN,COBOL:面向事務(wù)處理的高級(jí)語(yǔ)言,適合于編寫管理信息系統(tǒng)方面的程序有:PASCAL,C語(yǔ)言,PROLOG,F(xiàn)oxBASE+等面向?qū)ο蠛涂梢暬Z(yǔ)言:C++,Java,VisualBASIC,VisualC++,VisualFoxpro,VisualJ++,Delphi,PowerBuilder等。網(wǎng)頁(yè)(Web)/網(wǎng)絡(luò)(Network)編程語(yǔ)言:HTML,DHTML,JavaScript/Jscript,VBScript,JavaApplet,Java等。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室71.2算法與程序設(shè)計(jì)1算法及其表示

2結(jié)構(gòu)化程序設(shè)計(jì)與面向?qū)ο蟪绦蛟O(shè)計(jì)大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室81.2.1、算法及其表示算法是計(jì)算機(jī)科學(xué)中的重要概念之一,它指明了問(wèn)題的計(jì)算過(guò)程,是對(duì)給定問(wèn)題解題方案的準(zhǔn)確而完整的描述。計(jì)算機(jī)沒(méi)有軟件的支持將無(wú)法工作,軟件是計(jì)算機(jī)的靈魂,而軟件的核心是算法。用計(jì)算機(jī)解決問(wèn)題的方法和步驟就是算法,計(jì)算機(jī)執(zhí)行算法,用計(jì)算機(jī)解決各種數(shù)據(jù)處理問(wèn)題的主要方式就是尋找和設(shè)計(jì)各種算法,將算法變成代碼的過(guò)程即程序設(shè)計(jì)。

算法及其表示1大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室91.2.1、算法及其表示算法具備如下5個(gè)特征:有窮性確定性輸入輸出可行性算法特征2大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室101.2.1、算法及其表示算法可以用多種方法描述,常見的表示方法有:自然語(yǔ)言描述法、偽代碼表示法、傳統(tǒng)流程圖表示法、N-S流程圖表示法等?!纠?-1】已經(jīng)杯A中盛放的是油,杯B中盛放的是水,另有一個(gè)空杯C,三個(gè)杯容積相同,請(qǐng)用自然語(yǔ)言表示算法?!窘獯稹康?步:將A中的油全部倒入C中,使A成為空杯;第2步:將B中的水全部倒入A中,使B成為空杯;第3步:將C中原在A中的油,倒入B中,完成A與B中液體的交換。算法的表示3大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室111.2.1、算法及其表示符號(hào)符號(hào)名稱含義起止框開始和結(jié)束輸入/輸出框輸入/輸出操作處理框內(nèi)容進(jìn)行處理判斷框條件進(jìn)行判斷流程線流程的方向連接點(diǎn)使流程圖清晰(1)使用傳統(tǒng)流程圖表示算法

大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室12真給a和b賦值a<b?輸出a和b輸出a和b假操作A操作B【例1-1】用傳統(tǒng)流程圖表示對(duì)兩個(gè)數(shù)按從小到大的順序輸出的算法。【解答】傳統(tǒng)流程圖如圖1-1所示。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室131.2.1、算法及其表示在結(jié)構(gòu)化程序設(shè)計(jì)中,流程圖只包括3種基本結(jié)構(gòu):(1)順序結(jié)構(gòu)順序結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計(jì)中最簡(jiǎn)單的一種結(jié)構(gòu),這種結(jié)構(gòu)有一個(gè)入口和一個(gè)出口,中間的若干操作按照順序依次執(zhí)行,如圖1-2所示,先執(zhí)行操作A,然后執(zhí)行操作B。(2)選擇結(jié)構(gòu)選擇結(jié)構(gòu)與分支結(jié)構(gòu)屬同一結(jié)構(gòu),它由一個(gè)條件和兩組語(yǔ)句組成,計(jì)算機(jī)根據(jù)條件的真假來(lái)選擇執(zhí)行的分支,如果判斷成立則執(zhí)行操作A,否則執(zhí)行操作B。選擇結(jié)構(gòu)的流程圖如圖1-3所示。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室14真條件?操作A操作B假成立條件?循環(huán)體不成立圖1-3選擇結(jié)構(gòu)圖1-4“當(dāng)型循環(huán)”結(jié)構(gòu)大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室151.2.1、算法及其表示(3)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)是指重復(fù)執(zhí)行同一組程序段的結(jié)構(gòu)。循環(huán)結(jié)構(gòu)由兩部分組成,其一是循環(huán)條件、其二是循環(huán)體。

被重復(fù)執(zhí)行的程序段稱為循環(huán)體。循環(huán)體能否繼續(xù)執(zhí)行由循環(huán)條件決定。根據(jù)循環(huán)條件出現(xiàn)的不同位置,循環(huán)結(jié)構(gòu)又分為“當(dāng)型循環(huán)”和“直到型循環(huán)”兩類。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室161.2.1、算法及其表示

由于傳統(tǒng)流程圖存在不足,提出一種新的結(jié)構(gòu)化流程圖形式,這種形式的流程圖的主要特點(diǎn)是取消了流程線,不再顯示控制流,整個(gè)算法的流程寫在一個(gè)矩形框內(nèi),這種形式的流程圖稱為N-S流程圖。根據(jù)結(jié)構(gòu)化程序的三種基本結(jié)構(gòu),N-S流程圖有3種基本形式,其中循環(huán)結(jié)構(gòu)N-S流程圖又分為“當(dāng)型循環(huán)”和“直到型循環(huán)”兩種。N-S流程圖表示的3種基本結(jié)構(gòu)如下所示:(2)使用N-S流程圖表示算法大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室17操作A操作B是假條件執(zhí)行循環(huán)當(dāng)條件滿足時(shí)執(zhí)行循環(huán)體直到條件滿足退出循環(huán)處理B處理A圖1-1順序結(jié)構(gòu)圖1-2選擇結(jié)構(gòu)圖1-3“當(dāng)型循環(huán)”結(jié)構(gòu)圖1-4“直到型循環(huán)”結(jié)構(gòu)大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室181.2.1、算法及其表示

偽代碼使用介于自然語(yǔ)言和計(jì)算機(jī)語(yǔ)言之間的文字和符號(hào)來(lái)描述算法。這種表示方式比較接近于計(jì)算機(jī)語(yǔ)言,如果結(jié)合相應(yīng)的語(yǔ)法,即可以修改成為程序?!纠?-3】使用偽代碼描述數(shù)據(jù)A與數(shù)據(jù)B進(jìn)行交換的算法,要求不引入臨時(shí)數(shù)據(jù)?!窘獯稹渴褂脗未a描述如下:(1)A=A+B,將A與B相加賦值給A,則A為原數(shù)據(jù)A+B的和;(2)B=A-B,原兩數(shù)和減去B即A的值,現(xiàn)賦值給B;(3)A=A-B,原兩數(shù)和減去最近更新的B即A的新值(原數(shù)據(jù)B)(4)兩數(shù)A、B完成交換。由于偽代碼不能直接執(zhí)行,但表示算法方便,容易理解。

(3)使用偽代碼表示算法大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室191.2.2、結(jié)構(gòu)化程序設(shè)計(jì)與面向?qū)ο蟮某绦蛟O(shè)計(jì)

目前,軟件開發(fā)行業(yè)中有兩種典型的程序設(shè)計(jì)方法,其一為結(jié)構(gòu)化程序設(shè)計(jì)方法,其二為面向?qū)ο蟮某绦蛟O(shè)計(jì)方法。(1)結(jié)構(gòu)化程序設(shè)計(jì):它的主要觀點(diǎn)是采用自頂向下、逐步求精的程序設(shè)計(jì)方法,使用3種基本結(jié)構(gòu)構(gòu)造程序(順序、選擇、循環(huán))。“結(jié)構(gòu)化程序設(shè)計(jì)”方法旨在提高程序的可讀性,保證軟件的質(zhì)量,降低軟件成本,提高軟件開發(fā)和維護(hù)的效率。

結(jié)構(gòu)化程序設(shè)計(jì)1大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室201.2.2、結(jié)構(gòu)化程序設(shè)計(jì)與面向?qū)ο蟮某绦蛟O(shè)計(jì)

所謂面向?qū)ο蟮某绦蛟O(shè)計(jì),就是把面向?qū)ο蟮乃枷霊?yīng)用到軟件工程中,并指導(dǎo)開發(fā)維護(hù)軟件。對(duì)象是由數(shù)據(jù)和容許的操作組成的封裝體,所謂面向?qū)ο?,就是基于?duì)象的概念,以對(duì)象為中心,類和繼承為構(gòu)造機(jī)制,認(rèn)識(shí)了解刻畫客觀世界以及開發(fā)出相應(yīng)的軟件系統(tǒng)。“面向?qū)ο蟪绦蛟O(shè)計(jì)”就是通過(guò)數(shù)據(jù)抽象,將許多實(shí)例中共性的數(shù)據(jù)和為操作這些數(shù)據(jù)所需要的算法抽取出來(lái),并進(jìn)行封裝和數(shù)據(jù)隱藏,形成一個(gè)新的數(shù)據(jù)類型————“類”類型。面向?qū)ο蟮某绦蛟O(shè)計(jì)2大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室211.3C語(yǔ)言簡(jiǎn)介1C語(yǔ)言的產(chǎn)生與發(fā)展

2C語(yǔ)言的特點(diǎn)與應(yīng)用領(lǐng)域大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室221.3.1、C語(yǔ)言的產(chǎn)生與發(fā)展C語(yǔ)言是在70年代初問(wèn)世,是目前國(guó)際上廣泛流行的一種結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言。當(dāng)初的C語(yǔ)言是為開發(fā)UNIX操作系統(tǒng)而研制的,1983年美國(guó)國(guó)家標(biāo)準(zhǔn)學(xué)會(huì)(ANSI)將C語(yǔ)言標(biāo)準(zhǔn)化,隨后C語(yǔ)言的廣泛應(yīng)用又不斷推出新的C語(yǔ)言版本,其性能也越來(lái)越強(qiáng)。也從面向過(guò)程的編程語(yǔ)言發(fā)展到面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。目前可在微機(jī)上運(yùn)行的C語(yǔ)言版本主要有TurboC,QuickC,VisualC++等版本。C語(yǔ)言的產(chǎn)生與發(fā)展1大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室231.3.2、C語(yǔ)言的特點(diǎn)與應(yīng)用領(lǐng)域

C語(yǔ)言的主要特點(diǎn)有:(1)語(yǔ)言簡(jiǎn)潔,緊湊,使用方便,靈活。(2)運(yùn)算符豐富。(3)數(shù)據(jù)結(jié)構(gòu)豐富,具有現(xiàn)代化語(yǔ)言的各種數(shù)據(jù)結(jié)構(gòu)。(4)具有現(xiàn)代化的控制語(yǔ)句。(5)語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大。(6)C語(yǔ)言能進(jìn)行“位”(bit)操作,能實(shí)現(xiàn)匯編語(yǔ)言的大部分功能,可以直接對(duì)硬件進(jìn)行操作。(7)生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。(8)程序可移植性好。(9)繪圖能力強(qiáng),可完成圖形圖像相關(guān)的程序設(shè)計(jì)。C語(yǔ)言的特點(diǎn)與應(yīng)用領(lǐng)域

1大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室241.4C語(yǔ)言的結(jié)構(gòu)與執(zhí)行1C語(yǔ)言源程序的結(jié)構(gòu)特點(diǎn)

2高級(jí)語(yǔ)言程序的執(zhí)行過(guò)程3程序設(shè)計(jì)的開發(fā)期與開發(fā)習(xí)慣大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室251.4.1、C語(yǔ)言源程序的結(jié)構(gòu)特點(diǎn)C語(yǔ)言程序的一般形式如下:編譯預(yù)處理部分全局變量定義main()/*主函數(shù)*/{ 全局定義序列語(yǔ)句序列}func1()/*自定義函數(shù)func1*/{ ……}

C語(yǔ)言源程序的結(jié)構(gòu)1大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室261.4C語(yǔ)言的結(jié)構(gòu)與執(zhí)行(1)一個(gè)C語(yǔ)言源程序可以由一個(gè)或多個(gè)源文件組成。(2)每個(gè)源文件可由一個(gè)或多個(gè)函數(shù)組成。(3)一個(gè)源程序不論由多少個(gè)文件組成,都有一個(gè)且只能有一個(gè)main()函數(shù),即主函數(shù)。(4)源程序中可以有預(yù)處理命令。(5)每一個(gè)聲明,每一條語(yǔ)句都必須以分號(hào)結(jié)尾。但預(yù)處理命令,函數(shù)頭和花括號(hào)“}”之后不能加分號(hào)。(6)標(biāo)識(shí)符,關(guān)鍵字之間必須至少加一個(gè)空格以示間隔。(7)可以用/*……*/對(duì)C語(yǔ)言程序中的任何部分進(jìn)行注釋。注釋有利于增加程序的可讀性和可維護(hù)性。特點(diǎn)1大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室271.4.2、高級(jí)語(yǔ)言程序的執(zhí)行過(guò)程高級(jí)語(yǔ)言程序的執(zhí)行過(guò)程高級(jí)語(yǔ)言與具體計(jì)算機(jī)無(wú)關(guān),是一種能方便描述算法過(guò)程的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。用高級(jí)語(yǔ)言編寫的程序稱為“源程序”。計(jì)算機(jī)不能直接執(zhí)行,通常有“解釋”和“編譯”兩種方法處理源程序?!敖忉尅狈绞剑醋層?jì)算機(jī)運(yùn)行解釋程序,解釋程序逐句取出源程序中的語(yǔ)句,對(duì)它作解釋執(zhí)行,輸入數(shù)據(jù),產(chǎn)生結(jié)果。優(yōu)點(diǎn)是計(jì)算機(jī)與人的交互性好;缺點(diǎn)是逐句解釋執(zhí)行,運(yùn)行速度慢?!熬幾g”方式,即先運(yùn)行編譯程序,從源程序一次性翻譯產(chǎn)生計(jì)算機(jī)可直接執(zhí)行的二進(jìn)制程序(稱為目標(biāo)程序);然后讓計(jì)算機(jī)將目標(biāo)程序結(jié)合具體的計(jì)算機(jī)硬件產(chǎn)生相應(yīng)的“可執(zhí)行”程序,產(chǎn)生結(jié)果。優(yōu)點(diǎn)是運(yùn)行目標(biāo)程序快,缺點(diǎn)是修改源程序后必須重新編譯以產(chǎn)生新的目標(biāo)程序。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室281.4.3、程序設(shè)計(jì)的開發(fā)期與開發(fā)習(xí)慣

第1階段,分析問(wèn)題,確定問(wèn)題的需求。第2階段,分析問(wèn)題,建立數(shù)學(xué)模型。第3階段,選擇計(jì)算方法。第4階段,設(shè)計(jì)算法,繪制流程圖。第5階段,代碼編寫。第6階段,調(diào)試程序。第7階段,整理資料和交付使用。

開發(fā)期與開發(fā)習(xí)慣1大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室291.4C語(yǔ)言的結(jié)構(gòu)與執(zhí)行(1)程序所采用的算法要盡量簡(jiǎn)單,符合人一般的思維方式。(2)標(biāo)識(shí)符的命名盡量采取“見名知義,常用從簡(jiǎn)”的原則。(3)采用“縮進(jìn)”的方式書寫程序。低一層次的語(yǔ)句或說(shuō)明可比高一層次的語(yǔ)句或說(shuō)明縮進(jìn)若干格后書寫。(4)程序中可用/*……*/或//注釋,以提高程序的可讀性。(5)在輸入數(shù)據(jù)前要有提醒用戶輸入什么樣的數(shù)據(jù)。(6)編譯預(yù)處理部分的語(yǔ)句,不能加分號(hào)。(7)每一行寫一條語(yǔ)言。(8)用{}號(hào)括起來(lái)的部分,通常表示了程序的某一層次結(jié)構(gòu)。{}一般與該結(jié)構(gòu)語(yǔ)句的第一個(gè)字母對(duì)齊,并單獨(dú)占一行。在書寫程序時(shí)應(yīng)遵循以下規(guī)則:2大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室301.5C語(yǔ)言的運(yùn)行與調(diào)試1C程序的執(zhí)行過(guò)程

2C程序開發(fā)的實(shí)驗(yàn)方法3VC++6.0編寫程序與調(diào)試程序大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室311.5.1、C程序的執(zhí)行過(guò)程C程序的執(zhí)行過(guò)程:

C源程序的擴(kuò)展名為*.c,經(jīng)過(guò)編譯程序處理后的源程序生成目標(biāo)程序(*.obj),目標(biāo)程序經(jīng)過(guò)連接程序處理,生成可執(zhí)行程序(*.exe),可執(zhí)行程序能夠直接運(yùn)行。標(biāo)準(zhǔn)C程序的執(zhí)行是從main()函數(shù)開始執(zhí)行,如果main()函數(shù)中調(diào)用了其它函數(shù),其它函數(shù)調(diào)用結(jié)束后,返回主函數(shù)繼續(xù)執(zhí)行。

大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室321.5.2C程序開發(fā)的實(shí)驗(yàn)方法C程序開發(fā)的實(shí)驗(yàn)方法如下:下面分別介紹在VisualC++6.0集成開發(fā)環(huán)境下運(yùn)行C語(yǔ)言程序的一般方法。第1步,安裝MicrosoftVisualC++6.0;第2步,建議工作區(qū);第3步,打開工作區(qū),并在該工作區(qū)下建立工程;第4步,編寫源程序;第5步,編譯源程序;第6步,組建源程序;第7步,調(diào)試和執(zhí)行源程序。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室331.5.3VisualC++6.0編寫程序

與調(diào)試程序的方法VisualC++6.0編寫程序與調(diào)試程序的方法:第1步,啟動(dòng)VisualC++6.0第2步,建立項(xiàng)目(Project工程)工作區(qū)第3步,建立工程文件第4步,建立、編輯、編譯、運(yùn)行C源程序文件大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室341.5C語(yǔ)言的運(yùn)行與調(diào)試

運(yùn)行與調(diào)試整個(gè)過(guò)程如下圖所示。編輯程序編譯程序連接程序源程序目標(biāo)程序可執(zhí)行程序輸出結(jié)果編輯.c編譯.obj連接.exe運(yùn)行

圖1-10源程序的變化過(guò)程編輯程序編譯程序連接程序源程序目標(biāo)程序可執(zhí)行程序輸出結(jié)果編輯.c編譯.obj連接.exe運(yùn)行大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室35本章內(nèi)容結(jié)束!網(wǎng)絡(luò)信息中心教研室

第2章

數(shù)據(jù)類型、運(yùn)算符與表達(dá)式主要內(nèi)容大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室372.2標(biāo)識(shí)符

2.3常量

2.4變量

2.5數(shù)據(jù)間的混合運(yùn)算

2.6變量賦初值

2.1C語(yǔ)言的數(shù)據(jù)類型

2.7運(yùn)算符和表達(dá)式

大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室381.5C語(yǔ)言的運(yùn)行與調(diào)試1C語(yǔ)言的數(shù)據(jù)類型

2基本數(shù)據(jù)類型在兩種環(huán)境下的表示2.1C語(yǔ)言的數(shù)據(jù)類型一個(gè)程序應(yīng)包含兩個(gè)方面,即數(shù)據(jù)結(jié)構(gòu)和算法:(1)為了方便對(duì)程序中的數(shù)據(jù)進(jìn)行存儲(chǔ)和運(yùn)算,每個(gè)數(shù)據(jù)都要有指定的數(shù)據(jù)類型和組織形式,叫做數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)類型是按被定義變量的性質(zhì)、表示形式、占據(jù)存儲(chǔ)空間及構(gòu)造特點(diǎn)進(jìn)行劃分,不同類型數(shù)據(jù)的數(shù)據(jù)表示形式、取值范圍、占用內(nèi)存空間的大小及可參與的運(yùn)算種類也不同;(2)算法是指對(duì)操作的描述,一般會(huì)給出解決問(wèn)題的操作步驟。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室392.1.1基本數(shù)據(jù)類型簡(jiǎn)介基本數(shù)據(jù)類型

C語(yǔ)言中,數(shù)據(jù)類型可分為:基本類型、構(gòu)造類型、指針類型和空類型4大類,如下圖2-1所示。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室40空類型

構(gòu)造類型數(shù)組類型結(jié)構(gòu)體類型共用體類型整型基本類型字符型實(shí)型(浮點(diǎn)型)枚舉類型單精度型雙精度型指針類型數(shù)據(jù)類型2.2標(biāo)識(shí)符標(biāo)識(shí)符

除了常量的直接使用方式以外,其它方式均要求這些數(shù)據(jù)有一個(gè)名字與之匹配,這個(gè)名字就是標(biāo)識(shí)符。C語(yǔ)言中,變量名、符號(hào)常量、函數(shù)名、數(shù)組名、類型名、文件名等字符序列稱為標(biāo)識(shí)符??捎糜跇?biāo)識(shí)符的字符集C語(yǔ)言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下畫線3種字符組成,且第1個(gè)字符不允許為數(shù)字.大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室41大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室422.2標(biāo)識(shí)符1可用于標(biāo)識(shí)符的字符集

1可用于標(biāo)識(shí)符的字符集

2標(biāo)識(shí)符的分類2.2.1C語(yǔ)言的字符集C語(yǔ)言的字符集分以下幾類。英文大寫或小寫字母:A~Z,a~z;數(shù)字:1、2、3、……、9特殊符號(hào):+、-、*、/、%、=、_、!、(、)、#、$、^、&、[、]、\、’、”、{、}、|、.、>、<、?、等;轉(zhuǎn)義字符:\n、\t、\v、\b、\r、\f、\0、\’、\”、\\、\ddd、\xhh等。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室432.2.2標(biāo)識(shí)符的分類標(biāo)識(shí)符可分如下幾類:關(guān)鍵字亦稱保留字,關(guān)鍵字在C語(yǔ)言中有特定的含義,用戶在使用自定義的常量名、變量名、函數(shù)名、類型名、文件名時(shí),要絕對(duì)避免使用關(guān)鍵字,C語(yǔ)言中的保留字32個(gè),保留字用小寫字母表示,大寫的可以由用戶自由使用,盡量不用,以免與系統(tǒng)保留字混淆.大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室44關(guān)鍵字12.2標(biāo)識(shí)符描述數(shù)據(jù)類型定義的有:typedef、void;描述存儲(chǔ)類型的有:auto、extern、register、static、volatile;描述數(shù)據(jù)類型的有:char、int、float、double、long、short、signed、struct、union、unsigned、const、enum;描述語(yǔ)句:break、case、continue、default、if、else、switch、for、do、while、return、sizeof、goto。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室452.2標(biāo)識(shí)符預(yù)定義標(biāo)識(shí)符包括C語(yǔ)言中提供的一些庫(kù)函數(shù)的名字(如printf,scanf,getchar,putchar等)和編譯預(yù)處理命令(defineinclude等),建議用戶在自定義常、變量時(shí),也要避免與這些標(biāo)識(shí)符沖突。

用戶在程序設(shè)計(jì)過(guò)程中,會(huì)經(jīng)常用到常量、變量、自定義函數(shù)、文件名、類型名等,這些要用戶定義。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室46預(yù)定義標(biāo)識(shí)符2用戶定義標(biāo)識(shí)符32.2標(biāo)識(shí)符下面給出一些合法的標(biāo)識(shí)符:sum,average,_total,temp,a_1,char1,Max,min下面這些是不合法的標(biāo)識(shí)符:1a,$total,a<1>,a.next在使用標(biāo)識(shí)符的時(shí)候盡量采取“見名識(shí)義、常用從簡(jiǎn)”的原則,保證變量具有可讀性,又不要讓變量名過(guò)長(zhǎng)。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室472.3常量常量

程序執(zhí)行過(guò)程中,其值不能被改變的量稱為常量,C語(yǔ)言中出現(xiàn)的常量有如下類型:整型常量、實(shí)型常量、字符常量、字符串常量等。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室48大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室492.3常量1整型常量

2實(shí)型常量

3字符常量

4字符串常量

5符號(hào)常量與預(yù)處理簡(jiǎn)介

2.3.1整型常量2.3.1整型常量整型常量在C語(yǔ)言中又分:十進(jìn)制整數(shù)

八進(jìn)制整數(shù)

十六進(jìn)制整數(shù)

十進(jìn)制整數(shù)以人們通常習(xí)慣的十進(jìn)制整數(shù)形式給出.八進(jìn)制整數(shù)必須以0開頭,其數(shù)碼取值范圍為0~7.以下是合法的八進(jìn)制數(shù):012(對(duì)應(yīng)十進(jìn)制整數(shù)10),-012(對(duì)應(yīng)十進(jìn)制數(shù)-10),0177777(對(duì)應(yīng)十進(jìn)制數(shù)65535),0177777(對(duì)應(yīng)十進(jìn)制數(shù)-65535)。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室50十進(jìn)制整數(shù)1八進(jìn)制整數(shù)22.3常量以下是不合法的八進(jìn)制整數(shù):255(無(wú)前綴0),03A2(包含非法數(shù)碼)【例2-1】輸出八進(jìn)制數(shù)。#include<stdio.h>/*在visualC++6.0下調(diào)試通過(guò)*/main(){intx,y; x=012; y=-0177777;

printf("x=%d,y=%d\n",x,y);}大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室512.3常量

十六進(jìn)制整數(shù)的前綴為0x或0X,其數(shù)碼取值范圍為0~9,A~F,a~f。

以下是合法的十六進(jìn)制整數(shù):0X12(十進(jìn)制數(shù)18),-0x12(十進(jìn)制數(shù)-18),0XA1,,0Xffff(十進(jìn)制數(shù)為65535)以下各數(shù)不是合法的十六進(jìn)制整數(shù):6B(無(wú)前綴0x),0x5H(含有非法數(shù)碼H)在整型數(shù)據(jù)的后邊加上后綴“L”或“l(fā)”(小寫字母l)來(lái)表示的該數(shù)據(jù)是一個(gè)長(zhǎng)整型的數(shù)據(jù)。例如:大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室52589L十進(jìn)制012L八進(jìn)制0X17L十六進(jìn)制

十六進(jìn)制整數(shù)32.3.2實(shí)型常量實(shí)型常量也稱為浮點(diǎn)型。有兩種形式:十進(jìn)制小數(shù)形式和指數(shù)形式。十進(jìn)制小數(shù)形式:由數(shù)碼0~9和小數(shù)點(diǎn)組成。如下均為合法的實(shí)數(shù):

0.12,1.23,-2.5145,125.0指數(shù)形式:,由十進(jìn)制數(shù),加上階碼標(biāo)志“e”或“E”及階碼(只能為整數(shù),可以帶符號(hào))組成。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室53如:指數(shù)值1.2E6等于1.2×1065.21E-2等于5.21×10-20.91E8等于0.91×108-1.8E-9等于-1.8×10-92.3.3字符常量字符常量是用西文半角單引號(hào)括起來(lái)的一個(gè)字符。在C語(yǔ)言中,字符常量有以下特點(diǎn):(1)字符常量只能用單引號(hào)“’”括起來(lái),不能用雙引號(hào)或括號(hào)。(2)字符常量只能是單個(gè)字符,不能是字符串。(3)字符可以是字符集中任意字符,但數(shù)字被定義為字符型之后就不能參與數(shù)值運(yùn)算。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室542.3.3字符常量除了以上形式的字符常量外,C語(yǔ)言還允許使用一種特殊形式的字符常量,即轉(zhuǎn)義字符,它以一個(gè)反斜線“\”開頭,后跟一個(gè)或幾個(gè)字符的字符序列。轉(zhuǎn)義字符

轉(zhuǎn)義字符的意義

ASCII代碼

\n換行10\t水平制表9\b退格8\r回車13\f換頁(yè)12\\反斜線符92\’單引號(hào)符39\”雙引號(hào)符34\ddd1~3位八進(jìn)制數(shù)\xhh1~2位十六進(jìn)制數(shù)大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室552.3.3字符常量【例2-2】輸出轉(zhuǎn)義字符?!境绦蚍治雠c解答】#include<stdio.h>/*visualC++6.0*/main(){ printf("abc\tde\rf\tg\n"); printf("1234567812345678\n");/*參照物*/ printf("h\ti\b\bjk"); printf("1234567812345678\n");/*參照物*/}大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室56輸出結(jié)果為:fgde1234567812345678hjk1234567812345678Pressanykeytocontinue2.3.4字符串常量字符串常量是由一對(duì)雙引號(hào)括起的字符序列。例如,“211Project”,“Chinese”,“college”等都是合法的字符串常量。字符串常量和字符常量的數(shù)據(jù)結(jié)構(gòu)不同,其主要區(qū)別如下:(1)字符常量由單引號(hào)括起來(lái),字符串常量由雙引號(hào)括起來(lái);(2)字符常量只能是單個(gè)字符,字符串常量含一個(gè)或多個(gè)字符。

大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室572.3.4字符串常量‘C’在內(nèi)存中占一個(gè)字節(jié),表示為:“C”在內(nèi)存中占兩個(gè)字節(jié),表示為:可以把一個(gè)字符常量賦予一個(gè)字符變量,但是不能把一個(gè)字符串常量賦予一個(gè)字符量。字符串常量占的內(nèi)存字節(jié)數(shù)等于字符串半角字符數(shù)加1,因?yàn)樵谠黾拥囊粋€(gè)字節(jié)中存放字符“\0”(ASCII碼值為0),這是字符串結(jié)束的標(biāo)志。CC\0大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室582.3.5符號(hào)常量與預(yù)處理在C語(yǔ)言中,可以用一個(gè)標(biāo)識(shí)符來(lái)表示一個(gè)常量,稱為符號(hào)常量。符號(hào)常量在使用之前必須先定義,其一般形式為:#define標(biāo)識(shí)符常量其中,#include也是一條預(yù)處理命令(預(yù)處理命令都以“#”開頭),稱為宏定義命令,其功能是把該標(biāo)識(shí)符定義為常量。一經(jīng)定義,以后程序中所有的標(biāo)識(shí)符都代表該常量,如果要修改這個(gè)常量,可以實(shí)現(xiàn)整個(gè)程序中“一改全改”。經(jīng)常將符號(hào)常量的標(biāo)識(shí)符用大寫字母,變量標(biāo)識(shí)符用小寫字母,以示區(qū)別。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室59大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室602.4變量1整型變量

2實(shí)型變量

3字符變量

2.4變量變量是指在程序執(zhí)行過(guò)程中可以被改變和賦值的量。程序中每一個(gè)變量有一個(gè)符合C語(yǔ)言標(biāo)識(shí)符規(guī)范的名稱,在內(nèi)存中占據(jù)一定的存儲(chǔ)單元。變量的使用方法是先聲明(定義變量),后使用。變量名與變量值是有區(qū)別的,變量的“名”是指變量所代表的存儲(chǔ)單元的標(biāo)志,而“值”是指存儲(chǔ)單元的內(nèi)容.例:大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室61A____變量——變量值32.4.1整型變量

如:shortintx;/*變量的聲明,定義整型變量*/ x=10;/*變量賦值*/0000000000001010變量x在內(nèi)存中的地址是0x0013ff70數(shù)據(jù)在內(nèi)存中的二進(jìn)制存儲(chǔ)示意圖

(1)基本型:類型說(shuō)明符為int,在內(nèi)存中占4個(gè)字節(jié)。(2)短整型:類型說(shuō)明符為shortint或short,占2個(gè)字節(jié)。(3)長(zhǎng)整型:類型說(shuō)明符為longint或long,4個(gè)字節(jié)。(4)無(wú)符號(hào)型:類型說(shuō)明符為unsigned,。無(wú)符號(hào)型又可與上述三種類型匹配而構(gòu)成,不能表示負(fù)數(shù):

大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室62整型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式

1整型變量的分類22.4.1整型變量【例2-3】測(cè)試當(dāng)前C編譯環(huán)境下數(shù)據(jù)類型占用的字節(jié)數(shù)?!境绦蚍治雠c解答】#include<stdio.h>main(){printf(“int占%d字節(jié)。\n”,sizeof(int));printf(“l(fā)ongint占%d字節(jié)。\n”,sizeof(longint));printf(“shortint占%d字節(jié)。\n”,sizeof(shortint));printf(“unsignedint占%d字節(jié)。\n”,sizeof(unsignedint));printf(“unsignedlongint占%d字節(jié)。\n”,sizeof(unsignedlongint));printf(“unsignedshortint占%d字節(jié)。\n”,sizeof(unsignedshortint));}大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室63輸出結(jié)果為:int占4字節(jié)。longint占4字節(jié)。shortint占2字節(jié)。unsignedint占4字節(jié)。unsignedlongint占4字節(jié)。unsignedshortint占2字節(jié)。2.4.1整型變量變量定義的一般形式為:類型說(shuō)明符變量名標(biāo)識(shí)符1,變量名標(biāo)識(shí)符2,……; 例如:

intx,y,z; /*x,y,z為整型變量*/ longintn,m; /*n,m為長(zhǎng)整型變量,longint可簡(jiǎn)寫為long*/ unsignedinta,b; /*a,b為無(wú)符號(hào)整型變量,unsignedint可簡(jiǎn)寫為unsigned*/大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室64注意:(1)允許在一次定義相同類型的多個(gè)變量(2)最后一個(gè)變量名之后必須以分號(hào)結(jié)尾。整型變量的定義32.4.2實(shí)型變量

實(shí)型數(shù)據(jù)一般占用4個(gè)字節(jié)(32位)的內(nèi)存空間,按指數(shù)形式存儲(chǔ)。例如,實(shí)數(shù)12.345在內(nèi)存中的存儲(chǔ)形式如圖2-4所示:

圖2-4實(shí)型數(shù)據(jù)的表示+/-,用0,1表示(數(shù)符)0.12345+/-,用0,1表示(階符)2大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室65實(shí)型數(shù)據(jù)在內(nèi)存中的存放形式12.4.2實(shí)型變量

實(shí)型變量分為單精度(float型),長(zhǎng)單精度型(longfloat),雙精度(double型)和長(zhǎng)雙精度(longdouble型)4類,其中float型占用4個(gè)字節(jié),其它數(shù)據(jù)類型均占用8個(gè)字節(jié)。

由于實(shí)型變量由有限的存儲(chǔ)單元組成,因此能提供的數(shù)字是有限的,而在有效位以外的數(shù)字將被舍去。這樣可能會(huì)產(chǎn)生一些誤差,例如,a+20的顯然就應(yīng)該比a大。請(qǐng)分析下面的程序。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室66實(shí)型變量數(shù)據(jù)的分類

2實(shí)型數(shù)據(jù)的舍入誤差32.4.2實(shí)型變量【例2-4】實(shí)型數(shù)據(jù)的舍入誤差。【程序分析與解答】#include<stdio.h>main(){floata,b;a=123456.789e5;/*12345678900*/b=a+20;printf("%f\n",b);}大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室67輸出結(jié)果為:12345678868.0000002.4.3字符變量字符變量用來(lái)存儲(chǔ)字符常量,其說(shuō)明符是char.字符變量的賦值有如下方式:(1)若ch_a是一個(gè)字符變量,ch=ch_a;(2)將字符常量'a'賦值給ch,ch='a';(3)將某個(gè)字符的ASCII碼賦給ch,ch=65,則ch的內(nèi)容為‘A’,但由于整型變量在存儲(chǔ)上均超過(guò)1個(gè)字節(jié),如果將一個(gè)整型變量賦值給一個(gè)字符變量時(shí),只會(huì)將其最低8個(gè)位賦值給ch。

而ch="A"則是錯(cuò)誤的.

大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室68如下字符變量的輸出形式:printf("%c",ch);(2)printf("%d",ch);(3)putchar(ch);

大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室692.5數(shù)據(jù)間的混合運(yùn)算1各數(shù)據(jù)類型轉(zhuǎn)換規(guī)則

2自動(dòng)類型轉(zhuǎn)換與強(qiáng)制轉(zhuǎn)換

2.5.1各數(shù)據(jù)類型轉(zhuǎn)換規(guī)則不同數(shù)據(jù)類型轉(zhuǎn)換規(guī)則

整型、單精度型、雙精度型數(shù)據(jù)可以混合運(yùn)算。字符型數(shù)據(jù)可以與整型通用,因此,整型、實(shí)型(包括單、雙精度)、字符型數(shù)據(jù)間可以混合運(yùn)算。在進(jìn)行運(yùn)算時(shí),不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算。轉(zhuǎn)換的規(guī)則按圖所示

大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室70double←float↑long

↑unsigned↑int←char,short2.5.2自動(dòng)類型轉(zhuǎn)換與強(qiáng)制轉(zhuǎn)換變量的數(shù)據(jù)類型的轉(zhuǎn)換方法有兩種,一種是自動(dòng)轉(zhuǎn)換,一種是強(qiáng)制轉(zhuǎn)換。自動(dòng)轉(zhuǎn)換遵循以下規(guī)則:若參與運(yùn)算量的類型不同,則先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算。轉(zhuǎn)換按照數(shù)據(jù)長(zhǎng)度增加的方向進(jìn)行,以保證運(yùn)算精度不降低。所有的浮點(diǎn)運(yùn)算都是以雙精度進(jìn)行的。char型和short型運(yùn)算時(shí),必須先轉(zhuǎn)換成int型。賦值運(yùn)算中,賦值號(hào)兩邊的數(shù)據(jù)類型不同時(shí),賦值號(hào)右邊量的類型將轉(zhuǎn)換為左邊量的類型。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室71自動(dòng)類型轉(zhuǎn)換12.5數(shù)據(jù)間的混合運(yùn)算其一般形式為:

(類型說(shuō)明符)(表達(dá)式)例如:(float)a/*把a(bǔ)轉(zhuǎn)換為實(shí)型*/(int)(x+y)/*把x+y的結(jié)果轉(zhuǎn)換為整型*/無(wú)論是強(qiáng)制轉(zhuǎn)換或是自動(dòng)轉(zhuǎn)換,都只是為了本次運(yùn)算的需要而對(duì)變量的數(shù)據(jù)長(zhǎng)度進(jìn)行的臨時(shí)性轉(zhuǎn)換,而不改變數(shù)據(jù)說(shuō)明時(shí)對(duì)該變量定義的類型。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室72強(qiáng)制轉(zhuǎn)換

22.5.2自動(dòng)類型轉(zhuǎn)換與強(qiáng)制轉(zhuǎn)換【例2-5】數(shù)據(jù)類型的強(qiáng)制轉(zhuǎn)換?!境绦蚍治雠c解答】#include<stdio.h>main(){floatf=5.75;printf("(int)f=%d,f=%f\n",(int)f,f);}大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室73輸出結(jié)果為:(int)f=5,f=5.7500002.6變量賦初值變量預(yù)先設(shè)置初值可以有如下幾種情況:

(1)對(duì)各變量分別賦初值inta=3;

floatpi=3.14159;

charch='a';

(2)定義變量時(shí)對(duì)部分變量賦值inta,b,c=5;(3)對(duì)幾個(gè)變量賦相同的初值如:若對(duì)幾個(gè)變量賦予初值3,應(yīng)寫成inta=3,b=3,c=3;大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室742.6變量賦初值強(qiáng)制類型轉(zhuǎn)換運(yùn)算符()

自增、自減運(yùn)算符如:++i,--i(在變量i使用之前,先使i的值加(減)1)i++,i--(在變量i使用之后,使i的值加(減)1)使用自增、自減運(yùn)算符需要注意的若干問(wèn)題:++或--運(yùn)算符,只能用于變量,而不能用于常量或表達(dá)式。++和--的結(jié)合方向是“自右至左”。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室75大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室762.7運(yùn)算符和表達(dá)式1C語(yǔ)言運(yùn)算符簡(jiǎn)介與表達(dá)式的類型

2表達(dá)式的求值規(guī)則

3算術(shù)運(yùn)算符和算術(shù)表達(dá)式

4賦值運(yùn)算符和賦值表達(dá)式

5逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式

6關(guān)系運(yùn)算符和關(guān)系表達(dá)式

7邏輯運(yùn)算符和邏輯表達(dá)式

2.7.1C語(yǔ)言運(yùn)算符與表達(dá)式的類型C的運(yùn)算符有以下幾類:(1)算術(shù)運(yùn)算符:+

-

*

/

%(2)關(guān)系運(yùn)算符:>

<

==

>=

<=!=(3)邏輯運(yùn)算符:!

&&

||(4)位運(yùn)算符:<<

>>

|

&(5)賦值運(yùn)算符:=(6)條件運(yùn)算符:?

:(7)逗號(hào)運(yùn)算符:,C語(yǔ)言表達(dá)式的類型賦值表達(dá)式;算術(shù)表達(dá)式;關(guān)系表達(dá)式;邏輯表達(dá)式;條件表達(dá)式;逗號(hào)表達(dá)式大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室772.7.2表達(dá)式的求值規(guī)則這些運(yùn)算符在C語(yǔ)言中規(guī)定了優(yōu)先級(jí)和結(jié)合性,在求值時(shí)先按運(yùn)算符的優(yōu)先級(jí)別高低次序執(zhí)行,如果某個(gè)運(yùn)算對(duì)象左右兩側(cè)的運(yùn)算符的優(yōu)先級(jí)別相同,則按規(guī)定的“結(jié)合方向”處理,其中算術(shù)運(yùn)算符的結(jié)合方向?yàn)椤白宰笾劣摇保鴮?duì)于賦值運(yùn)算符則采用“自右至左”的結(jié)合方向。有關(guān)運(yùn)算符的優(yōu)先級(jí)別和結(jié)合性參看附錄。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室782.7.3算術(shù)運(yùn)算符和算術(shù)表達(dá)式(1)+(加法運(yùn)算符,或正值運(yùn)算符。如3+5、+3)(2)-(減法運(yùn)算符,或負(fù)值運(yùn)算符。如5-2、-3)(3)*(乘法運(yùn)算符。如3*5)(4)/(除法運(yùn)算符。如5/3,5.0/3)(5)%(模運(yùn)算符,又稱求余運(yùn)算符,%兩側(cè)均應(yīng)為整型數(shù)據(jù),如7%4的值為3)。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室79基本的算術(shù)運(yùn)算符12.7.3算術(shù)運(yùn)算符和算術(shù)表達(dá)式(8)指針運(yùn)算符:*&(9)求字節(jié)數(shù)運(yùn)算符:sizeof(10)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符:(類型)(11)分量運(yùn)算符:.

->(12)下標(biāo)運(yùn)算符:[](13)其他:如函數(shù)調(diào)用運(yùn)算符()大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室802.7.3算術(shù)運(yùn)算符和算術(shù)表達(dá)式++i,--i(在變量i使用之前,先使i的值加(減)1)i++,i--(在變量i使用之后,使i的值加(減)1)使用自增、自減運(yùn)算符需要注意的若干問(wèn)題:(1)++或--運(yùn)算符,只能用于變量,而不能用于常量或表達(dá)式。(2)++和--的結(jié)合方向是“自右至左”。

大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室81算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性2強(qiáng)制類型轉(zhuǎn)換運(yùn)算符()3自增、自減運(yùn)算符42.7.4賦值運(yùn)算符和賦值表達(dá)式賦值符號(hào)“=”就是賦值運(yùn)算符使用“=”連接的式子稱為賦值表達(dá)式,其一般形式為:變量=常量、變量或表達(dá)式賦值運(yùn)算符具有右結(jié)合性。如:

a=b=c=3大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室82賦值運(yùn)算符和賦值表達(dá)式12.7.4賦值運(yùn)算符和賦值表達(dá)式(1)將實(shí)型數(shù)據(jù)(包括單、雙精度)賦給整型變量時(shí),舍棄實(shí)數(shù)的小數(shù)部分。(2)將整型數(shù)據(jù)賦給單、雙精度變量時(shí),數(shù)值不變,但以浮點(diǎn)數(shù)形式存儲(chǔ)到變量中。(3)將一個(gè)double型數(shù)據(jù)賦給float變量時(shí),截取其前面7位有效數(shù)字,(4)將一個(gè)float型數(shù)據(jù)賦給double變量時(shí),數(shù)值不變,有效位數(shù)擴(kuò)展到16位。(5)字符型數(shù)據(jù)賦給整型變量時(shí),將字符數(shù)據(jù)(8位)放到整型變量低8位中。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室83類型轉(zhuǎn)換

22.7運(yùn)算符和表達(dá)式在賦值符“=”之前加上其他運(yùn)算符可以構(gòu)成復(fù)合的運(yùn)算符。如,+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=。如:a+=2/*等價(jià)于a=a+2*/x*=y+8/*等價(jià)于x=x*(y+8)*/由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來(lái)的式子稱為“賦值表達(dá)式”。它的一般形式為:變量賦值運(yùn)算符表達(dá)式大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室84復(fù)合的賦值運(yùn)算符3賦值表達(dá)式42.7.5逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式逗號(hào)運(yùn)算符是一種特殊的運(yùn)算,用以連接兩個(gè)表達(dá)式,又稱為“順序求值運(yùn)算符”。逗號(hào)表達(dá)式的一般形式為:表達(dá)式1,表達(dá)式2,……,表達(dá)式n

例如x=2*5,x*3,此時(shí)整個(gè)逗號(hào)表達(dá)式的值為30。注:賦值運(yùn)算符的優(yōu)先級(jí)別高于逗號(hào)運(yùn)算符大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室852.7.6關(guān)系運(yùn)算符和關(guān)系表達(dá)式1.關(guān)系運(yùn)算符在C語(yǔ)言中有以下關(guān)系運(yùn)算符:(1)<小于(2)<=小于或等于(3)>大于(4)>=大于或等于(5)==等于(6)!=不等于2.關(guān)系表達(dá)式關(guān)系表達(dá)式的一般形式為:表達(dá)式1關(guān)系運(yùn)算符表達(dá)式2大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室862.7.7邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符及其優(yōu)先級(jí)C語(yǔ)言中提供了三種邏輯運(yùn)算符:(1)&&與運(yùn)算(2)||或運(yùn)算(3)!非運(yùn)算大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室87高2.7運(yùn)算符和表達(dá)式【例2-6】調(diào)試以下程序,理解邏輯表達(dá)式。#include<stdio.h>main(){charc='k';inti=1,j=2,k=3;floatx=3e+5,y=0.85;printf("%d,%d\n",!x*!y,!!!x);printf("%d,%d\n",x||i&&j-3,i<j&&x<y);printf("%d,%d\n",i==5&&c&&(j=8),x+y||i+j+k);}大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室88輸出結(jié)果為:0,01,00,12.7.8條件運(yùn)算符和條件表達(dá)式條件表達(dá)式的一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3

求值規(guī)則:若表達(dá)式1的值為真,則表達(dá)式2的值為條件表達(dá)式的值,否則以表達(dá)式3的值作為整個(gè)條件表達(dá)式的值。(1)條件運(yùn)算符的運(yùn)算優(yōu)先級(jí)低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符,但高于賦值運(yùn)算符。如:

max=(x>y)?x:y

(2)條件運(yùn)算符“?”和“:”是一對(duì)運(yùn)算符,不能分開單獨(dú)使用。(3)條件運(yùn)算符的結(jié)合性是自右至左。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室89例如:a>b?a:c>d?c:d應(yīng)理解為a>b?a:(c>d?c:d)2.7運(yùn)算符和表達(dá)式【例2-7】調(diào)試以下程序,理解條件表達(dá)式。#include<stdio.h>main(){intx,y,max;printf("g請(qǐng)輸入兩個(gè)整數(shù),x,y:");scanf("%d,%d",&x,&y);printf("最大值=%d\n",x>y?x:y);}大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室90輸出結(jié)果為:請(qǐng)輸入兩個(gè)整數(shù),x,y:3,5最大值=52.7.9位運(yùn)算符和位運(yùn)算位運(yùn)算符和位運(yùn)算分別是:(1)&按位與運(yùn)算符(2)|按位或運(yùn)算符(3)^按位異或運(yùn)算符(4)~取反運(yùn)算符(5)<<左移運(yùn)算符(6)>>右移運(yùn)算符大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室912.7運(yùn)算符和表達(dá)式若變量A的值為0xAA(10101010),B的值為0x55(01010101),則:(1)A&B=0x00(00000000b)按位與(2)A|B=0xFF(11111111b)按位或(3)A^B=0xFF(11111111b)按位異或(4)~A=0x55(01010101b)取反(5)A<<1=0x54(01010100b)左移(6)A>>1=0x2A(00101010b)右移以上運(yùn)算符在第10章將會(huì)進(jìn)行詳細(xì)講解。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室92大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室93本章內(nèi)容完結(jié)!第3章

順序結(jié)構(gòu)程序設(shè)計(jì)與編譯預(yù)處理

網(wǎng)絡(luò)信息中心教研室主要內(nèi)容大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室953.2賦值語(yǔ)句

3.3輸入與輸出

3.4常用函數(shù)舉例

3.5編譯預(yù)處理

3.1C語(yǔ)句概述

3.6順序結(jié)構(gòu)程序設(shè)計(jì)舉例

3.1C語(yǔ)句概述C語(yǔ)言的語(yǔ)句用來(lái)向計(jì)算機(jī)系統(tǒng)發(fā)出指令,單獨(dú)的一條語(yǔ)句或者是復(fù)合語(yǔ)句完成特定的操作,這些操作的不同組合,用來(lái)實(shí)現(xiàn)一系列數(shù)據(jù)處理功能。C語(yǔ)言程序是一個(gè)由main()體內(nèi)的若干變量的聲明、賦值等操作以及若干函數(shù)組成的,沒(méi)有編譯過(guò)的程序稱為源程序。源程序的某些行稱為語(yǔ)句,每個(gè)語(yǔ)句的最后有一個(gè)半角分號(hào)“;”,用來(lái)表示語(yǔ)句的結(jié)束。用“;”隔開的語(yǔ)句,可以寫在同一行,也可以寫成幾行,但這些語(yǔ)句必須包含在函數(shù)體中。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室963.1C語(yǔ)句概述C語(yǔ)言的語(yǔ)句C語(yǔ)言的語(yǔ)句可以分為5類:表達(dá)式語(yǔ)句、函數(shù)調(diào)用語(yǔ)句、控制語(yǔ)句、復(fù)合語(yǔ)句和空語(yǔ)句。1.表達(dá)式語(yǔ)句

例如:

m=2;score=math+English; i++; x=10,y=12;2.函數(shù)調(diào)用語(yǔ)句

其一般形式為:函數(shù)名(實(shí)際參數(shù)表);大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室973.1C語(yǔ)句概述3.控制語(yǔ)句(1)條件判斷語(yǔ)句:

if()...else.../*分支語(yǔ)句*/ switch(表達(dá)式/變量).../*多分支語(yǔ)句*/(2)循環(huán)語(yǔ)句:

do...while(條件)/*“先執(zhí)行,后判斷”的“當(dāng)”型循環(huán)*/ while(條件).../*“先判斷,后執(zhí)行”的“當(dāng)”型循環(huán)*/ for(條件).../*for循環(huán),循環(huán)次數(shù)相對(duì)確定下使用*/(3)流程轉(zhuǎn)向語(yǔ)句

goto/*強(qiáng)制程序跳轉(zhuǎn),不推薦使用*/ break/*中止執(zhí)行switch或者循環(huán)*/ continue/*結(jié)束循環(huán)體中的其中一趟*/ return/*從函數(shù)中返回*/大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室983.1C語(yǔ)句概述4.復(fù)合語(yǔ)句

把多個(gè)語(yǔ)句用{語(yǔ)句1;語(yǔ)句2;...語(yǔ)句n}這種形式構(gòu)成一個(gè)比較復(fù)雜的語(yǔ)句稱為復(fù)合語(yǔ)句,又稱為語(yǔ)句塊。如兩個(gè)變量之間數(shù)據(jù)的交換。此時(shí),應(yīng)把復(fù)合語(yǔ)句看成一個(gè)單條語(yǔ)句。例如:if(a>b){ temp=a; a=b; b=temp;}

大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室993.1C語(yǔ)句概述5.空語(yǔ)句只有“;”號(hào)的語(yǔ)句稱為空語(yǔ)句.如:for(i=0;i<32768;i++) ;/*空語(yǔ)句,注意它的意義*/大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室1003.2賦值語(yǔ)句賦值語(yǔ)句的構(gòu)成形式賦值語(yǔ)句是由賦值表達(dá)式再加上“;”構(gòu)成,其一般形式為:

變量=表達(dá)式;例如:

sum=0; x=y+z; a=b=c=10;連續(xù)賦值與賦值運(yùn)算符的右結(jié)合性而賦值語(yǔ)句允許給多個(gè)變量連續(xù)賦相同的值,例如: inta,b,c;/*必須在變量聲明處定義a,b,c三個(gè)變量*/ a=b=c=3;/*連續(xù)賦值*/大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室1013.3輸入與輸出

輸入與輸出是以計(jì)算機(jī)為主體而言的。信息從計(jì)算機(jī)的外部輸入設(shè)備(鍵盤、鼠標(biāo)、移動(dòng)存儲(chǔ)設(shè)備等)向計(jì)算機(jī)輸入數(shù)據(jù)稱為輸入,計(jì)算機(jī)向外部設(shè)備(顯示器、打印機(jī)、文件設(shè)備等)輸出數(shù)據(jù)稱為輸出。在C語(yǔ)言中,沒(méi)有輸入/輸出語(yǔ)句,所有數(shù)據(jù)的輸入和輸出功能是通過(guò)一組庫(kù)函數(shù)來(lái)實(shí)現(xiàn)的,在調(diào)用這些輸入或輸出庫(kù)函數(shù)的時(shí)候,需要使用預(yù)編譯命令#include將有關(guān)“頭文件”包含到源文件中,這些“頭文件”的文件名格式為*.h。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室1023.4輸入與輸出使用標(biāo)準(zhǔn)輸入/輸出庫(kù)函數(shù)時(shí),要在main()函數(shù)所在源文件中包含“stdio.h”文件,因此,源文件的開頭經(jīng)常有以下預(yù)編譯命令:

#include<stdio.h>或

#include"stdio.h“本小節(jié)主要介紹單個(gè)字符的輸入和輸出,格式輸入和輸出,并簡(jiǎn)單介紹一下文件操作中的輸入和輸出,這些函數(shù)分別是getchar()、putchar()、printf()和fscanf()、fprintf()。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室103大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室1043.4輸入與輸出1字符數(shù)據(jù)的輸入與輸出

2格式輸入與輸出

3文件操作中的輸入與輸出簡(jiǎn)介

3.4.1字符數(shù)據(jù)的輸入與輸出函數(shù)的一般調(diào)用形式為:

putchar(ch);ch必須是一個(gè)整型變量或一個(gè)字符型變量,ch還可以是轉(zhuǎn)義字符常量。例如:

putchar('A');/*輸出大寫字母A*/ putchar(97);/*輸出小寫字母a*/ putchar(ch);/*輸出字符變量ch的值*/ putchar(\101);/*輸出大寫字母A*/ putchar(‘\n’);/*換行,(執(zhí)行控制功能,*/大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室105單個(gè)字符輸出函數(shù)putchar13.4.1字符數(shù)據(jù)的輸入與輸出【程序分析與解答】#include<stdio.h>main(){ inti_ch;/*定義整型變量i_ch,這個(gè)變量用i代表整型,*/ i_ch=65;/*65是大寫字母'A'的ASCII碼*/ putchar(i_ch); putchar('\n'); i_ch=97;/*97是小寫字母'a'的ASCII碼*/ putchar(i_ch); putchar('\n');}大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室1063.4.1字符數(shù)據(jù)的輸入與輸出一般調(diào)用形式為:

charch; ch=getchar();【程序分析與解答】#include<stdio.h>main(){ charch; printf("在此輸入任意一個(gè)字符并回車:\n"); ch=getchar(); putchar(ch);/*回顯剛才的輸入*/ putchar('\n');}利用getchar(),手動(dòng)控制程序暫停執(zhí)行。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室107單個(gè)字符輸入函數(shù)getchar()

23.4.2格式輸入與輸出

printf和scanf函數(shù)可以一次輸出或者輸入若干個(gè)任意類型數(shù)據(jù),有效解決輸入復(fù)雜數(shù)據(jù)的問(wèn)題,使用時(shí),可以不包含頭文件stdio.h。

輸出函數(shù)printf格式:printf("格式控制字符串",輸出表列)①printf()函數(shù)參數(shù)的第一部分,由格式字符串和普通字符組成,格式字符串是以“%”開頭,在輸出表列中,必須有一個(gè)變量與這個(gè)格式字符相對(duì)應(yīng);普通字符在輸出時(shí)按原樣輸出.大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室108格式輸出函數(shù)printf()13.4.2格式輸入與輸出例如:

printf(“總和=%d,平均值=%5.2f\n",sum,average);

格式字符串輸出表列【程序分析與解答】#include<stdio.h>main(){ intch1=77,ch2=78; printf("ch1=%d,ch2=%d\n",ch1,ch2); printf("ch1=%c,ch2=%c\n",ch1,ch2); printf("%c%c\n",ch1,ch2);}大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室1093.4.2格式輸入與輸出

格式控制是通過(guò)格式字符串來(lái)實(shí)現(xiàn)的,格式字符串的一般形式為:%[標(biāo)志][輸出最小寬度][.精度][長(zhǎng)度修飾符]類型

其中,方括號(hào)[]內(nèi)的項(xiàng)可選,也可以省略,下面就介紹以上6項(xiàng)的使用方法: ①%:格式字符串的起始符號(hào),不可省。 ②標(biāo)志:標(biāo)志字符為+、-、#、空格4種,其意義如下所示:大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室1103.4.2格式輸入與輸出標(biāo)志為+時(shí),輸出值為正時(shí)在值前補(bǔ)“+”號(hào),為負(fù)時(shí)值前補(bǔ)“-”號(hào)

標(biāo)志為-時(shí),輸出結(jié)果左對(duì)齊,右邊補(bǔ)空格;缺省則輸出結(jié)果右對(duì)齊,左邊填空格或零

標(biāo)志為#時(shí),輸出8進(jìn)制數(shù)時(shí)加前綴0;輸出16進(jìn)制數(shù)時(shí)加前綴0x。③輸出最小寬度:通常用10進(jìn)制整數(shù)來(lái)表示輸出數(shù)據(jù)項(xiàng)的最小位數(shù),若實(shí)際位數(shù)多于指定位數(shù),則按實(shí)際位數(shù)輸出,若實(shí)際寬度少于指定位數(shù),則用空格或0填補(bǔ)。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室1113.4.2格式輸入與輸出④精度:精度格式以“.”開頭,后跟10進(jìn)制整數(shù),用來(lái)指示保留幾位小數(shù)。⑤長(zhǎng)度修飾符:常用的長(zhǎng)度修改符為h、l兩種,英文字母h表示輸出項(xiàng)按短整型數(shù)據(jù)輸出,英文字母l表示輸出項(xiàng)按長(zhǎng)整型數(shù)據(jù)輸出。 ⑥類型:類型字符用來(lái)表示待輸出數(shù)據(jù)的類型,必須用半角英文字符。格式字符d(或i)ox(或X);u;c;s;f;lf;e(或E);g(或G);%%(輸出一個(gè)%符號(hào))。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室1123.4.2格式輸入與輸出【例3-1】數(shù)據(jù)在內(nèi)存中的存儲(chǔ)與8進(jìn)制輸出。【程序分析與解答】#include<stdio.h>main(){ unsignedshortinta=-1;

printf("%d,%o\n",a,a);}大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室113輸出結(jié)果為:65535,1777773.4.2格式輸入與輸出

輸入函數(shù)scanf格式:scanf("格式控制字符串",地址表列)地址表列中給出各變量的地址,地址是由地址運(yùn)算符“&”后跟變量組成,但對(duì)字符號(hào)串的輸入例外。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室114格式輸入函數(shù)scanf()23.4.3文件操作中的輸入與輸出fprintf(文件指針,格式字符串,輸出表列);fscanf(文件指針,格式字符串,輸出表列);大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室1153.5常用函數(shù)舉例1.求絕對(duì)值函數(shù)

(1)intabs(intx);(2)doublefabs(doublex);

2.求自然對(duì)數(shù)值函數(shù)

doublelog(doublex);

3.冪函數(shù)doublepow(doublex,doubley);

4.求平方根函數(shù)

doublesqrt(doublex);

5.產(chǎn)生隨機(jī)數(shù)函數(shù)intrand(void);

大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室1163.5常用函數(shù)舉例【例3-2】產(chǎn)生10~100間的隨機(jī)整數(shù),并輸出。#include<stdio.h>#include<math.h>#include<time.h>main(){inta,b;srand(time(0));/*時(shí)間作為隨便數(shù)種子,每運(yùn)行一次,隨機(jī)值均不同*/a=rand()%91+10;/*rand()返回隨機(jī)整數(shù),該數(shù)對(duì)91求余,數(shù)據(jù)范圍是0-90*/b=rand()%91+10;/*因?yàn)閞and()是隨機(jī)的,求余結(jié)果亦隨機(jī)*/printf("a=%d,b=%d\n",a,b);}大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室117大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室1183.6編譯預(yù)處理1宏定義

2文件包含

3.6.1宏定義

C語(yǔ)言中常用的預(yù)處理功能有兩種,分別是宏定義和文件包含。合理使用編譯預(yù)處理功能編寫程序,便于程序閱讀、修改、移植和調(diào)試,也便于開發(fā)小組協(xié)同開發(fā)程序。C語(yǔ)言中編譯預(yù)處理命令以“#define”開頭,且每行末尾不能加分號(hào)。宏定義

在C源程序中允許用一個(gè)標(biāo)識(shí)符來(lái)表示一個(gè)字符串,稱為“宏”。在C語(yǔ)言中,“宏”分為有參數(shù)和無(wú)參數(shù)兩種。下面分別討論這兩種“宏”的定義和調(diào)用。

大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室1193.6編譯預(yù)處理不帶參數(shù)的宏的一般定義方式為:

#define標(biāo)識(shí)符字符串 說(shuō)明:(1) “#define”為宏定義的關(guān)鍵字,“標(biāo)識(shí)符”表示定義的宏名,“標(biāo)識(shí)符”用大寫字母,以便區(qū)分于變量名或函數(shù)名,也可以用小寫字母;(2)宏定義的末尾不可以";"作為結(jié)束,如果不小心加了分號(hào),會(huì)將分號(hào)一起替換;(3)“字符串”是一個(gè)字符系列,對(duì)于整型,實(shí)型常量可直接書寫,對(duì)于字符型常量,需要添加單引號(hào),對(duì)于字符串常量,需要添加雙引號(hào)?!白址边€可以是一個(gè)表達(dá)式。大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室120不帶參數(shù)的宏定義13.6編譯預(yù)處理【例3-14】宏定義中的數(shù)據(jù)格式#defineCH'c'#defineSTRING"Programming"#defineR1/*這是數(shù)字1*/#definePI3.14159#defineL2*PI*R#defineSPI*R*R#include<stdio.h>main(){printf("%c,%s\n",CH,STRING);printf("L=%f,S=%f\n",L,S);}大學(xué)計(jì)算機(jī)基礎(chǔ)網(wǎng)絡(luò)信息中心教研室121輸出結(jié)果:c,ProgrammingL=6.283180,S=3.1415903.6編譯預(yù)處理帶參數(shù)的宏定義不是進(jìn)行簡(jiǎn)單的字符串替換,還要進(jìn)行參數(shù)替換。其定義的一般形式為#define宏名(參數(shù)表)字符串字符串中包含在括弧中所指定的參數(shù)。如:#defineS(a,b)a*barea=S(3,2);定義矩形面積S,a和b是邊長(zhǎng)。在程序中用了S(3,2),把3、2分別代替宏定義中的形式參數(shù)a、b,即用3、2代替S(3,2)。因此賦值語(yǔ)句展開為area=3*2;大學(xué)計(jì)算

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論