C語言教程同步ppt課件34講(第三章)

上傳人:29 文檔編號(hào):253203014 上傳時(shí)間:2024-12-01 格式:PPT 頁數(shù):65 大?。?17.68KB
收藏 版權(quán)申訴 舉報(bào) 下載
C語言教程同步ppt課件34講(第三章)_第1頁
第1頁 / 共65頁
C語言教程同步ppt課件34講(第三章)_第2頁
第2頁 / 共65頁
C語言教程同步ppt課件34講(第三章)_第3頁
第3頁 / 共65頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《C語言教程同步ppt課件34講(第三章)》由會(huì)員分享,可在線閱讀,更多相關(guān)《C語言教程同步ppt課件34講(第三章)(65頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,,,,,,,,,,,,,,,,,,,,PROGRAM DESIGN IN C,,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,,,,,,,,,,,,,,,,,,,,PROGRAM DESIGN IN C,第三講 基本數(shù)據(jù)類型,第三講 基本數(shù)據(jù)類型,第三講 基本數(shù)據(jù)類型,引例,變量與常量,預(yù)備知識(shí),內(nèi)儲(chǔ)存器的組織,數(shù)據(jù)類型,基本數(shù)據(jù)類型,整數(shù)類型,字符,浮點(diǎn)類型,C語言程序設(shè)計(jì),2,第三講 基本數(shù)據(jù)類型引例C語言程序設(shè)計(jì)2,引例,引例,問題,計(jì)算任意一個(gè)圓的面積。,

2、源程序,(cw02-01.c),基本數(shù)據(jù)類型,#include ,,void main() {,float r, area;,//定義變量,,scanf(“%f”,,//讀取輸入的半徑,,area = 3.14*r*r;,//計(jì)算圓的面積,,printf(“area=%f”,area);,//輸出,},1,area=3.140000,,area,r,area =,Л,r,2,3,引例引例基本數(shù)據(jù)類型#include 1a,變量與常量,數(shù)據(jù),(Data),程序需要使用數(shù)據(jù)。,數(shù)據(jù)是信息的載體。,數(shù)據(jù)有多種形式:數(shù)、字符、圖片等。,常量,(Constants),在程序運(yùn)行之前可以預(yù)先設(shè)定,并在整個(gè)

3、運(yùn)行過程中沒有變化的數(shù)據(jù)。,例如引例中的圓周率3.14。,變量,(Variables),在程序運(yùn)行過程中可能變化或被賦值的數(shù)據(jù)。,例如引例中的半徑和面積。,基本數(shù)據(jù)類型,4,變量與常量數(shù)據(jù)(Data)基本數(shù)據(jù)類型4,數(shù)據(jù)類型,數(shù)據(jù)類型的作用,決定數(shù)據(jù)的存儲(chǔ)方式和占用的存儲(chǔ)空間的大小。,決定可以進(jìn)行的操作。,C語言的數(shù)據(jù)類型,基本類型,整型,(integer),,字符型,(character),,浮點(diǎn)型,(floating-point),,,構(gòu)造類型,結(jié)構(gòu)體,(structure),,共用體,(union),,數(shù)組,(array),,枚舉類型,(enumeration),指針類型,(pointe

4、r),空類型,(void),基本數(shù)據(jù)類型,5,數(shù)據(jù)類型數(shù)據(jù)類型的作用基本數(shù)據(jù)類型5,,,,,,,,,,位、字節(jié)和字,內(nèi)存儲(chǔ)器的組織,,基本數(shù)據(jù)類型,,,,,,,,,位(bit),:最小的存儲(chǔ)單位,可以容納兩個(gè)值之一,即0或1。,,,,,,,,,,,,,,,,2000,2001,2002,字節(jié)(Byte),:基本的存儲(chǔ)單位,8位。,字(word),:自然的存儲(chǔ)單位,包含若干個(gè)字節(jié)。例如32位機(jī)的一個(gè)字就是32位。,,地址,:以字節(jié)為單位從0開始編號(hào)。,6,位、字節(jié)和字內(nèi)存儲(chǔ)器的組織基本數(shù)據(jù)類型位(bit):最小的存,整數(shù)的存儲(chǔ)方式,有符號(hào)的正整數(shù),在內(nèi)存中以,二進(jìn)制補(bǔ)碼,形式存放。,正整數(shù)的補(bǔ)碼

5、與原碼相同。,例如:10,基本數(shù)據(jù)類型,符號(hào)位,0 0 0 0 0 0 0 0,0 0 0 0 1 0 1 0,,00000000,00001010,RAM,,數(shù)軸,0,2,15,-1=32767,可表示的數(shù)的范圍,,-2,15,=-32768,7,整數(shù)的存儲(chǔ)方式有符號(hào)的正整數(shù)基本數(shù)據(jù)類型符號(hào)位0 0 0 0,整數(shù)的存儲(chǔ)方式,有符號(hào)的負(fù)整數(shù),在內(nèi)存中以,二進(jìn)制補(bǔ)碼,的形式存放。,例如:-10,基本數(shù)據(jù)類型,符號(hào)位,1 1 1 1 1 1 1 1,1 1 1 1 0 1 1 0,,11111111,11110110,RAM,-10的原碼,1,0 0 0 0 0 0 0,0 0 0 0 1 0 1

6、 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,按位取反,加一后得到 -10的補(bǔ)碼,符號(hào)位不變,8,整數(shù)的存儲(chǔ)方式有符號(hào)的負(fù)整數(shù)基本數(shù)據(jù)類型符號(hào)位1 1 1 1,整數(shù)的存儲(chǔ)方式,無符號(hào)整數(shù),所有二進(jìn)制位都存放數(shù)值。,例如:65535,基本數(shù)據(jù)類型,1 1 1 1 1 1 1 1,1 1 1 1 1 1 1 1,,11111111,11111111,RAM,,0,2,16,-1=65535,可表示的數(shù)的范圍,9,整數(shù)的存儲(chǔ)方式無符號(hào)整數(shù)基本數(shù)據(jù)類型1 1 1 1 1 1,整數(shù)的類型,C語言提供多種整數(shù)類型,見

7、例 3-3,為程序員提供了針對(duì)不同用途的多種選擇。,基本數(shù)據(jù)類型,類型名稱,類型說明符,字節(jié)數(shù),數(shù)值范圍,基本整型,int,4,-2147483648~ 2147483647,短整型,short,,int,(short),2,-32768~32767,長整型,long,,int,(long),4,-2147483648~ 2147483647,無符號(hào)基本整型,unsigned,(int),4,0~4294967295,無符號(hào)短整型,unsigned short,(int),2,0~65535,無符號(hào)長整型,unsigned long,(int),4,0~4294967295,C標(biāo)準(zhǔn)只規(guī)定:,s

8、hort ≤ int ≤ long,最大最小值參考,僅供參考,實(shí)際值與所使用的操作系統(tǒng)、編譯系統(tǒng)、機(jī)器有關(guān)。,10,整數(shù)的類型C語言提供多種整數(shù)類型 見例 3-3基本數(shù)據(jù)類型類,整型常量,整型常量,有三種形式:,見例 3-2,十進(jìn)制,(decimal),整數(shù),12 65 65535,八進(jìn)制,(octal),整數(shù):帶前綴,0,(zero),0,14,0,101,0,177777,十六進(jìn)制,(hexadecimal),整數(shù):帶前綴,0x,或,0X,0x,c,0x,41,0x,ffff,,默認(rèn)類型是int,即有符號(hào)的基本整型。,可以加上后綴,u,或,U,表示無符號(hào)整數(shù),或者,l,或,L

9、,表示長整數(shù)。,0x,b5,Lu,基本數(shù)據(jù)類型,11,整型常量整型常量有三種形式:見例 3-2基本數(shù)據(jù)類型11,,,,RAM,整型變量,聲明變量,(Declaration),變量在使用之前必須被聲明。,聲明語句的格式:,,舉例,基本數(shù)據(jù)類型,<,類型說明符,> <,變量名,>[,,,<,變量名,>[,,,...]],;,int counter;,int width, height;,short x, y;,long number;,變量聲明創(chuàng)建了變量:為變量分配了存儲(chǔ)空間。,height,12,RAM整型變量聲明變量(Declaration)基本數(shù)據(jù)類型,整型變量,初始化,(Initializ

10、e),變量,為變量賦一個(gè)初始值。,可以在聲明語句中初始化變量。,舉例,,,,變量獲得值的方法,直接賦值,輸入,初始化,基本數(shù)據(jù)類型,int counter = 0;,int width = 352, height = 288;,初始化式,,,,RAM,288,height,13,整型變量初始化(Initialize)變量基本數(shù)據(jù)類型int,整型變量,輸出變量的值,可以使用,printf(),函數(shù)。,與,int,類型對(duì)應(yīng)的格式說明符是,%d,。,舉例,(cw02-02a.c),基本數(shù)據(jù)類型,#include ,,void main() {,int a, b;,,a=32767; b=-32768

11、;,,printf("a=,%d,,b=,%d,\n",,a,,,b,);,},a=32767,b=-32768,14,整型變量輸出變量的值基本數(shù)據(jù)類型#include

