C程序設(shè)計(jì)課件_第1頁
C程序設(shè)計(jì)課件_第2頁
C程序設(shè)計(jì)課件_第3頁
C程序設(shè)計(jì)課件_第4頁
C程序設(shè)計(jì)課件_第5頁
已閱讀5頁,還剩341頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課程內(nèi)容:課程內(nèi)容:nC語言程序設(shè)計(jì)語言程序設(shè)計(jì)任課班級(jí):電任課班級(jí):電4-4、5課時(shí)安排:課時(shí)安排:n理論講解理論講解48學(xué)時(shí)學(xué)時(shí)n上機(jī)實(shí)驗(yàn)上機(jī)實(shí)驗(yàn)24學(xué)時(shí)學(xué)時(shí)教材:教材:C程序設(shè)計(jì)程序設(shè)計(jì) 譚浩強(qiáng)譚浩強(qiáng) 清華大學(xué)出版社清華大學(xué)出版社C程序設(shè)計(jì)題解與上機(jī)指導(dǎo)程序設(shè)計(jì)題解與上機(jī)指導(dǎo)第1章 算法第2章 C語言概述第3章 數(shù)據(jù)類型、運(yùn)算符與表達(dá)式第4章 順序程序設(shè)計(jì)第5章 選擇結(jié)構(gòu)程序設(shè)計(jì)第6章 循環(huán)控制 第10章 指針第7章 數(shù)組 第11章 結(jié)構(gòu)體與共用體第8章 函數(shù) 第12章 位運(yùn)算第9章 預(yù)處理命令 第13章 文件概念概念:為了解決一個(gè)問題而采取的方法和步為了解決一個(gè)問題而采取的方法和步驟。

2、(是解決一個(gè)問題方法的精確描述)驟。(是解決一個(gè)問題方法的精確描述)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu) + 算法算法 = 程序程序程序程序=算法算法 + 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu) + 設(shè)計(jì)方法設(shè)計(jì)方法 + 語言工具語言工具 數(shù)值運(yùn)算數(shù)值運(yùn)算計(jì)算機(jī)算法:計(jì)算機(jī)算法: 非數(shù)值運(yùn)算非數(shù)值運(yùn)算 例例11:有:有A A、B B兩杯,分別盛有酒和醋,要求兩杯,分別盛有酒和醋,要求它們互換(需借一空杯它們互換(需借一空杯C C) ABC酒酒醋醋酒酒 A-C A-C 酒酒 B-A B-A 醋醋 C-B C-B 酒酒這就是以后經(jīng)常會(huì)用到的兩變量值交換的算法這就是以后經(jīng)常會(huì)用到的兩變量值交換的算法例例2:從十個(gè)數(shù)中挑選出最大的數(shù)來。:從十

3、個(gè)數(shù)中挑選出最大的數(shù)來。 選任意一數(shù)放入選任意一數(shù)放入A中,設(shè)一計(jì)數(shù)器中,設(shè)一計(jì)數(shù)器N=0(表示比較的次數(shù))表示比較的次數(shù)) 將下一數(shù)與將下一數(shù)與A相比,大者放在相比,大者放在A中,且中,且N=N+1 此時(shí)須判斷此時(shí)須判斷N是否是否n,則停則停止循環(huán),此時(shí)止循環(huán),此時(shí)S中值為中值為n!。 思考:如果題目改成奇數(shù)相乘,應(yīng)如何改動(dòng)程思考:如果題目改成奇數(shù)相乘,應(yīng)如何改動(dòng)程序?序?若將的終止條件改成若將的終止條件改成TC B=A C=B 結(jié)束結(jié)束開始開始輸入數(shù)輸入數(shù)AN=0輸入數(shù)輸入數(shù)BAB?B=AN=N+1NA N=N+1 直到直到N9為止為止 打印打印A五、N-S結(jié)構(gòu)流程圖結(jié)構(gòu)流程圖 A A B

4、 B成立成立 P P 不成立不成立 A BA B當(dāng)當(dāng)P1P1 A A A A直到直到P2P2順序結(jié)構(gòu)順序結(jié)構(gòu)選擇結(jié)構(gòu)選擇結(jié)構(gòu)當(dāng)循環(huán)當(dāng)循環(huán)直到循環(huán)直到循環(huán) A=C B=A C=B 輸入輸入N 1=T 1=S ST=S T+1=T 直到直到TN 輸出輸出S C語言是當(dāng)今國際上最流行的、最有發(fā)展前途語言是當(dāng)今國際上最流行的、最有發(fā)展前途的計(jì)算機(jī)高級(jí)語言,它集計(jì)算與軟件開發(fā)的計(jì)算機(jī)高級(jí)語言,它集計(jì)算與軟件開發(fā)于一身,即有高級(jí)語言的可讀性,又有低于一身,即有高級(jí)語言的可讀性,又有低級(jí)匯編語言的軟件開發(fā)功能,是一種編譯級(jí)匯編語言的軟件開發(fā)功能,是一種編譯語言語言。盡管當(dāng)初盡管當(dāng)初C語言是為編寫語言是為編寫

5、UNIX操作系統(tǒng)而設(shè)操作系統(tǒng)而設(shè)計(jì)的,但卻不依賴于計(jì)的,但卻不依賴于UNIX操作系統(tǒng),可操作系統(tǒng),可在多種操作系統(tǒng)的環(huán)境下運(yùn)行在多種操作系統(tǒng)的環(huán)境下運(yùn)行 。C語言的發(fā)展語言的發(fā)展年代年代 語言名稱語言名稱 改進(jìn)功能改進(jìn)功能 設(shè)計(jì)人或國家地址設(shè)計(jì)人或國家地址1960ALGOL 面向問題(遠(yuǎn)離硬件)面向問題(遠(yuǎn)離硬件)1963CPL 部分驅(qū)動(dòng)硬件部分驅(qū)動(dòng)硬件 英國劍橋大學(xué)英國劍橋大學(xué)1967BCPL 直接驅(qū)動(dòng)硬件,但太簡單直接驅(qū)動(dòng)硬件,但太簡單 英國劍橋大學(xué)英國劍橋大學(xué)1970B 簡單、接近硬件,簡單、接近硬件, 寫出了第一個(gè)寫出了第一個(gè)UNIX 美國貝爾實(shí)驗(yàn)室美國貝爾實(shí)驗(yàn)室1972-1973 C