12、printf("a=%d,b=%d\n", a, b);,printf("c=%u,d=%u", c, d);,},a=2147483647,b=-2147483648,c=4294967295,d=0,???,15,整數(shù)的溢出溢出基本數(shù)據(jù)類型#include

13、,0 0 0 0 0 0 0,a(2147483647),1 0 0 0 0 0 0 0...0 0 0 0 0 0 0,a+1(2147483648),b(-2147483648),,12,,加正數(shù),減正數(shù),,16,整數(shù)的溢出溢出基本數(shù)據(jù)類型0 1 1 1 1 1 1 1..,字符的存儲(chǔ)方式,字符編碼,計(jì)算機(jī)使用一種數(shù)字編碼(整數(shù))來表示字符,每一個(gè)字符都對(duì)應(yīng)一個(gè)特定的整數(shù)。,常用的編碼是ASCII(美國信息交換用標(biāo)準(zhǔn)碼)。,7位二進(jìn)制數(shù),十進(jìn)制碼值范圍從0到127。,一般用一個(gè)字節(jié)保存,最高位為0。,字符的存儲(chǔ)方式與整數(shù)相同,舉例,字母A的ASCII碼值為65,,那么在內(nèi)存中以65的二進(jìn)制

14、形式存儲(chǔ),,且占一個(gè)字節(jié)。,基本數(shù)據(jù)類型,01000001,,01000001,RAM,17,字符的存儲(chǔ)方式字符編碼基本數(shù)據(jù)類型0100000101000,字符的類型和字符變量,C語言的字符類型:char,占一個(gè)字節(jié);,可視為一個(gè)有符號(hào)的整數(shù)。,舉例,(cw02-03.c),見例 3-7,3-8,基本數(shù)據(jù)類型,#include ,,void main() {,char c1, c2;,//聲明字符變量,,c1 = 97;,//把一個(gè)整數(shù)賦值給字符變量,c2 = c1-32;,//字符變量可以進(jìn)行算術(shù)運(yùn)算,,printf("c1=,%c,,c2=,%c,\n", c1, c2);,printf(