6、 直接驅(qū)動(dòng)硬件,功能強(qiáng)大直接驅(qū)動(dòng)硬件,功能強(qiáng)大 美國貝爾實(shí)驗(yàn)室美國貝爾實(shí)驗(yàn)室C+ 面向?qū)ο竺嫦驅(qū)ο骎C 可視化編程可視化編程C# 基于基于.net平臺(tái)上快速開發(fā)大量應(yīng)用程序平臺(tái)上快速開發(fā)大量應(yīng)用程序 1、語言簡潔、緊湊、使用方便、靈活(、語言簡潔、緊湊、使用方便、靈活(32個(gè)關(guān)鍵字、個(gè)關(guān)鍵字、9種控制語句)種控制語句)2、運(yùn)算符十分豐富(、運(yùn)算符十分豐富(34個(gè))個(gè))3、數(shù)據(jù)結(jié)構(gòu)豐富、數(shù)據(jù)結(jié)構(gòu)豐富4、有結(jié)構(gòu)化控制語句、有結(jié)構(gòu)化控制語句5、語法限止不太嚴(yán)格,程序設(shè)計(jì)自由度大語法限止不太嚴(yán)格,程序設(shè)計(jì)自由度大6、允許直接訪問物理地址、位操作(位操作、可直、允許直接訪問物理地址、位操作(位操作、可直

7、接寫匯編語句,加接寫匯編語句,加asm做前綴)做前綴)7 、 生 成 目 標(biāo) 代 碼 質(zhì) 量 高 , 程 序 執(zhí) 行 效 率 高、 生 成 目 標(biāo) 代 碼 質(zhì) 量 高 , 程 序 執(zhí) 行 效 率 高(.exe、.com效率高)效率高)8、可移植性好(對于機(jī)器型號(hào)、操作系統(tǒng)要求不高,、可移植性好(對于機(jī)器型號(hào)、操作系統(tǒng)要求不高,可轉(zhuǎn)換成其它語言)可轉(zhuǎn)換成其它語言) 例例1:輸出一句話:輸出一句話 main( ) printf(“this is a C program.n”); 例例2:計(jì)算:計(jì)算123+456的值,并輸出的值,并輸出 main( ) int a,b,sum; a=123;b=45

8、6; sum=a+b; printf(“sum is %dn”,sum);例例3:比較兩個(gè)數(shù)的大小,輸出大的值比較兩個(gè)數(shù)的大小,輸出大的值 mian( ) int a,b,c; scanf(“%d,%d”,&a,&b); c=max(a,b); printf(“max=%d”,c); int max(int x,int y) int z; if (xy) z=x; else z=y; return(z);對子函數(shù)對子函數(shù)max()()的調(diào)用的調(diào)用max()()函函數(shù)的定義數(shù)的定義C語言的規(guī)則語言的規(guī)則1、C程序由函數(shù)構(gòu)成。程序由函數(shù)構(gòu)成。其中至少有一個(gè)函數(shù)其中至少有一個(gè)函數(shù)ma

9、in( )可可使用庫函數(shù)(使用庫函數(shù)(printf、scanf)也可以自定義函數(shù)也可以自定義函數(shù)(max)2、函數(shù)的兩個(gè)組成部分:說明部分、函數(shù)體、函數(shù)的兩個(gè)組成部分:說明部分、函數(shù)體說明部分:包括函數(shù)類型、名字、屬性、形參、形說明部分:包括函數(shù)類型、名字、屬性、形參、形參類型參類型函數(shù)體:即函數(shù)體:即 中部分,包括變量定義、執(zhí)行部分中部分,包括變量定義、執(zhí)行部分3、C程序總是從程序總是從main函數(shù)開始執(zhí)行,不論其位置函數(shù)開始執(zhí)行,不論其位置4、書寫格式自由,一行可寫幾個(gè)語句,一個(gè)語句可寫、書寫格式自由,一行可寫幾個(gè)語句,一個(gè)語句可寫在幾行上。在幾行上。5、每個(gè)語句間用;分隔開,最后一句也須

10、寫上;、每個(gè)語句間用;分隔開,最后一句也須寫上;6、輸入輸出也用庫函數(shù)、輸入輸出也用庫函數(shù)printf( )、scanf( )7、/*/表示注釋信息表示注釋信息 一、步驟一、步驟1、輸入與編輯源程序、輸入與編輯源程序2、編譯、編譯3、連接庫函數(shù)、連接庫函數(shù)4、運(yùn)行目標(biāo)程序、運(yùn)行目標(biāo)程序二、二、Turbo C2.0主要工作文件主要工作文件Tc.exe 集成編譯器集成編譯器Tcconfig.tc環(huán)境設(shè)置文件環(huán)境設(shè)置文件*.H頭文件頭文件*.BGI圖形顯示驅(qū)動(dòng)程序圖形顯示驅(qū)動(dòng)程序*.LIB 庫文件庫文件*.OBJ模式啟動(dòng)代碼文件模式啟動(dòng)代碼文件具體步驟見實(shí)際操作具體步驟見實(shí)際操作 整型(整型(int

11、) 整型整型 短整型(短整型(short) 長整型(長整型(long) 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 無符號(hào)整型(無符號(hào)整型(unsigned int) 字符型(字符型(char) 實(shí)型實(shí)型 單精度型(單精度型(float)數(shù)據(jù)類型數(shù)據(jù)類型 雙精度型(雙精度型(double) 枚舉型枚舉型 數(shù)組類型數(shù)組類型 構(gòu)造類型構(gòu)造類型 結(jié)構(gòu)體類型結(jié)構(gòu)體類型 共同體類型共同體類型 指針類型指針類型 空類型空類型一、常量:在程序運(yùn)行的過程中,其值不能被改變一、常量:在程序運(yùn)行的過程中,其值不能被改變的量稱為常量。的量稱為常量。 整型常量:整型常量:12、0、-8 實(shí)型常量:實(shí)型常量:4.6、1.23、-0.9

12、字符型常量:字符型常量:a、B、#、3、= 符號(hào)常量:符號(hào)常量:#define PRICE 30 例例3.1 一般情況下這種符號(hào)常量使用大寫字母表示!一般情況下這種符號(hào)常量使用大寫字母表示!二、變量:在程序運(yùn)行過程中,其值能被改變的量。二、變量:在程序運(yùn)行過程中,其值能被改變的量。 1、每個(gè)變量都有兩個(gè)特點(diǎn):任一變量都有一個(gè)名字;、每個(gè)變量都有兩個(gè)特點(diǎn):任一變量都有一個(gè)名字;任一變量都占據(jù)一塊內(nèi)存單元。任一變量都占據(jù)一塊內(nèi)存單元。 2、變量起名原則:、變量起名原則:變量所起的名字不可與變量所起的名字不可與32個(gè)保留字重名(個(gè)保留字重名(P375上上部)部)必須以字母或下劃線開頭,由字母、數(shù)字或

13、下劃必須以字母或下劃線開頭,由字母、數(shù)字或下劃線組成的長度不超過線組成的長度不超過32的字符串。的字符串。應(yīng)本著見名知義的原則。應(yīng)本著見名知義的原則。大寫字母與小寫字母意義不同,被認(rèn)為是兩個(gè)不大寫字母與小寫字母意義不同,被認(rèn)為是兩個(gè)不同的字符。一般變量名用小寫字母表示。同的字符。一般變量名用小寫字母表示。15學(xué)生 二教三階二教三階 a4121001H變量名變量名變量地址變量地址變量值變量值 存儲(chǔ)單元存儲(chǔ)單元判斷以下變量名是否合法:判斷以下變量名是否合法: year Day #123 .com a_12 $100 _abcdef 199Y a=b 1_2_3 u-n int 3、變量要先定義后使

14、用、變量要先定義后使用要用到的變量,必須先對其進(jìn)行定義,才可以要用到的變量,必須先對其進(jìn)行定義,才可以使用。如果是未經(jīng)定義的變量,在編譯時(shí)會(huì)檢使用。如果是未經(jīng)定義的變量,在編譯時(shí)會(huì)檢查出來。會(huì)給出提示信息:查出來。會(huì)給出提示信息: undefined symbol 變量名變量名 in function main.判斷以下變量名是否合法:判斷以下變量名是否合法: year Day #123 .com a_12 $100 _abcdef 199Y a=b 1_2_3 u-n int 一、整型常量一、整型常量1、十進(jìn)制數(shù):、十進(jìn)制數(shù):234、-123等。每數(shù)位都可以是等。每數(shù)位都可以是0-9。2、八

15、進(jìn)制數(shù):以、八進(jìn)制數(shù):以0開頭,(開頭,(128)10=0200。每數(shù)位都。每數(shù)位都可以是可以是0-7。3、十六進(jìn)制數(shù):以、十六進(jìn)制數(shù):以0 x開頭,(開頭,(128)16=0 x80。每數(shù)每數(shù)位都可以是位都可以是0-9、A-F。二、整型變量二、整型變量1、整型量在內(nèi)存中的存放形式、整型量在內(nèi)存中的存放形式例如例如10、-10:10在內(nèi)存中的存放形式:在內(nèi)存中的存放形式:2、整型變量的分類、整型變量的分類在在C中,為了更精確描述整型數(shù)據(jù),又進(jìn)一步分為中,為了更精確描述整型數(shù)據(jù),又進(jìn)一步分為六種類型,區(qū)別主要是在表示整數(shù)的范圍不同六種類型,區(qū)別主要是在表示整數(shù)的范圍不同。0 0 0 0 0 0

16、0 0 0 0 0 0 1 0 1 0原碼原碼0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0反碼反碼0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0補(bǔ)碼補(bǔ)碼1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0原碼原碼1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1反碼反碼1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0補(bǔ)碼補(bǔ)碼-10在內(nèi)存中的存放形式:在內(nèi)存中的存放形式:Signed int 基本整型基本整型 16 -32768+32767 216Short int 短整型短整型 16 -32768+32767 216Long

17、 int 長整型長整型 32 -21億億+21億億 232Unsinged int 無符號(hào)整型無符號(hào)整型16 065535 216Unsinged short int 無符號(hào)短整型無符號(hào)短整型 16 065535 216Unsinged long int 無符號(hào)長整型無符號(hào)長整型 32 042億億 2323、整型變量的定義、整型變量的定義格式應(yīng)為:格式應(yīng)為: 變量變量1,變量,變量2,變量,變量3; 例例3.2 注:一般在函數(shù)的開頭就進(jìn)行定義。注:一般在函數(shù)的開頭就進(jìn)行定義。4、整型數(shù)據(jù)的溢出整型數(shù)據(jù)的溢出在運(yùn)算的過程中,若變量的值超過該類型的范圍,則在運(yùn)算的過程中,若變量的值超過該類型的范圍

18、,則會(huì)產(chǎn)生溢出。會(huì)產(chǎn)生溢出。 例例3.3a: 32767b: -327680 1 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 0 0三、如何判斷整型常量的類型。三、如何判斷整型常量的類型。 要根據(jù)給定的常量的大小,符合哪個(gè)類型的范圍要根據(jù)給定的常量的大小,符合哪個(gè)類型的范圍就賦給哪個(gè)類型的變量。例如就賦給哪個(gè)類型的變量。例如50000 如果該常量后面加了一個(gè)字母如果該常量后面加了一個(gè)字母l或或L,則一定要認(rèn)則一定要認(rèn)為是為是long int型的常量,即要賦給型的常量,即要賦給long int型的變量。型的變量。例如例如432L一

19、、實(shí)型常量一、實(shí)型常量1、十進(jìn)制小數(shù):由整數(shù)部分、小數(shù)點(diǎn)和小數(shù)部分組成。、十進(jìn)制小數(shù):由整數(shù)部分、小數(shù)點(diǎn)和小數(shù)部分組成。例如:例如:1.24 -0.345 .222 -234.0 333. 0.0等等2、指數(shù)形式:由實(shí)數(shù)部分、指數(shù)形式:由實(shí)數(shù)部分、E(e)和整數(shù)部分組成。和整數(shù)部分組成。用于表示一些比較大的數(shù)值。用于表示一些比較大的數(shù)值。例如:例如:123*1022-123E22注意:注意:E之前必須要有數(shù)字,之前必須要有數(shù)字,E之后數(shù)字必須為整數(shù)。之后數(shù)字必須為整數(shù)。e12 4.4e1.5 .e5都是不合法的。都是不合法的。二、實(shí)型變量二、實(shí)型變量1、實(shí)型數(shù)據(jù)在內(nèi)存中的存放形式(按指數(shù)形式)

20、、實(shí)型數(shù)據(jù)在內(nèi)存中的存放形式(按指數(shù)形式)314.15926+.3141592632、實(shí)型變量的分類、實(shí)型變量的分類float 單精度單精度 32 6-7 10-37-1038double 雙精度雙精度 64 15-16 10-307-10308long double 長雙精度長雙精度 128 18-19 10-4931-1049323、實(shí)型數(shù)據(jù)的舍入誤差、實(shí)型數(shù)據(jù)的舍入誤差 例例3.4三、實(shí)型常量的類型三、實(shí)型常量的類型 一個(gè)實(shí)型常量賦值給一個(gè)實(shí)型變量時(shí),只根據(jù)實(shí)一個(gè)實(shí)型常量賦值給一個(gè)實(shí)型變量時(shí),只根據(jù)實(shí)型變量表示的有效數(shù)字的位數(shù),在實(shí)型常量中按型變量表示的有效數(shù)字的位數(shù),在實(shí)型常量中按從左

21、向右的方向截取數(shù)據(jù)。從左向右的方向截取數(shù)據(jù)。 一、字符型常量一、字符型常量1、在、在C語言中字符型常量是用單引號(hào)括起來的一個(gè)字語言中字符型常量是用單引號(hào)括起來的一個(gè)字符。符。 如:如:a、A、3、?、 、$等。等。2、以、以“”開頭的轉(zhuǎn)義字符開頭的轉(zhuǎn)義字符n換行換行10t橫向跳格橫向跳格9v豎向跳格豎向跳格b退格退格8r回車回車13f走紙換頁走紙換頁12反斜杠字符反斜杠字符92單引號(hào)單引號(hào)39“雙引號(hào)雙引號(hào)34101(65)代表字母)代表字母A,012(10)代表代表換行,換行,x20(32)代表空格字符。代表空格字符。 例如:例如:main( ) printf(“abctderftgn”);

22、 printf(“htibbjk”);結(jié)果為:結(jié)果為:f a b c g d e h j kddd1至至3位八進(jìn)制數(shù)所代表的字符位八進(jìn)制數(shù)所代表的字符xhh1至至2位十六進(jìn)制數(shù)所代表的字符位十六進(jìn)制數(shù)所代表的字符二、字符變量二、字符變量 char c1,c2; c1=a;c2=b; 在內(nèi)存中占一個(gè)字節(jié)的空間在內(nèi)存中占一個(gè)字節(jié)的空間三、字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式三、字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式 字符的字符的ASCII碼存入內(nèi)存。在內(nèi)存中所有的數(shù)據(jù)碼存入內(nèi)存。在內(nèi)存中所有的數(shù)據(jù)又是以二進(jìn)制的形式存放的。例如字符又是以二進(jìn)制的形式存放的。例如字符a的的ASCII碼為碼為97,b的的ASCII碼為碼為9

23、8。 C1 C2 C1 C297980110000101100010 所以使得在所以使得在C C語言有效的范圍中字符數(shù)據(jù)和整型語言有效的范圍中字符數(shù)據(jù)和整型數(shù)據(jù)之間通用數(shù)據(jù)之間通用 (0127)例例3.6main( )char c=130; printf(“%d,%c”,c,c);結(jié)果為:結(jié)果為:-126, 因?yàn)椋ㄒ驗(yàn)椋?30)10=(10000010)2=(-126)補(bǔ)補(bǔ)四、字符串常量四、字符串常量字符串常量是由雙引號(hào)括起來的字符序列。字符串常量是由雙引號(hào)括起來的字符序列。如:如:“how do you do”,“CHINA”,“a”,“134323.54”每 一 個(gè) 字 符 串 的 結(jié) 尾

24、 都 有 一 個(gè) 字 符 的 結(jié) 束 標(biāo)每 一 個(gè) 字 符 串 的 結(jié) 尾 都 有 一 個(gè) 字 符 的 結(jié) 束 標(biāo)志:志:0,它占一個(gè)字節(jié)的寬度。,它占一個(gè)字節(jié)的寬度。在在C語言中沒有變量來存放字符串常量,須用字符數(shù)語言中沒有變量來存放字符串常量,須用字符數(shù)組來存放。組來存放。“a”和和a是有本質(zhì)的區(qū)別的,是有本質(zhì)的區(qū)別的,a在內(nèi)存中只在內(nèi)存中只占一個(gè)字節(jié)的寬度,而占一個(gè)字節(jié)的寬度,而“a”在內(nèi)存中占兩字節(jié)的在內(nèi)存中占兩字節(jié)的寬度。寬度。 例:例:已知字母已知字母a a的的ASCIIASCII碼為十進(jìn)制數(shù)碼為十進(jìn)制數(shù)9797,且設(shè),且設(shè)chch為字符型變量,則表達(dá)式為字符型變量,則表達(dá)式chc

25、h=a+8-3=a+8-3的值為(的值為( )。)。 f或或102一、什么是對變量賦初值一、什么是對變量賦初值變量賦初值就是在定義變量的同時(shí),給變量賦一個(gè)值。變量賦初值就是在定義變量的同時(shí),給變量賦一個(gè)值。二、如何進(jìn)行賦初值二、如何進(jìn)行賦初值 定義的同時(shí)賦值:定義的同時(shí)賦值:float y=4.6; char z=a; 定義之后賦值:定義之后賦值:int a,b,c; a=20;b=10;c=30;三、在賦初值過程中的問題三、在賦初值過程中的問題1、int x,y,z=3;x,yx,y沒有初值,其初值也不是沒有初值,其初值也不是0 0,而是一個(gè)不確定的值,而是一個(gè)不確定的值 2、int a=b

26、=c=3; ()應(yīng)寫成應(yīng)寫成int a=3,b=3,c=3; 或定義或定義abcabc之后再賦值!之后再賦值!原則:在運(yùn)算過程中,不同的數(shù)據(jù)類型要先轉(zhuǎn)換成原則:在運(yùn)算過程中,不同的數(shù)據(jù)類型要先轉(zhuǎn)換成同一類型后,才能進(jìn)行運(yùn)算同一類型后,才能進(jìn)行運(yùn)算 intchar,shortunsignedlongdoublefloat低低高高 1 1、在運(yùn)算中,先進(jìn)行、在運(yùn)算中,先進(jìn)行水平方向上的轉(zhuǎn)換。水平方向上的轉(zhuǎn)換。 2 2、在進(jìn)行了水平方向上、在進(jìn)行了水平方向上的轉(zhuǎn)換后,如果仍然存在的轉(zhuǎn)換后,如果仍然存在不同類型的數(shù)據(jù),就要進(jìn)不同類型的數(shù)據(jù),就要進(jìn)行縱向的類型轉(zhuǎn)換。行縱向的類型轉(zhuǎn)換。 例如:例如:3+1

27、+0.1/3-5.3/3L(運(yùn)算結(jié)果的類型和本運(yùn)算結(jié)果的類型和本式子中最高級(jí)別的類型是一樣的)式子中最高級(jí)別的類型是一樣的) 設(shè)有說明:設(shè)有說明:char w; char w; intint x; float y; double z; x; float y; double z;則表達(dá)式則表達(dá)式w w* *x+z-yx+z-y值的數(shù)據(jù)類型為(值的數(shù)據(jù)類型為( )double一、算術(shù)運(yùn)算符一、算術(shù)運(yùn)算符 (+ - * / %)使用使用“/”時(shí)注意:時(shí)注意: 1/5=0,而不是,而不是0.2,但是,但是1.0/5=0.2 使用使用“%”“%”時(shí)注意:該運(yùn)算符的兩邊只能是整型數(shù)據(jù)時(shí)注意:該運(yùn)算符的兩邊

28、只能是整型數(shù)據(jù)二、算術(shù)表達(dá)式和算符的優(yōu)先級(jí)與結(jié)合性二、算術(shù)表達(dá)式和算符的優(yōu)先級(jí)與結(jié)合性1 1、算術(shù)表達(dá)式定義:、算術(shù)表達(dá)式定義:用算術(shù)運(yùn)算符號(hào)和括號(hào)將運(yùn)算對象(也稱操作數(shù))連用算術(shù)運(yùn)算符號(hào)和括號(hào)將運(yùn)算對象(也稱操作數(shù))連接起來的、符合接起來的、符合C C語法規(guī)則的式子,稱為算術(shù)表達(dá)語法規(guī)則的式子,稱為算術(shù)表達(dá)式。運(yùn)算對象包括常量、變量、函數(shù)等。式。運(yùn)算對象包括常量、變量、函數(shù)等。例如例如3+4.53+4.5* *a-ba-b* *4/3+max(c,d)4/3+max(c,d) a a* *b/c-b/c-1.5+a1.5+a2 2、優(yōu)先級(jí)和結(jié)合性、優(yōu)先級(jí)和結(jié)合性+ -+ -的優(yōu)先級(jí)是的優(yōu)先級(jí)

29、是4 4級(jí),級(jí),* * / % / %的優(yōu)先級(jí)是的優(yōu)先級(jí)是3 3級(jí),它們的結(jié)級(jí),它們的結(jié)合性都是從左至右的,即左結(jié)合的。合性都是從左至右的,即左結(jié)合的。三、強(qiáng)制類型轉(zhuǎn)換運(yùn)算符(優(yōu)先級(jí)三、強(qiáng)制類型轉(zhuǎn)換運(yùn)算符(優(yōu)先級(jí)2級(jí),右結(jié)合)級(jí),右結(jié)合)功能:將一個(gè)表達(dá)式轉(zhuǎn)換成所需類型,其格式為:功能:將一個(gè)表達(dá)式轉(zhuǎn)換成所需類型,其格式為:(類型)(表達(dá)式)(類型)(表達(dá)式) 例如:(例如:(float)x (int)x+y (int)(x+y) (double)36(float)(5%3) 注意:在強(qiáng)制類型轉(zhuǎn)換時(shí),要產(chǎn)生的是一個(gè)臨時(shí)數(shù)據(jù),注意:在強(qiáng)制類型轉(zhuǎn)換時(shí),要產(chǎn)生的是一個(gè)臨時(shí)數(shù)據(jù),這個(gè)臨時(shí)數(shù)據(jù)的類型是指

30、定的類型,而原始數(shù)據(jù)的這個(gè)臨時(shí)數(shù)據(jù)的類型是指定的類型,而原始數(shù)據(jù)的類型不會(huì)發(fā)生改變。類型不會(huì)發(fā)生改變。例例3.8四、自增、自減運(yùn)算符(四、自增、自減運(yùn)算符(+、-)+是自增運(yùn)算符。是自增運(yùn)算符。+k或或k+都是讓變量都是讓變量k的值加的值加1。-是自減運(yùn)算符。是自減運(yùn)算符。 -k或或k-都是讓變量都是讓變量k的值減的值減1。+K K含義:先使用含義:先使用K K值加上值加上1 1,再使用,再使用K K值。值。K+K+含義:先使用含義:先使用K K值,然后再將值,然后再將K K值加上值加上1 1。例如:例如: k=1; k=1;k=1; k=1; j=+k; j=k+; j=+k; j=k+;

31、k=2 j=2 k=2 j=1使用時(shí)需注意:使用時(shí)需注意:1、這兩種、運(yùn)算符只能用于變量,而不能用于常量、這兩種、運(yùn)算符只能用于變量,而不能用于常量或表達(dá)式?;虮磉_(dá)式。2、+、-運(yùn)算符的優(yōu)先相同,但比算術(shù)運(yùn)算符優(yōu)先級(jí)運(yùn)算符的優(yōu)先相同,但比算術(shù)運(yùn)算符優(yōu)先級(jí)要高。其結(jié)合性是要高。其結(jié)合性是“從右至左從右至左”的。的。i=3; j=-i+; i=3; j=+i;p r i n t f ( “ % d , % d ” , i , j ) ; printf(“%d,%d”,i,j);結(jié)果是:結(jié)果是:4,-3 結(jié)果是:結(jié)果是:4,43 3、要避免發(fā)生歧義、要避免發(fā)生歧義i=3;i=3; i=3; i=3;

32、j=(j=(i+)+(i+)+(ii+)+(i+)+(i+); k=(+); k=(+i)+(+i)+(+ii)+(+i)+(+i););在某些在某些C C中是中是i=6 j=12 k=15i=6 j=12 k=15而在而在TCTC、MSCMSC中中i=6 j=9 k=18i=6 j=9 k=184 4、如何組合多個(gè)運(yùn)算符如何組合多個(gè)運(yùn)算符i+ji+j應(yīng)理解為:(應(yīng)理解為:(i+i+)+j+j而不是而不是i+(+ji+(+j) )5 5、注意程序的寫法注意程序的寫法i=3;i=3; i=3;j=i+; i=3;j=i+;p r i n t f ( “ % d , % d ” , i , ip

33、r i n t f ( “ % d , % d ” , i , i + + ) ;+ + ) ;printf(“%d,%d”,j,iprintf(“%d,%d”,j,i););結(jié)果為:結(jié)果為:4 4,3 3結(jié)果為:結(jié)果為:3 3,4 4 練習(xí):練習(xí):i=3;p=3;求求3+5*8%2+10/5-i+p- -的值:的值:5一、賦值運(yùn)算符(優(yōu)先級(jí)一、賦值運(yùn)算符(優(yōu)先級(jí)1414,右結(jié)合),右結(jié)合)“=”“=”就是賦值運(yùn)算符。就是賦值運(yùn)算符。 格式:變量格式:變量= =表達(dá)式表達(dá)式二、賦值過程中遇到的問題二、賦值過程中遇到的問題1 1、實(shí)型、實(shí)型-整型整型 舍棄小數(shù)部分舍棄小數(shù)部分 intint i=

34、3.6; / i=3.6; /* *i i中只存放整數(shù)中只存放整數(shù)3 3* */ /2 2、整型、整型-實(shí)型實(shí)型 數(shù)值不變,補(bǔ)足有效位數(shù)數(shù)值不變,補(bǔ)足有效位數(shù) float x=3; / float x=3; /* *x x中存放中存放3.0000003.000000* */ / double y=12345;/ double y=12345;/* *y y 中存放中存放12345.000000000012345.0000000000* */ /3 3、double-float double-float 截取前面截取前面7 7位有效數(shù)字,其余舍棄位有效數(shù)字,其余舍棄 float-double f

35、loat-double 數(shù)值不變,有效位擴(kuò)展到數(shù)值不變,有效位擴(kuò)展到1616位位4 4、字符型、字符型-整型整型 保持?jǐn)?shù)值不變且進(jìn)行保持?jǐn)?shù)值不變且進(jìn)行 intint x=0; / x=0; /* *x x中存放整數(shù)中存放整數(shù)4848* */ / intint y= y=xFExFE / /* * y y中存放整數(shù)中存放整數(shù)-2-2* */ / 原最高位若為原最高位若為0 0則高則高8 8位全補(bǔ)位全補(bǔ)0 0,是,是1 1則高則高8 8位全補(bǔ)位全補(bǔ)1 1。5 5、int,short,longint,short,long-char -char 只保留低只保留低8 8位,截?cái)辔?,截?cái)?intint i