15、"c1=,%d,,c2=,%d,\n", c1, c2);,},c1=a,c2=A,c1=97,c2=65,18,字符的類型和字符變量C語言的字符類型:char基本數(shù)據(jù)類型#,字符常量,字符常量,用單引號(hào)括起來的一個(gè)字符。,'x' '9' '+‘,C語言將字符常量視為int類型。,舉例,(cw02-04.c),,,,如果int類型為16位,char類型為8位,,那么對(duì)于’bc’,將把’b’和’c’的ASCII碼值存儲(chǔ)在兩個(gè)字節(jié)中,并把’c’賦值給變量c2。,注意:不同系統(tǒng)處理方式不同,結(jié)果不同。(如在Turbo C中,單引號(hào)中的字符只能是一個(gè)字符,則ch=‘a(chǎn)b’是錯(cuò)誤的。,基

16、本數(shù)據(jù)類型,char c1, c2;,c1=‘a(chǎn)’;,c2=‘bc’;,,0 1 1 0 0 0 0 1,c1,0 1 1 0 0 0 1 1,c2,0 1 1 0 0 0 1 1,0 1 1 0 0 0 1 0,‘bc’,L,H,97,99,99,98,19,字符常量字符常量基本數(shù)據(jù)類型char c1, c2;0 1,字符常量,轉(zhuǎn)義字符,(escape character),指代一些特殊的字符。,(打印不出來的字符),,,,,,舉例,(cw02-05.c),見例 3-6-1/2/3,基本數(shù)據(jù)類型,\a,警報(bào),\\,反斜杠(\),\b,退格,\?,問號(hào)(?),\f,走紙,\‘,單引號(hào)(’),\

17、n,換行,\“,雙引號(hào)(”),\r,回車,\,ddd,1-3位八進(jìn)制數(shù)所代表的字符,\t,水平制表符,\x,hh,1-2位十六進(jìn)制數(shù)所代表的字符,\v,垂直制表符,#include ,void main(),{,printf("a,\t,b,\n,c,\b,d,\100\x40,\n");,},a,???????b,d@@,,20,字符常量轉(zhuǎn)義字符(escape character)基本數(shù)據(jù),浮點(diǎn)數(shù)的存儲(chǔ)方式,浮點(diǎn)數(shù),浮點(diǎn)型數(shù)據(jù)在內(nèi)存中按指數(shù)形式存放。,例如:314.15,= 3.1415×10,2,基本數(shù)據(jù)類型,0 (3.14159),10,0 (2),10,數(shù)符