36、=289; char c=i;/ i=289; char c=i;/* *c c的值為的值為3333,字符為,字符為!* */ /6 6、intint-long -long 保持?jǐn)?shù)值不變且進(jìn)行符號(hào)擴(kuò)展保持?jǐn)?shù)值不變且進(jìn)行符號(hào)擴(kuò)展 long- long-intint 只保留低只保留低1616位,截?cái)辔唬財(cái)? 7、unsigned unsigned intint-long -long 不需按符號(hào)擴(kuò)展,將高位補(bǔ)不需按符號(hào)擴(kuò)展,將高位補(bǔ)0 08 8、非、非unsigned-unsigned-同樣長度的同樣長度的unsignedunsigned 原樣賦值,連同符號(hào)位也看作是數(shù)值一起傳送。原樣賦值,連同符

37、號(hào)位也看作是數(shù)值一起傳送。三、復(fù)合的賦值運(yùn)算符(優(yōu)先級(jí)三、復(fù)合的賦值運(yùn)算符(優(yōu)先級(jí)1414,右結(jié)合),右結(jié)合)定義:在賦值運(yùn)算符之前加上其它運(yùn)算符。定義:在賦值運(yùn)算符之前加上其它運(yùn)算符。例如:例如:x+=3x+=3相當(dāng)于相當(dāng)于x=x+3x=x+3 x x* *=(=(y+zy+z) )相當(dāng)于相當(dāng)于x=xx=x* *( (y+zy+z) )所以所以A+=BA+=B解釋為:將解釋為:將“A+”A+”移到移到“=”“=”右側(cè)得到右側(cè)得到“=“=A+B”A+B”,然后然后在左側(cè)填上在左側(cè)填上“A”A”就得到了就得到了“A=A+B”A=A+B”。共有共有1010種復(fù)合運(yùn)算符:種復(fù)合運(yùn)算符:+=+=、-=

38、-=、* *= =、/=/=、%=%=、 = =、= =、&=&=、=、|=|=四、賦值表達(dá)式四、賦值表達(dá)式格式為:格式為: a=b=c=5 /a=b=c=5 /* *a=5,b=5,c=5a=5,b=5,c=5* */ /a=5+(c=6) a=5+(c=6) / /* *a=11,c=6a=11,c=6* */ /x=(y=4)+(z=3) /x=(y=4)+(z=3) /* *x=7,y=4,z=3x=7,y=4,z=3* */ /x=(y=4)/(z=3) /x=(y=4)/(z=3) /* *x=1,y=4,z=3x=1,y=4,z=3* */ /例例1 1:x=6x

39、=6; x+=x x+=x* *=x/=3=x/=3;例例2 2:a=12a=12; a+=a-=a a+=a-=a* *a a;例例3 3:b=3b=3; printf(“%d”,aprintf(“%d”,a=b)=b);x=8x=8a=-264a=-264 輸出應(yīng)為輸出應(yīng)為3一、逗號(hào)運(yùn)算符一、逗號(hào)運(yùn)算符 (優(yōu)先級(jí)(優(yōu)先級(jí)1515,左結(jié)合),左結(jié)合) “ “,”格式為:表達(dá)式格式為:表達(dá)式1 1,表達(dá)式,表達(dá)式2 2求解過程是:先求表達(dá)式求解過程是:先求表達(dá)式1 1,再求表達(dá)式,再求表達(dá)式2 2。整個(gè)表。整個(gè)表達(dá)式的值是表達(dá)式達(dá)式的值是表達(dá)式2 2的值。的值。如:如:3 3* *3 3,4