18、 尾數(shù)部分 階符 階碼,+ 3.14159,×,10,+2,,,,,由此可見,尾數(shù)部分的寬度決定了有效數(shù)字的個(gè)數(shù)(即精度),階碼部分的寬度決定了數(shù)值范圍。,,,,RAM,科學(xué)計(jì)數(shù)法允許使用少量的數(shù)字表示很大范圍的數(shù)和很小的數(shù)。,21,浮點(diǎn)數(shù)的存儲(chǔ)方式浮點(diǎn)數(shù)基本數(shù)據(jù)類型0 (3.14,浮點(diǎn)數(shù)的類型,浮點(diǎn)數(shù)也有多種類型,類型名稱及典型大小,基本數(shù)據(jù)類型,類型名稱,類型說明符,字節(jié)數(shù),有效數(shù)字,數(shù)值范圍,單精度,float,4,6~7,(s)10,-37,~10,38,雙精度,double,8,15~16,(s)10,-307,~10,308,長雙精度,long doubl

19、e,10,18~19,(s)10,-4931,~10,4932,S = ±1,參考,僅供參考,實(shí)際值與所使用的操作系統(tǒng)、編譯系統(tǒng)、機(jī)器有關(guān)。,,數(shù)軸,0,可表示的正數(shù),,可表示的負(fù)數(shù),22,浮點(diǎn)數(shù)的類型浮點(diǎn)數(shù)也有多種類型基本數(shù)據(jù)類型類型名稱類型說明符,浮點(diǎn)型常量,浮點(diǎn)型常量有兩種形式:,十進(jìn)制形式,12.3 .65 0.,指數(shù)形式:,+,N.ME,+,n(由整數(shù)部分、小數(shù)點(diǎn)、小數(shù)部分、字母E(或e)和整數(shù)階碼(指數(shù))組成。,1.2e-2 .1E5 7E0,1.2×10,-2,0.1×10,5,7.0×10,0,注:字母E或e前面必須有數(shù)字,即整數(shù)部分和小數(shù)部分不能同時(shí)省略

20、,字母E或e后面的階碼必須為整數(shù),正負(fù)號(hào)中的正號(hào)可以省略。,默認(rèn)類型是double。,可以加上后綴,f,或,F,表示float類型,或者,l,或,L,表示long double類型,否則該常量是double類型。,2.3f 1.2L .1E5f,基本數(shù)據(jù)類型,注:實(shí)數(shù)的小數(shù)形式必須有小數(shù)點(diǎn)的存在。,23,浮點(diǎn)型常量浮點(diǎn)型常量有兩種形式:基本數(shù)據(jù)類型注:實(shí)數(shù)的小數(shù)形,浮點(diǎn)型變量,浮點(diǎn)型變量的聲明和初始化,舉例,基本數(shù)據(jù)類型,float radius;,double x = 0.0, y = 0.0;,不能寫成:,double x = y =0.0;,24,浮點(diǎn)型變量浮點(diǎn)型變量的聲明和初始

21、化基本數(shù)據(jù)類型float r,浮點(diǎn)型變量,浮點(diǎn)數(shù)的輸出,使用printf()函數(shù),float和double對(duì)應(yīng)的格式說明符為,%f。,舉例,(cw02-06.c),見例 3-5,基本數(shù)據(jù)類型,#include ,,void main() {,float f;,double d;,,f=33333.33333,f,;,d=33333.3333333333;,,printf("f=%f\nd=%f", f, d);,},f=33333.332031,d=33333.333333,有效數(shù)字位數(shù)是有限的,在可表示的有效位之外的數(shù)字被舍去。因此可能會(huì)產(chǎn)生誤差。,25,浮點(diǎn)型變量浮點(diǎn)數(shù)的輸出基本數(shù)據(jù)類型#

22、include

23、920,但是,一個(gè)實(shí)型變量能夠保證的有效數(shù)字是7位,后面的數(shù)字將被舍去,是沒有意義的。,因此,最后得到,b=12345678848.000000,應(yīng)當(dāng)避免一個(gè)很大的數(shù)和一個(gè)很小的數(shù)直接相加或相減,否則就會(huì)“丟失”較小的數(shù)。,27,浮點(diǎn)數(shù)的舍入誤差浮點(diǎn)數(shù)的舍入誤差基本數(shù)據(jù)類型a=123456,浮點(diǎn)數(shù)的溢出,上溢,舉例,(cw02-08.c),若某系統(tǒng)中的最大float值為3.4e38,進(jìn)行如下操作,,,得到結(jié)果,,,下溢,舉例:假設(shè)-10是最小的指數(shù),能夠保留四位有效數(shù)字,如果把數(shù)0.1234e-10除以10,將得到結(jié)果0.0123e-10,但損失了一位有效數(shù)字。,基本數(shù)據(jù)類型,float to

24、obig = 3.4e38 * 100.0f;,printf(“toobig=%f", toobig);,…inf…,無窮大(infinity),28,浮點(diǎn)數(shù)的溢出上溢基本數(shù)據(jù)類型float toobig = 3,小結(jié),C語言有多種數(shù)據(jù)類型。,基本的數(shù)據(jù)類型包括兩大類:,整數(shù)類型,浮點(diǎn)類型,開發(fā)程序時(shí),應(yīng)當(dāng)注意所需變量及其類型的選擇。,一般使用int和float表示數(shù),用char表示字符。,在使用變量的函數(shù)的可執(zhí)行語句之前聲明該變量,并為它選擇有意義的名字。,初始化變量使用的常量應(yīng)當(dāng)與變量的類型相匹配。,基本數(shù)據(jù)類型,29,小結(jié)C語言有多種數(shù)據(jù)類型。基本數(shù)據(jù)類型29,第四講 輸入輸出和庫函數(shù),

25、第四講 輸入輸出和庫函數(shù),第四講 輸入輸出和庫函數(shù),引例,字符串常量,符號(hào)常量,格式化輸入輸出,字符輸入輸出,庫函數(shù),C語言程序設(shè)計(jì),31,第四講 輸入輸出和庫函數(shù)引例C語言程序設(shè)計(jì)31,引例,引例,問題:計(jì)算任意一個(gè)球體的體積。,源程序,(cw03-01.c),見例 3-1,輸入輸出和庫函數(shù),#include ,#include ,,#define PI 3.14159,//定義符號(hào)常量,,void main(),{,double r, volume;,,printf("Please input the radius of a ball: ");,scanf("%lf", ,,volume

26、= 4.0/3.0*PI*pow(r, 3.0);,//使用數(shù)學(xué)函數(shù),,printf(“Volume = %.5f\n”, volume);,//按格式輸出,},Please input the radius of a ball: 1,Volume = 4.18879,volume = 4/3,Л,r,3,32,引例引例輸入輸出和庫函數(shù)#include ,字符串常量,字符串常量,用雙引號(hào)括起來的字符序列。,,"this is a string" "x" "12345",字符串常量的存儲(chǔ)方式,字符串中的字符存放在相鄰的存儲(chǔ)單元中,每個(gè)字符占用一個(gè)單元,在最后加上一個(gè)空字符(\0)

27、作為結(jié)束標(biāo)識(shí)符。,舉例,輸入輸出和庫函數(shù),t,h,i,s,,i,s,,a,,s,t,r,i,n,g,\0,每個(gè)字符占一個(gè)字節(jié),結(jié)束標(biāo)記,33,字符串常量字符串常量輸入輸出和庫函數(shù)thisisastrin,字符串常量,字符串常量和字符常量的區(qū)別,字符,‘x’,是基本型數(shù)據(jù)。,字符串,”x”,是構(gòu)造型數(shù)據(jù)。,占用的存儲(chǔ)空間大小不同。,輸入輸出和庫函數(shù),‘x’,x,在內(nèi)存中占一個(gè)字節(jié),“x”,x,在內(nèi)存中占兩個(gè)字節(jié),\0,34,字符串常量字符串常量和字符常量的區(qū)別輸入輸出和庫函數(shù)‘x’x,符號(hào)常量,符號(hào)常量,符號(hào)常量是用一個(gè)標(biāo)識(shí)符表示的常量。,定義規(guī)則,,#define,<,符號(hào)常量名,> <,字符

28、串,>,舉例,輸入輸出和庫函數(shù),#define MAXSIZE 20,,#define WELCOME "Welcome to you!",,#define PI 3.14,編譯預(yù)處理器將會(huì)用3.14替換以后出現(xiàn)的PI標(biāo)識(shí)符。,35,符號(hào)常量符號(hào)常量輸入輸出和庫函數(shù)#define MAXSIZ,符號(hào)常量,為什么需要符號(hào)常量,名字比數(shù)字包含的信息多。,便于維護(hù),如果需要在多個(gè)地方用到同一個(gè)常量,而且必須改變它的值,則只需要修改其符號(hào)常量的定義。,另一種定義符號(hào)常量的方法,使用,const,把一個(gè)變量聲明轉(zhuǎn)換成常量聲明。,舉例,,輸入輸出和庫函數(shù),const int MAX_NUMBER = 30

29、;,MAX_NUMBER是只讀的。,36,符號(hào)常量為什么需要符號(hào)常量輸入輸出和庫函數(shù)const int,輸入輸出,輸入輸出是以計(jì)算機(jī)主機(jī)為主體而言的。,輸出,(Output),:從主機(jī)向外部輸出設(shè)備輸出數(shù)據(jù)。,輸入,(Input),:從外部通過輸入設(shè)備向主機(jī)輸入數(shù)據(jù)。,輸入輸出和庫函數(shù),主,機(jī),鍵盤,磁盤,光盤,掃描儀,……,顯示器,打印機(jī),磁盤……,,,輸入,輸出,37,輸入輸出輸入輸出是以計(jì)算機(jī)主機(jī)為主體而言的。輸入輸出和庫函數(shù),輸入輸出流,流,(stream),按直線排列的字符序列,每個(gè)序列包括0個(gè)或多個(gè)字符,并用換行符結(jié)尾,ANSI C支持至少254個(gè)字符的序列,所有的輸入/輸出都是用

30、流來進(jìn)行的。,輸入輸出和庫函數(shù),S@!ci’[],源,目的,38,輸入輸出流流(stream)輸入輸出和庫函數(shù)S@!ci’[],標(biāo)準(zhǔn)輸入輸出流,開始執(zhí)行程序時(shí),3個(gè)流自動(dòng)連接到程序上,標(biāo)準(zhǔn)輸入流,(standard input),對(duì)應(yīng)的源端設(shè)備:keyboard,標(biāo)準(zhǔn)輸出流,(standard output),對(duì)應(yīng)的目的端設(shè)備:screen,標(biāo)準(zhǔn)錯(cuò)誤流,(standard error),對(duì)應(yīng)的目的端設(shè)備:screen,,操作系統(tǒng)允許這些流重定向到其它設(shè)備,輸入輸出和庫函數(shù),type myprog.c > prn,輸出重定向符,myprog < data.txt,輸入重定向符,39,標(biāo)準(zhǔn)輸入輸出

31、流開始執(zhí)行程序時(shí),3個(gè)流自動(dòng)連接到程序上輸入輸出,輸入輸出函數(shù),C語言中數(shù)據(jù)的輸入、輸出是由函數(shù)來實(shí)現(xiàn)的。,字符輸入函數(shù):,getchar(),字符輸出函數(shù):,putchar(),格式輸入函數(shù):,scanf(),格式輸出函數(shù):,printf(),,它們都屬于標(biāo)準(zhǔn)輸入輸出庫函數(shù),其原型,(prototype),都在,stdio.h,頭文件,(header file),中。,輸入輸出和庫函數(shù),40,輸入輸出函數(shù)C語言中數(shù)據(jù)的輸入、輸出是由函數(shù)來實(shí)現(xiàn)的。輸入輸,字符輸入輸出,putchar()函數(shù),getchar()函數(shù),使用說明,程序中必須包含,stdio.h,頭文件,輸入輸出和庫函數(shù),#incl

32、ude ,41,字符輸入輸出putchar()函數(shù)輸入輸出和庫函數(shù)#incl,字符輸出,putchar,使用形式,putchar(character);,向標(biāo)準(zhǔn)輸出流輸出一個(gè)字符character,使用說明,character可以是以下數(shù)據(jù):,字符型數(shù)據(jù),整型數(shù)據(jù),轉(zhuǎn)義字符,輸入輸出和庫函數(shù),42,字符輸出putchar輸入輸出和庫函數(shù)42,字符輸出,舉例,(cw0302.c),見例 3-12,輸入輸出和庫函數(shù),#include ,void main(),{ char a; int b;,a=‘B’;,b=79;,putchar(a); putchar(‘\n’);,putchar(b); p

33、utchar(‘\n’);,putchar(‘Y’);,},B,O,Y,43,字符輸出舉例(cw0302.c)見例 3-12輸入輸出和庫函,字符輸入,getchar,使用形式,variable = getchar();,從標(biāo)準(zhǔn)輸入流讀取一個(gè)字符。,使用說明,只接收單個(gè)字符,輸入數(shù)字也按字符處理;輸入多于一個(gè)字符時(shí),只接收第一個(gè)字符。,該字符可賦給字符變量、整型變量或作為表達(dá)式的一部分。,輸入輸出和庫函數(shù),44,字符輸入getchar輸入輸出和庫函數(shù)44,字符輸入,舉例,(cw0303.c),見例 3-13,輸入輸出和庫函數(shù),#include ,void main(),{,char c;,c =

34、 getchar();,putchar(c);,},a,a,abc,a,98,9,1,2,3,45,字符輸入舉例(cw0303.c)見例 3-13輸入輸出和庫函,格式輸入輸出,printf()函數(shù),scanf()函數(shù),使用說明,程序中可以不明確指定包含 stdio.h 頭文件,輸入輸出和庫函數(shù),#include ,可以省略此命令,46,格式輸入輸出printf()函數(shù)輸入輸出和庫函數(shù)#inclu,格式輸出,printf,使用形式,printf(, );,按格式控制字符串規(guī)定的格式,向指定的輸出設(shè)備(一般為顯示器)輸出在輸出列表中各輸出項(xiàng)的值。,使用說明,格式控制字符串,由雙引號(hào)括起來的字符串,

35、用于指定輸出格式,輸出列表,需要輸出的數(shù)據(jù)列表,彼此間用逗號(hào)分隔,輸出項(xiàng)可以是任意合法的表達(dá)式,printf()函數(shù)也可以無輸出表列,只有格式控制字符串。 例:printf(“this is a C program.\n”);,輸入輸出和庫函數(shù),47,格式輸出printf輸入輸出和庫函數(shù)47,格式輸出,格式控制字符串用于指定輸出格式,它包含兩類字符:普通字符和格式說明符。,1.,普通字符包括可顯示的字符和轉(zhuǎn)義字符。在執(zhí)行,printf(),函數(shù)時(shí),包含在格式控制字符串中的普通字符按,原樣輸出,,一般起提示作用。,2.,格式說明符:是以,%,開頭的一個(gè)或多個(gè)字符。在執(zhí)行,pr

36、intf(),函數(shù)時(shí),包含在格式控制字符串的格式說明符用于控制輸出項(xiàng)的輸出格式。,舉例,輸入輸出和庫函數(shù),printf(“n=%5d,f=%5.2f\n”, 3, 6.235),普通字符,原樣輸出,,格式說明符(轉(zhuǎn)換規(guī)則),% [修飾符] 格式字符,指定數(shù)據(jù)的輸出格式,n= 3,f= 6.24,,,,,,48,格式輸出格式控制字符串用于指定輸出格式,它包含兩類字符:普通,格式輸出,格式字符,輸入輸出和庫函數(shù),格式字符,功 能,d, i,以十進(jìn)制有符號(hào)形式輸出整數(shù)(正數(shù)不輸出符號(hào)),o,以八進(jìn)制無符號(hào)形式輸出整數(shù)(不輸出前綴0),x, X,以十六進(jìn)制無符號(hào)形式輸出整數(shù)(不

37、輸出前綴0x),u,以十進(jìn)制無符號(hào)形式輸出整數(shù),f,以小數(shù)形式輸出單、雙精度實(shí)數(shù),e, E,以指數(shù)形式輸出單、雙精度實(shí)數(shù)(小數(shù)點(diǎn)前有且必須有一位非0數(shù)字,小數(shù)點(diǎn)占一位,尾數(shù)占6位,指數(shù)部分占5位,共,13位,),g, G,選用%f和%e格式中輸出寬度較短的一種,不輸出無意義的零,c,以字符形式輸出,輸出一個(gè)字符,s,輸出字符串,49,格式輸出格式字符輸入輸出和庫函數(shù)格式字符功,格式輸出,格式修飾符,輸入輸出和庫函數(shù),修飾符,意 義,l,用于長整型和長雙精度實(shí)型數(shù)據(jù),可加在格式字符 d、o、x、u、f 前面。,m(正整數(shù)),數(shù)據(jù)最小寬度。當(dāng),m,大于數(shù)據(jù)的實(shí)際寬度時(shí),左補(bǔ)空格,

38、,右對(duì)齊,;當(dāng),m,小于等于數(shù)據(jù)的實(shí)際寬度時(shí),按數(shù)據(jù)的實(shí)際寬度輸出。,.n(正整數(shù)),對(duì)于實(shí)數(shù),表示輸出n位小數(shù);,對(duì)于字符串,表示截取的字符個(gè)數(shù)。,-,輸出的數(shù)字或字符在域內(nèi)向左靠,右邊填空格。,(,左對(duì)齊),#,當(dāng)整數(shù)以八進(jìn)制或十六進(jìn)制形式輸出時(shí),輸出前綴。,可加在格式字符o、x前面。,50,格式輸出格式修飾符輸入輸出和庫函數(shù)修飾符意,格式輸出,格式說明符小結(jié),見例格式說明符1.c/2.c.../6.c,輸入輸出和庫函數(shù),格式字符,形 式,d, i,%d,%md,%-md,%ld,%mld,%-mld,%i,……,o,%o,%mo,%-mo,%lo,%mlo,%-mlo,

39、%#o,……,x, X,%x,%mx,%-mx,%lx,%mlx,%-mlx,%#x,……,u,%u,%mu,%-mu,%lu,%mlu,%-mlu,f,%f,%mf,%m.nf,%lf,……,e, E,%e,%me,%m.ne,……,g, G,%g,c,%c,s,%s,%ms,%m.ns,……,要輸出,%,就用,%%,51,格式輸出格式說明符小結(jié) 見例格式說明符1.c/2.c.../,格式輸出,舉例,(cw0304.c),輸入輸出和庫函數(shù),void main(),{ int a=97,b=-1;,float f=123.4;,printf(“%d,%c\n”,a,a);,printf(“%d

40、,%o,%x,%u\n”,b,b,b,b);,printf(“%f,%e,%g”,f,f,f);,},運(yùn)行結(jié)果:,1 1 1 1 1 1 1 1,1 1 1 1 1 1 1 1,97,a,-1,37777777777,ffffffff,4294967295,123.400002,1.234000e+002,123.4,52,格式輸出舉例(cw0304.c)輸入輸出和庫函數(shù)void m,格式輸出,舉例,(cw0305.c),輸入輸出和庫函數(shù),void main(),{ int a=1,b=2,c=3;,printf(“,%d,,,%d,,,%d,,,%d,\n”,,a,,,b,,,c,);,pr

41、intf(“,%d,,,%d,,,%d,\n”,,a,,,b,,,c,,,a+b+c,);,},1,2,3,898,1,2,3,格式說明符和輸出項(xiàng)在數(shù)量和類型上應(yīng)該一一對(duì)應(yīng)。,,,53,格式輸出舉例(cw0305.c)輸入輸出和庫函數(shù)void m,格式輸入,scanf,使用形式,scanf(, );,按格式控制字符串規(guī)定的格式,從指定的輸入設(shè)備讀入數(shù)據(jù),并存放到地址列表中的各地址項(xiàng)指定的變量中,使用說明,格式控制字符串,由雙引號(hào)括起來的字符串,用于指定輸入格式,地址列表,由若干個(gè)變量的地址組成,輸入輸出和庫函數(shù),54,格式輸入scanf輸入輸出和庫函數(shù)54,格式輸入,地址列表,,,,取地址運(yùn)算