40、4* *4 4結(jié)果應(yīng)為結(jié)果應(yīng)為1616。 x=8 x=8* *2,x2,x* *4 4值為:值為:64 64 x=16x=16 x=(z=5,5 x=(z=5,5* *2)2)值為:值為:10 10 z=5z=5 (x=8 (x=8* *2,x2,x* *4),x4),x* *2 2值為:值為:32 32 x=16x=16程序中并不是所有的逗號(hào)都要看成逗號(hào)運(yùn)算符,尤程序中并不是所有的逗號(hào)都要看成逗號(hào)運(yùn)算符,尤其是在函數(shù)調(diào)用時(shí),各個(gè)參數(shù)是用逗號(hào)隔開的,其是在函數(shù)調(diào)用時(shí),各個(gè)參數(shù)是用逗號(hào)隔開的,這時(shí)逗號(hào)就不是逗號(hào)運(yùn)算符。這時(shí)逗號(hào)就不是逗號(hào)運(yùn)算符。 如:如:printf(%d,%d,%d,x,y,z

41、printf(%d,%d,%d,x,y,z); ); C C程序程序 源程序源程序1 1 源程序源程序i i 源程序源程序n n 預(yù)編譯命令預(yù)編譯命令 函數(shù)函數(shù)1 1函數(shù)函數(shù)n n 說明部分說明部分 執(zhí)行部分(語句)執(zhí)行部分(語句)1、復(fù)合語句:用大括號(hào)括起來的一些語句。這些語、復(fù)合語句:用大括號(hào)括起來的一些語句。這些語句被看成一個(gè)整體。句被看成一個(gè)整體。例如:例如:t=x;x=y;y=t;注意:復(fù)合語句的大括號(hào)后面沒有分號(hào),如果復(fù)合語注意:復(fù)合語句的大括號(hào)后面沒有分號(hào),如果復(fù)合語句中只有一條語句,那么大括號(hào)可以省略。句中只有一條語句,那么大括號(hào)可以省略。2、控制語句:用來規(guī)定語句的執(zhí)行順序。

42、、控制語句:用來規(guī)定語句的執(zhí)行順序。if (if (條件條件) ) else else 條件語句條件語句for (for (條件條件) 循環(huán)語句循環(huán)語句while (while (條件條件) 循環(huán)語句循環(huán)語句do do while; while;循環(huán)語句循環(huán)語句continue;continue;結(jié)束本次循環(huán)語句結(jié)束本次循環(huán)語句break;break; 結(jié)束循環(huán)語句或結(jié)束結(jié)束循環(huán)語句或結(jié)束switchswitch語語句句switch(switch(表達(dá)式表達(dá)式) 多分支選擇語句多分支選擇語句gotogoto 標(biāo)號(hào)標(biāo)號(hào); ;轉(zhuǎn)向語句轉(zhuǎn)向語句return(return(表達(dá)式表達(dá)式););從函數(shù)返

43、回語句從函數(shù)返回語句其中其中 表示循環(huán)體或叫內(nèi)嵌語句,可以用復(fù)合語句表示循環(huán)體或叫內(nèi)嵌語句,可以用復(fù)合語句來表示。來表示。3 3、函數(shù)調(diào)用語句:由一個(gè)函數(shù)調(diào)用加一個(gè)分號(hào)構(gòu)成、函數(shù)調(diào)用語句:由一個(gè)函數(shù)調(diào)用加一個(gè)分號(hào)構(gòu)成函數(shù)調(diào)用語句。函數(shù)調(diào)用語句。例如:例如:printf(“maxprintf(“max=%=%d”,cd”,c);); c= c=max(a,bmax(a,b););4 4、表達(dá)式語句:在任何一個(gè)表達(dá)式后加一個(gè)分號(hào)就表達(dá)式語句:在任何一個(gè)表達(dá)式后加一個(gè)分號(hào)就構(gòu)成一條表達(dá)式語句。構(gòu)成一條表達(dá)式語句。 例如:例如:x=3;x=3;注意:賦值表達(dá)式可以放置在任何可以放置表達(dá)式注意:賦值表達(dá)

44、式可以放置在任何可以放置表達(dá)式的地方也就是說可以放在某些語句中,而賦值語的地方也就是說可以放在某些語句中,而賦值語句只能作為一條語句單獨(dú)存在。句只能作為一條語句單獨(dú)存在。如:如:if (x=y)6) y=6;if (x=y)6) y=6; 若是若是if (x=y;)6) y=6;if (x=y;)6) y=6;則是錯(cuò)誤的。則是錯(cuò)誤的。 5 5、空語句:僅由一個(gè)分號(hào)構(gòu)成的語句??照Z句:僅由一個(gè)分號(hào)構(gòu)成的語句。 例如:例如: ;表示這里有一條什么也不做的語句;表示這里有一條什么也不做的語句。 C C語言本身不提供輸入輸出語句語言本身不提供輸入輸出語句輸入和輸出操作是由函數(shù)來實(shí)現(xiàn)的輸入和輸出操作是由

45、函數(shù)來實(shí)現(xiàn)的在在C C語言中沒提供輸入和輸出語句的目的是使語言中沒提供輸入和輸出語句的目的是使C C語言編語言編譯系統(tǒng)更簡單,因?yàn)樽g系統(tǒng)更簡單,因?yàn)镃 C語言是翻譯語言,沒有輸入輸語言是翻譯語言,沒有輸入輸出語句就避免在編譯時(shí)還需處理一些硬件的問題,出語句就避免在編譯時(shí)還需處理一些硬件的問題,這樣增強(qiáng)程序的通用性,可移植性。這樣增強(qiáng)程序的通用性,可移植性。在在C C語言函數(shù)庫中有一批語言函數(shù)庫中有一批“標(biāo)準(zhǔn)輸入輸出函數(shù)標(biāo)準(zhǔn)輸入輸出函數(shù)”,在不,在不同的計(jì)算機(jī)系統(tǒng)內(nèi)都可以被調(diào)用的。同的計(jì)算機(jī)系統(tǒng)內(nèi)都可以被調(diào)用的。P381P381在使用到在使用到C C語言庫函數(shù)時(shí),要用預(yù)編譯命令語言庫函數(shù)時(shí),要用

46、預(yù)編譯命令“#“#include”include”將有關(guān)的將有關(guān)的“頭文件頭文件”包括到用戶源文件中。包括到用戶源文件中。 一、一、putcharputchar( )( )(原形在原形在stdio.hstdio.h中)中)這個(gè)函數(shù)的作用是將給定的一個(gè)字符常量或一個(gè)字符這個(gè)函數(shù)的作用是將給定的一個(gè)字符常量或一個(gè)字符變量輸出到終端。變量輸出到終端。例如:例如:putchar(A); putchar(33); putchar(x); 這里這里x x可以是整型或字符型變量??梢允钦突蜃址妥兞俊@?.1putchar(n);輸出一個(gè)換行回車輸出一個(gè)換行回車putchar(101);Aputchar

47、();putchar(015);輸出回車,不換行。輸出回車,不換行。二、二、getchar( ) ( (原形在原形在stdio.hstdio.h中)中)從終端輸入一個(gè)字符。該函數(shù)無參數(shù)。從終端輸入一個(gè)字符。該函數(shù)無參數(shù)。例如:例如:#include main() char c; c=getchar(); putchar(c);輸入輸入A,輸出也為輸出也為A。注意:輸入時(shí)需鍵入回車后,才可處理。注意:輸入時(shí)需鍵入回車后,才可處理。printf(“%c”,getchar();putchar(getchar(); 一、一、printfprintf( (格式輸出函數(shù)格式輸出函數(shù)) ) ( (原形在原形

48、在stdio.hstdio.h中)中)作用是向終端輸出任意類型的數(shù)據(jù)。作用是向終端輸出任意類型的數(shù)據(jù)。格式為:格式為:printfprintf( (格式控制字符串,若干表達(dá)式格式控制字符串,若干表達(dá)式) );1 1、格式控制符:、格式控制符:是用雙引號(hào)括起來的字符串,是用雙引號(hào)括起來的字符串,包括兩包括兩種信息:種信息:1 1)普通字符進(jìn)行原樣輸出:)普通字符進(jìn)行原樣輸出:printf(“thisprintf(“this is my book!”); is my book!”);printf(“xprintf(“x= =% %d d,y,y= =% %d d”,x,y”,x,y););2)2)

49、起格式說明作用,用來控制對應(yīng)表達(dá)式的輸出格式起格式說明作用,用來控制對應(yīng)表達(dá)式的輸出格式(必須小寫)(必須小寫)% %d d、%f%f、%c%c、%o%o、%x%x、%s%s、%e%e、%g%g、%、%u%u2 2、格式字符具體說明:、格式字符具體說明:1 1)% %d d格式符格式符% %d d是按實(shí)際長度進(jìn)行輸出。是按實(shí)際長度進(jìn)行輸出。printf(“xprintf(“x=%=%d,yd,y=%d”,83,35);=%d”,83,35); 結(jié)果為:結(jié)果為:x=83,y=35x=83,y=35% %mdmd是按照是按照m m指定的寬度進(jìn)行輸出,且數(shù)據(jù)右靠齊。如指定的寬度進(jìn)行輸出,且數(shù)據(jù)右靠齊

50、。如果實(shí)際寬度要大于果實(shí)際寬度要大于m m,則按數(shù)據(jù)的實(shí)際寬度進(jìn)行顯示輸則按數(shù)據(jù)的實(shí)際寬度進(jìn)行顯示輸出。出。x=123;y=12345;printf(“%4d,%-4d,%4d”,x,x,y);x=123;y=12345;printf(“%4d,%-4d,%4d”,x,x,y);結(jié)果為:結(jié)果為:123,123123,123, ,1234512345% %ldld是將其對應(yīng)的表達(dá)式的值按照長整數(shù)方式輸出。是將其對應(yīng)的表達(dá)式的值按照長整數(shù)方式輸出。x=76543;printf(“x=%x=76543;printf(“x=%ld,xld,x=%=%d”,x,xd”,x,x););結(jié)果為:結(jié)果為:x=

51、76543,x=11007x=76543,x=11007注意:長整型數(shù)據(jù)一定要用注意:長整型數(shù)據(jù)一定要用% %ldld的形式輸出。的形式輸出。% %mldmldx=76543;printf(“x=%7ldx=76543;printf(“x=%7ld,x=%4ld”,x,x);x=%4ld”,x,x);結(jié)果:結(jié)果:x=x=76543,x=7654376543,x=765432)%o2)%o格式符:以八進(jìn)制數(shù)形式輸出整數(shù)。輸出的數(shù)不格式符:以八進(jìn)制數(shù)形式輸出整數(shù)。輸出的數(shù)不帶符號(hào)。帶符號(hào)。intint a=-1;printf(“%d,%o”,a,a); a=-1;printf(“%d,%o”,a,

52、a);結(jié)果為:結(jié)果為:-1-1,17777771777777因?yàn)橐驗(yàn)?1-1的補(bǔ)碼形式是:的補(bǔ)碼形式是:1111 1111 1111 11111111 1111 1111 1111,所以是,所以是177777177777同樣,也可以使用同樣,也可以使用l l、m m作為說明符。作為說明符。3 3)% %x x格式符:以十六進(jìn)制形式輸出整數(shù)。也沒有負(fù)數(shù)格式符:以十六進(jìn)制形式輸出整數(shù)。也沒有負(fù)數(shù)形式。形式。x=-1;printf(“x=%x=-1;printf(“x=%x,xx,x=%=%d”,x,xd”,x,x););結(jié)果為:結(jié)果為:FFFF,-1FFFF,-1同樣,同樣,% %x x也可以使用