42、符:&,&,得到變量在內(nèi)存中的地址。,輸入輸出和庫函數(shù),scanf(“%d,%d”, &a, &b),,,FF00,FF02,a,b,,,55,格式輸入地址列表輸入輸出和庫函數(shù)scanf(“%d,%d”,,格式輸入,格式字符,輸入輸出和庫函數(shù),格式字符,功 能,d, i,以十進(jìn)制形式輸入有符號(hào)整數(shù),o,以八進(jìn)制形式輸入無符號(hào)整數(shù),x, X,以十六進(jìn)制形式輸入無符號(hào)整數(shù),u,以十進(jìn)制形式輸入無符號(hào)整數(shù),f,以小數(shù)形式或指數(shù)形式輸入實(shí)數(shù),e, E, g, G,同f,它們之間可以互換,c,輸入單個(gè)字符,s,輸入字符串,56,格式輸入格式字符輸入輸出和庫函數(shù)格式字符功,格式輸入,格式

43、修飾符,輸入輸出和庫函數(shù),修飾符,意 義,l,用于輸入長整型和雙精度實(shí)型數(shù)據(jù),可加在格式字符 d、o、x、u、f、e 前面。,h,用于輸入短整型數(shù)據(jù)。,m(正整數(shù)),域?qū)?,指定輸入?shù)據(jù)所占的寬度。,*,表示本輸入項(xiàng)讀入后不賦給任何變量,即跳過該輸入值。,57,格式輸入格式修飾符輸入輸出和庫函數(shù)修飾符意,格式輸入,例:,scanf(“%d%*d%d”,,若輸入:1,┗┛,2,┗┛,3,↙ ,則將1賦給變量a,2輸入后沒用賦給任何變量,被跳過,3賦給變量b,即a=1,b=3,例:,scanf(“%4d”,,若輸入:123456789,↙,則因?yàn)橹付▽挾葹?,所以只把1234賦予變

44、量i,其余部分部分被截去,即i=1234,注:,(1)scanf()函數(shù)中無精度控制,例:,scanf(“%5.2f”,,是無效的,(2)在scanf()函數(shù)的地址列表中要求給出變量的地址,如果只給出變量名則會(huì)出現(xiàn)錯(cuò)誤。,例:,scanf(“%d”,a);,是非法的。,格式輸入例:scanf(“%d%*d%d”,,58,格式輸入,(3)在輸入多個(gè)數(shù)值數(shù)據(jù)時(shí),如果“格式控制字符串”中沒有非空格字符作輸入數(shù)據(jù)之間的間隔,則可用空格符,Tab水平制表符或回車符作間隔;當(dāng)碰到空格符,Tab水平制表符,回車符或非法數(shù)據(jù)(如對(duì)”%d”輸入”135A”時(shí),A為非法數(shù)據(jù))時(shí),認(rèn)為輸入結(jié)束。,見例3-11,說明

45、:當(dāng)程序運(yùn)行到scanf()函數(shù)調(diào)用語句時(shí),則會(huì)等待用戶輸入數(shù)據(jù)。如在格式字符“%d%d%d”之間沒有間隔,可以使用一個(gè)或多個(gè)空格或者回車鍵作為每兩個(gè)輸入數(shù)之間的間隔。,,格式輸入(3)在輸入多個(gè)數(shù)值數(shù)據(jù)時(shí),如果“格式控制字符串”中,59,格式輸入,(4)在輸入字符數(shù)據(jù)時(shí),若格式控制串中無非空格字符,則認(rèn)為所有輸入的字符均為有效字符;,若格式控制字符串中加入空格作為分隔符,那么輸入時(shí)各數(shù)據(jù)之間可以加任意多個(gè)空格、制表符或回車符)。,例:,scanf(“%c%c%c”,,若輸入,d,┗┛┗┛┗┛,e,┗┛┗┛┗┛,f,↙,則把‘d’賦給變量a,變量b和變量c的值為空格。只有輸入為:def時(shí),才會(huì)

46、把d賦給a,e賦給b,f賦給c。,例:,scanf(“%c %c %c”,,輸入:a b c↙,則 a=a,b=b,c=c,,格式輸入(4)在輸入字符數(shù)據(jù)時(shí),若格式控制串中無非空格字符,,60,格式輸入,(5)如果格式控制串中有普通字符,則按原樣輸入。,例:,char a,b,c;,scanf(“a=%c,b=%c,c=%c”,,則可輸入為:,a=L,b=M,c=N,↙,格式輸入(5)如果格式控制串中有普通字符,則按原樣輸入。,61,格式輸入,格式說明符小結(jié),輸入輸出和庫函數(shù),格式字符,形 式,d, i,%d,%md,%ld,%mld,%i,……,o,%o,

47、%mo,%lo,%mlo,x, X,%x,%mx,%lx,%mlx,u,%u,%mu,%lu,%mlu,f,%f,%mf,%lf,%mlf,e, E, g, G,%e,%me,%le,%mle,%g,……,c,%c,s,%s,%ms,62,格式輸入格式說明符小結(jié)輸入輸出和庫函數(shù)格式字符形,格式輸入,舉例,(cw0306.c),演示格式輸入.c,輸入輸出和庫函數(shù),void main(),{ char a,b,c;,scanf(“,%c%c%c,”,,printf(“a=%c,b=%c,c=%c",a,b,c);,},abc,a=a,b=b,c=c,a b c,a=a,b= ,c=b,a bc,

48、a=a,b= ,c=b,a,b,a=a,b=,,c=b,1,2,3,4,,,,,,,,,,,,用 c 格式字符輸入字符時(shí),若格式控制字符串中無普通字符,那么認(rèn)為所有輸入的字符(包括空格、制表符、換行符)均為有效字符。,,63,格式輸入舉例(cw0306.c)演示格式輸入.c輸入輸出和庫,數(shù)學(xué)庫函數(shù),使用標(biāo)準(zhǔn)庫中的數(shù)學(xué)函數(shù),包含數(shù)學(xué)函數(shù)庫的頭文件,#include <,math.h,>,常用的數(shù)學(xué)函數(shù)的原型,int abs(int n) 整數(shù)x的絕對(duì)值,double fabs(double x) x的絕對(duì)值,double pow(double x, double y),x,y,double sqrt(double x) x平方根,使用舉例,int n = abs(-21);,double v = pow(r, 3.0);,輸入輸出和庫函數(shù),64,數(shù)學(xué)庫函數(shù)使用標(biāo)準(zhǔn)庫中的數(shù)學(xué)函數(shù)輸入輸出和庫函數(shù)64,小結(jié),C語言中的字符串常量,C語言中的符號(hào)常量,C語言中常用的輸入輸出函數(shù),使用標(biāo)準(zhǔn)庫中的數(shù)學(xué)函數(shù),輸入輸出和庫函數(shù),65,小結(jié)C語言中的字符串常量輸入輸出和庫函數(shù)65,

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