53、也可以使用l l、m m、-l-l作為說明符。作為說明符。4 4)% %u u格式符:用來以十進(jìn)制形式輸出無符號(hào)數(shù)格式符:用來以十進(jìn)制形式輸出無符號(hào)數(shù)intint a=-2;unsigned a=-2;unsigned intint b=65535; b=65535;printf(“aprintf(“a=%=%d,%o,%x,%un”,a,a,a,ad,%o,%x,%un”,a,a,a,a););printf(“bprintf(“b=%=%d,%o,%x,%un”,b,b,b,bd,%o,%x,%un”,b,b,b,b););結(jié)果為:結(jié)果為:a=-2,177776,FFFE,65534a=-2

54、,177776,FFFE,65534 b=-1,177777,FFFF,65535 b=-1,177777,FFFF,65535其中:(其中:(-2-2)補(bǔ)補(bǔ)= =(11111111111111101111111111111110) (6553565535)補(bǔ)補(bǔ)= =(11111111111111111111111111111111)同樣,同樣,% %u u也可以使用也可以使用l l、m m、-l-l作為說明符。作為說明符。5 5)% %c c格式符:用來輸出一個(gè)字符。格式符:用來輸出一個(gè)字符。Printf(“xPrintf(“x=%=%c,yc,y=%c”,A,66);=%c”,A,66);

55、結(jié)果為:結(jié)果為:x=x=A,yA,y=B=BPrintf(“xPrintf(“x=%5c”,66);=%5c”,66);結(jié)果為:結(jié)果為:x=x=B B同樣,同樣,% %c c也可以使用也可以使用m m作為說明符。作為說明符。6)%6)%s s格式符:用來輸出一個(gè)字符串。格式符:用來輸出一個(gè)字符串。% %s s printf(“%s”,”chinaprintf(“%s”,”china”); china”); china%ms printf(“%8s”,”china”); %ms printf(“%8s”,”china”); chianchian%-ms printf(“%-8s,%s”,”chi

56、na”,”is %-ms printf(“%-8s,%s”,”china”,”is good”);good”);chinachinaisisgoodgood%m.nsprintf(“%7.2s,%.4s”,”china”,”chin%m.nsprintf(“%7.2s,%.4s”,”china”,”china”);a”);ch,chinch,chin%-%-m.nsm.ns printf(“%-5.3s”,”china”); printf(“%-5.3s”,”china”);chichi7)%7)%f f格式符:用來輸出實(shí)數(shù),以小數(shù)形式輸出。格式符:用來輸出實(shí)數(shù),以小數(shù)形式輸出。% %f f整

57、數(shù)部分全部輸出,小數(shù)部分保留整數(shù)部分全部輸出,小數(shù)部分保留6 6位,需注意有位,需注意有效位數(shù)!效位數(shù)!float x=123456.123;double y=1234567890123.456789;printf(“%f,%f”,x,yprintf(“%f,%f”,x,y););結(jié)果為:結(jié)果為:123456.125001,1234567890123.456790123456.125001,1234567890123.456790% %m.nfm.nf指定輸出的數(shù)據(jù)共占指定輸出的數(shù)據(jù)共占m m位,小數(shù)為位,小數(shù)為n n位。位。float f=123.456;float f=123.456;pr

58、intf(“%f,%10f,%10.2f,%.2f,%-10.2fn”,f,f,f,f,f);123.456001,123.456001,123.46,123.46,123.468 8)e e格式符:以指數(shù)形式輸出實(shí)數(shù)。格式符:以指數(shù)形式輸出實(shí)數(shù)。% %e e固定小數(shù)部分占固定小數(shù)部分占5 5位,整數(shù)占位,整數(shù)占1 1位,小數(shù)點(diǎn)占位,小數(shù)點(diǎn)占1 1位,位,E E占占1 1位,指數(shù)占位,指數(shù)占2 2位,指數(shù)符號(hào)占位,指數(shù)符號(hào)占1 1位。整體只占位。整體只占1111位!位!printf(“%e”,123.456);printf(“%e”,123.456);結(jié)果為:結(jié)果為:1.234561.2345

59、6e+02e+02% %m.nem.ne指定輸出的數(shù)據(jù)共占指定輸出的數(shù)據(jù)共占m m位,小數(shù)為位,小數(shù)為n n位。位。printf(“%e,%10e,%10.2e,%.2e,%-10.2e”,f,f,f,f,f);1 . 2 3 4 5 6 e + 0 2 , 1 . 2 3 4 5 6 e + 0 2 , 1.2e+02,1.2e+02,1.2e+029)g9)g格式符:自動(dòng)選擇實(shí)數(shù)輸出的格式符:自動(dòng)選擇實(shí)數(shù)輸出的f f或或g g格式格式, ,且不輸出且不輸出無意義的零。無意義的零。f=123.456;f=123.456;printf(“%f,%e,%g”,f,f,fprintf(“%f,%e

60、,%g”,f,f,f););結(jié)果為:結(jié)果為:123.456001,1.23456123.456001,1.23456e+02,123,456e+02,123,4561010)%格式符:作用是輸出一個(gè)格式符:作用是輸出一個(gè)% %printfprintf(“(“這個(gè)月的出勤率是這個(gè)月的出勤率是96%”)96%”);注意:除了注意:除了xX,eE,gGxX,eE,gG以外,都不可以使用大寫,只可以外,都不可以使用大寫,只可以用小寫表示。其中可以使用轉(zhuǎn)義字符。以用小寫表示。其中可以使用轉(zhuǎn)義字符。二、二、scanfscanf( )( )函數(shù)函數(shù)( (原形在原形在stdio.hstdio.h中)中)其使用格式為:其使用格式為:scanfscanf( (格式控制符,地址表列格式控制符,地址表列) ) 例如:例如:scanf(“%d%d”,&x,&yscanf(“%d%d”,&x,&y););在這個(gè)程序中,在這個(gè)程序中,& &x,&yx,&y表示變量表示變量x,yx,y的地址。的地址。& &是取地址是取地址運(yùn)算符。運(yùn)算符。& &x x代表變量代表變量x x在內(nèi)存中的地址。在內(nèi)存中的地址。在輸入時(shí)在兩個(gè)數(shù)據(jù)之間要用一個(gè)或多個(gè)空格分隔:在輸入時(shí)在兩個(gè)數(shù)據(jù)之間要用一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論