C語言教程同步ppt課件34講(第三章)
《C語言教程同步ppt課件34講(第三章)》由會員分享,可在線閱讀,更多相關(guān)《C語言教程同步ppt課件34講(第三章)(65頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,,,,,,,,,,,,,,,,,,,,PROGRAM DESIGN IN C,,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,,,,,,,,,,,,,,,,,,,,PROGRAM DESIGN IN C,第三講 基本數(shù)據(jù)類型,第三講 基本數(shù)據(jù)類型,第三講 基本數(shù)據(jù)類型,引例,變量與常量,預(yù)備知識,內(nèi)儲存器的組織,數(shù)據(jù)類型,基本數(shù)據(jù)類型,整數(shù)類型,字符,浮點類型,C語言程序設(shè)計,2,第三講 基本數(shù)據(jù)類型引例C語言程序設(shè)計2,引例,引例,問題,計算任意一個圓的面積。,
2、源程序,(cw02-01.c),基本數(shù)據(jù)類型,#include ,,void main() {,float r, area;,//定義變量,,scanf(“%f”,,//讀取輸入的半徑,,area = 3.14*r*r;,//計算圓的面積,,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è)定,并在整個
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ù)的存儲方式和占用的存儲空間的大小。,決定可以進(jìn)行的操作。,C語言的數(shù)據(jù)類型,基本類型,整型,(integer),,字符型,(character),,浮點型,(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)存儲器的組織,,基本數(shù)據(jù)類型,,,,,,,,,位(bit),:最小的存儲單位,可以容納兩個值之一,即0或1。,,,,,,,,,,,,,,,,2000,2001,2002,字節(jié)(Byte),:基本的存儲單位,8位。,字(word),:自然的存儲單位,包含若干個字節(jié)。例如32位機(jī)的一個字就是32位。,,地址,:以字節(jié)為單位從0開始編號。,6,位、字節(jié)和字內(nèi)存儲器的組織基本數(shù)據(jù)類型位(bit):最小的存,整數(shù)的存儲方式,有符號的正整數(shù),在內(nèi)存中以,二進(jìn)制補(bǔ)碼,形式存放。,正整數(shù)的補(bǔ)碼
5、與原碼相同。,例如:10,基本數(shù)據(jù)類型,符號位,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ù)的存儲方式有符號的正整數(shù)基本數(shù)據(jù)類型符號位0 0 0 0,整數(shù)的存儲方式,有符號的負(fù)整數(shù),在內(nèi)存中以,二進(jìn)制補(bǔ)碼,的形式存放。,例如:-10,基本數(shù)據(jù)類型,符號位,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ǔ)碼,符號位不變,8,整數(shù)的存儲方式有符號的負(fù)整數(shù)基本數(shù)據(jù)類型符號位1 1 1 1,整數(shù)的存儲方式,無符號整數(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ù)的存儲方式無符號整數(shù)基本數(shù)據(jù)類型1 1 1 1 1 1,整數(shù)的類型,C語言提供多種整數(shù)類型,見
7、例 3-3,為程序員提供了針對不同用途的多種選擇。,基本數(shù)據(jù)類型,類型名稱,類型說明符,字節(jié)數(shù),數(shù)值范圍,基本整型,int,4,-2147483648~ 2147483647,短整型,short,,int,(short),2,-32768~32767,長整型,long,,int,(long),4,-2147483648~ 2147483647,無符號基本整型,unsigned,(int),4,0~4294967295,無符號短整型,unsigned short,(int),2,0~65535,無符號長整型,unsigned long,(int),4,0~4294967295,C標(biāo)準(zhǔn)只規(guī)定:,s
8、hort ≤ int ≤ long,最大最小值參考,僅供參考,實際值與所使用的操作系統(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,即有符號的基本整型。,可以加上后綴,u,或,U,表示無符號整數(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)建了變量:為變量分配了存儲空間。,height,12,RAM整型變量聲明變量(Declaration)基本數(shù)據(jù)類型,整型變量,初始化,(Initializ
10、e),變量,為變量賦一個初始值。,可以在聲明語句中初始化變量。,舉例,,,,變量獲得值的方法,直接賦值,輸入,初始化,基本數(shù)據(jù)類型,int counter = 0;,int width = 352, height = 288;,初始化式,,,,RAM,288,height,13,整型變量初始化(Initialize)變量基本數(shù)據(jù)類型int,整型變量,輸出變量的值,可以使用,printf(),函數(shù)。,與,int,類型對應(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..,字符的存儲方式,字符編碼,計算機(jī)使用一種數(shù)字編碼(整數(shù))來表示字符,每一個字符都對應(yīng)一個特定的整數(shù)。,常用的編碼是ASCII(美國信息交換用標(biāo)準(zhǔn)碼)。,7位二進(jìn)制數(shù),十進(jìn)制碼值范圍從0到127。,一般用一個字節(jié)保存,最高位為0。,字符的存儲方式與整數(shù)相同,舉例,字母A的ASCII碼值為65,,那么在內(nèi)存中以65的二進(jìn)制 14、形式存儲,,且占一個字節(jié)。,基本數(shù)據(jù)類型,01000001,,01000001,RAM,17,字符的存儲方式字符編碼基本數(shù)據(jù)類型0100000101000,字符的類型和字符變量,C語言的字符類型:char,占一個字節(jié);,可視為一個有符號的整數(shù)。,舉例,(cw02-03.c),見例 3-7,3-8,基本數(shù)據(jù)類型,#include ,,void main() {,char c1, c2;,//聲明字符變量,,c1 = 97;,//把一個整數(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ù)類型#,字符常量,字符常量,用單引號括起來的一個字符。,'x' '9' '+‘,C語言將字符常量視為int類型。,舉例,(cw02-04.c),,,,如果int類型為16位,char類型為8位,,那么對于’bc’,將把’b’和’c’的ASCII碼值存儲在兩個字節(jié)中,并把’c’賦值給變量c2。,注意:不同系統(tǒng)處理方式不同,結(jié)果不同。(如在Turbo C中,單引號中的字符只能是一個字符,則ch=‘a(chǎn)b’是錯誤的。,基 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,退格,\?,問號(?),\f,走紙,\‘,單引號(’),\ 17、n,換行,\“,雙引號(”),\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ù),浮點數(shù)的存儲方式,浮點數(shù),浮點型數(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ù)字的個數(shù)(即精度),階碼部分的寬度決定了數(shù)值范圍。,,,,RAM,科學(xué)計數(shù)法允許使用少量的數(shù)字表示很大范圍的數(shù)和很小的數(shù)。,21,浮點數(shù)的存儲方式浮點數(shù)基本數(shù)據(jù)類型0 (3.14,浮點數(shù)的類型,浮點數(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,參考,僅供參考,實際值與所使用的操作系統(tǒng)、編譯系統(tǒng)、機(jī)器有關(guān)。,,數(shù)軸,0,可表示的正數(shù),,可表示的負(fù)數(shù),22,浮點數(shù)的類型浮點數(shù)也有多種類型基本數(shù)據(jù)類型類型名稱類型說明符,浮點型常量,浮點型常量有兩種形式:,十進(jìn)制形式,12.3 .65 0.,指數(shù)形式:,+,N.ME,+,n(由整數(shù)部分、小數(shù)點、小數(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ù)部分不能同時省略 20、,字母E或e后面的階碼必須為整數(shù),正負(fù)號中的正號可以省略。,默認(rèn)類型是double。,可以加上后綴,f,或,F,表示float類型,或者,l,或,L,表示long double類型,否則該常量是double類型。,2.3f 1.2L .1E5f,基本數(shù)據(jù)類型,注:實數(shù)的小數(shù)形式必須有小數(shù)點的存在。,23,浮點型常量浮點型常量有兩種形式:基本數(shù)據(jù)類型注:實數(shù)的小數(shù)形,浮點型變量,浮點型變量的聲明和初始化,舉例,基本數(shù)據(jù)類型,float radius;,double x = 0.0, y = 0.0;,不能寫成:,double x = y =0.0;,24,浮點型變量浮點型變量的聲明和初始 21、化基本數(shù)據(jù)類型float r,浮點型變量,浮點數(shù)的輸出,使用printf()函數(shù),float和double對應(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ù)字被舍去。因此可能會產(chǎn)生誤差。,25,浮點型變量浮點數(shù)的輸出基本數(shù)據(jù)類型# 22、include 23、920,但是,一個實型變量能夠保證的有效數(shù)字是7位,后面的數(shù)字將被舍去,是沒有意義的。,因此,最后得到,b=12345678848.000000,應(yīng)當(dāng)避免一個很大的數(shù)和一個很小的數(shù)直接相加或相減,否則就會“丟失”較小的數(shù)。,27,浮點數(shù)的舍入誤差浮點數(shù)的舍入誤差基本數(shù)據(jù)類型a=123456,浮點數(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,浮點數(shù)的溢出上溢基本數(shù)據(jù)類型float toobig = 3,小結(jié),C語言有多種數(shù)據(jù)類型。,基本的數(shù)據(jù)類型包括兩大類:,整數(shù)類型,浮點類型,開發(fā)程序時,應(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ù),引例,字符串常量,符號常量,格式化輸入輸出,字符輸入輸出,庫函數(shù),C語言程序設(shè)計,31,第四講 輸入輸出和庫函數(shù)引例C語言程序設(shè)計31,引例,引例,問題:計算任意一個球體的體積。,源程序,(cw03-01.c),見例 3-1,輸入輸出和庫函數(shù),#include ,#include ,,#define PI 3.14159,//定義符號常量,,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 ,字符串常量,字符串常量,用雙引號括起來的字符序列。,,"this is a string" "x" "12345",字符串常量的存儲方式,字符串中的字符存放在相鄰的存儲單元中,每個字符占用一個單元,在最后加上一個空字符(\0) 27、作為結(jié)束標(biāo)識符。,舉例,輸入輸出和庫函數(shù),t,h,i,s,,i,s,,a,,s,t,r,i,n,g,\0,每個字符占一個字節(jié),結(jié)束標(biāo)記,33,字符串常量字符串常量輸入輸出和庫函數(shù)thisisastrin,字符串常量,字符串常量和字符常量的區(qū)別,字符,‘x’,是基本型數(shù)據(jù)。,字符串,”x”,是構(gòu)造型數(shù)據(jù)。,占用的存儲空間大小不同。,輸入輸出和庫函數(shù),‘x’,x,在內(nèi)存中占一個字節(jié),“x”,x,在內(nèi)存中占兩個字節(jié),\0,34,字符串常量字符串常量和字符常量的區(qū)別輸入輸出和庫函數(shù)‘x’x,符號常量,符號常量,符號常量是用一個標(biāo)識符表示的常量。,定義規(guī)則,,#define,<,符號常量名,> <,字符 28、串,>,舉例,輸入輸出和庫函數(shù),#define MAXSIZE 20,,#define WELCOME "Welcome to you!",,#define PI 3.14,編譯預(yù)處理器將會用3.14替換以后出現(xiàn)的PI標(biāo)識符。,35,符號常量符號常量輸入輸出和庫函數(shù)#define MAXSIZ,符號常量,為什么需要符號常量,名字比數(shù)字包含的信息多。,便于維護(hù),如果需要在多個地方用到同一個常量,而且必須改變它的值,則只需要修改其符號常量的定義。,另一種定義符號常量的方法,使用,const,把一個變量聲明轉(zhuǎn)換成常量聲明。,舉例,,輸入輸出和庫函數(shù),const int MAX_NUMBER = 30 29、;,MAX_NUMBER是只讀的。,36,符號常量為什么需要符號常量輸入輸出和庫函數(shù)const int,輸入輸出,輸入輸出是以計算機(jī)主機(jī)為主體而言的。,輸出,(Output),:從主機(jī)向外部輸出設(shè)備輸出數(shù)據(jù)。,輸入,(Input),:從外部通過輸入設(shè)備向主機(jī)輸入數(shù)據(jù)。,輸入輸出和庫函數(shù),主,機(jī),鍵盤,磁盤,光盤,掃描儀,……,顯示器,打印機(jī),磁盤……,,,輸入,輸出,37,輸入輸出輸入輸出是以計算機(jī)主機(jī)為主體而言的。輸入輸出和庫函數(shù),輸入輸出流,流,(stream),按直線排列的字符序列,每個序列包括0個或多個字符,并用換行符結(jié)尾,ANSI C支持至少254個字符的序列,所有的輸入/輸出都是用 30、流來進(jìn)行的。,輸入輸出和庫函數(shù),S@!ci’[],源,目的,38,輸入輸出流流(stream)輸入輸出和庫函數(shù)S@!ci’[],標(biāo)準(zhǔn)輸入輸出流,開始執(zhí)行程序時,3個流自動連接到程序上,標(biāo)準(zhǔn)輸入流,(standard input),對應(yīng)的源端設(shè)備:keyboard,標(biāo)準(zhǔn)輸出流,(standard output),對應(yīng)的目的端設(shè)備:screen,標(biāo)準(zhǔn)錯誤流,(standard error),對應(yīng)的目的端設(shè)備:screen,,操作系統(tǒng)允許這些流重定向到其它設(shè)備,輸入輸出和庫函數(shù),type myprog.c > prn,輸出重定向符,myprog < data.txt,輸入重定向符,39,標(biāo)準(zhǔn)輸入輸出 31、流開始執(zhí)行程序時,3個流自動連接到程序上輸入輸出,輸入輸出函數(shù),C語言中數(shù)據(jù)的輸入、輸出是由函數(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ù)來實現(xiàn)的。輸入輸,字符輸入輸出,putchar()函數(shù),getchar()函數(shù),使用說明,程序中必須包含,stdio.h,頭文件,輸入輸出和庫函數(shù),#incl 32、ude ,41,字符輸入輸出putchar()函數(shù)輸入輸出和庫函數(shù)#incl,字符輸出,putchar,使用形式,putchar(character);,向標(biāo)準(zhǔn)輸出流輸出一個字符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)輸入流讀取一個字符。,使用說明,只接收單個字符,輸入數(shù)字也按字符處理;輸入多于一個字符時,只接收第一個字符。,該字符可賦給字符變量、整型變量或作為表達(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è)備(一般為顯示器)輸出在輸出列表中各輸出項的值。,使用說明,格式控制字符串,由雙引號括起來的字符串, 35、用于指定輸出格式,輸出列表,需要輸出的數(shù)據(jù)列表,彼此間用逗號分隔,輸出項可以是任意合法的表達(dá)式,printf()函數(shù)也可以無輸出表列,只有格式控制字符串。 例:printf(“this is a C program.\n”);,輸入輸出和庫函數(shù),47,格式輸出printf輸入輸出和庫函數(shù)47,格式輸出,格式控制字符串用于指定輸出格式,它包含兩類字符:普通字符和格式說明符。,1.,普通字符包括可顯示的字符和轉(zhuǎn)義字符。在執(zhí)行,printf(),函數(shù)時,包含在格式控制字符串中的普通字符按,原樣輸出,,一般起提示作用。,2.,格式說明符:是以,%,開頭的一個或多個字符。在執(zhí)行,pr 36、intf(),函數(shù)時,包含在格式控制字符串的格式說明符用于控制輸出項的輸出格式。,舉例,輸入輸出和庫函數(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)制有符號形式輸出整數(shù)(正數(shù)不輸出符號),o,以八進(jìn)制無符號形式輸出整數(shù)(不輸出前綴0),x, X,以十六進(jìn)制無符號形式輸出整數(shù)(不 37、輸出前綴0x),u,以十進(jìn)制無符號形式輸出整數(shù),f,以小數(shù)形式輸出單、雙精度實數(shù),e, E,以指數(shù)形式輸出單、雙精度實數(shù)(小數(shù)點前有且必須有一位非0數(shù)字,小數(shù)點占一位,尾數(shù)占6位,指數(shù)部分占5位,共,13位,),g, G,選用%f和%e格式中輸出寬度較短的一種,不輸出無意義的零,c,以字符形式輸出,輸出一個字符,s,輸出字符串,49,格式輸出格式字符輸入輸出和庫函數(shù)格式字符功,格式輸出,格式修飾符,輸入輸出和庫函數(shù),修飾符,意 義,l,用于長整型和長雙精度實型數(shù)據(jù),可加在格式字符 d、o、x、u、f 前面。,m(正整數(shù)),數(shù)據(jù)最小寬度。當(dāng),m,大于數(shù)據(jù)的實際寬度時,左補(bǔ)空格, 38、,右對齊,;當(dāng),m,小于等于數(shù)據(jù)的實際寬度時,按數(shù)據(jù)的實際寬度輸出。,.n(正整數(shù)),對于實數(shù),表示輸出n位小數(shù);,對于字符串,表示截取的字符個數(shù)。,-,輸出的數(shù)字或字符在域內(nèi)向左靠,右邊填空格。,(,左對齊),#,當(dāng)整數(shù)以八進(jìn)制或十六進(jìn)制形式輸出時,輸出前綴。,可加在格式字符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,格式說明符和輸出項在數(shù)量和類型上應(yīng)該一一對應(yīng)。,,,53,格式輸出舉例(cw0305.c)輸入輸出和庫函數(shù)void m,格式輸入,scanf,使用形式,scanf(, );,按格式控制字符串規(guī)定的格式,從指定的輸入設(shè)備讀入數(shù)據(jù),并存放到地址列表中的各地址項指定的變量中,使用說明,格式控制字符串,由雙引號括起來的字符串,用于指定輸入格式,地址列表,由若干個變量的地址組成,輸入輸出和庫函數(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)制形式輸入有符號整數(shù),o,以八進(jìn)制形式輸入無符號整數(shù),x, X,以十六進(jìn)制形式輸入無符號整數(shù),u,以十進(jìn)制形式輸入無符號整數(shù),f,以小數(shù)形式或指數(shù)形式輸入實數(shù),e, E, g, G,同f,它們之間可以互換,c,輸入單個字符,s,輸入字符串,56,格式輸入格式字符輸入輸出和庫函數(shù)格式字符功,格式輸入,格式 43、修飾符,輸入輸出和庫函數(shù),修飾符,意 義,l,用于輸入長整型和雙精度實型數(shù)據(jù),可加在格式字符 d、o、x、u、f、e 前面。,h,用于輸入短整型數(shù)據(jù)。,m(正整數(shù)),域?qū)?,指定輸入?shù)據(jù)所占的寬度。,*,表示本輸入項讀入后不賦給任何變量,即跳過該輸入值。,57,格式輸入格式修飾符輸入輸出和庫函數(shù)修飾符意,格式輸入,例:,scanf(“%d%*d%d”,,若輸入:1,┗┛,2,┗┛,3,↙ ,則將1賦給變量a,2輸入后沒用賦給任何變量,被跳過,3賦給變量b,即a=1,b=3,例:,scanf(“%4d”,,若輸入:123456789,↙,則因為指定寬度為4,所以只把1234賦予變 44、量i,其余部分部分被截去,即i=1234,注:,(1)scanf()函數(shù)中無精度控制,例:,scanf(“%5.2f”,,是無效的,(2)在scanf()函數(shù)的地址列表中要求給出變量的地址,如果只給出變量名則會出現(xiàn)錯誤。,例:,scanf(“%d”,a);,是非法的。,格式輸入例:scanf(“%d%*d%d”,,58,格式輸入,(3)在輸入多個數(shù)值數(shù)據(jù)時,如果“格式控制字符串”中沒有非空格字符作輸入數(shù)據(jù)之間的間隔,則可用空格符,Tab水平制表符或回車符作間隔;當(dāng)碰到空格符,Tab水平制表符,回車符或非法數(shù)據(jù)(如對”%d”輸入”135A”時,A為非法數(shù)據(jù))時,認(rèn)為輸入結(jié)束。,見例3-11,說明 45、:當(dāng)程序運(yùn)行到scanf()函數(shù)調(diào)用語句時,則會等待用戶輸入數(shù)據(jù)。如在格式字符“%d%d%d”之間沒有間隔,可以使用一個或多個空格或者回車鍵作為每兩個輸入數(shù)之間的間隔。,,格式輸入(3)在輸入多個數(shù)值數(shù)據(jù)時,如果“格式控制字符串”中,59,格式輸入,(4)在輸入字符數(shù)據(jù)時,若格式控制串中無非空格字符,則認(rèn)為所有輸入的字符均為有效字符;,若格式控制字符串中加入空格作為分隔符,那么輸入時各數(shù)據(jù)之間可以加任意多個空格、制表符或回車符)。,例:,scanf(“%c%c%c”,,若輸入,d,┗┛┗┛┗┛,e,┗┛┗┛┗┛,f,↙,則把‘d’賦給變量a,變量b和變量c的值為空格。只有輸入為:def時,才會 46、把d賦給a,e賦給b,f賦給c。,例:,scanf(“%c %c %c”,,輸入:a b c↙,則 a=a,b=b,c=c,,格式輸入(4)在輸入字符數(shù)據(jù)時,若格式控制串中無非空格字符,,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 格式字符輸入字符時,若格式控制字符串中無普通字符,那么認(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的絕對值,double fabs(double x) x的絕對值,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語言中的符號常量,C語言中常用的輸入輸出函數(shù),使用標(biāo)準(zhǔn)庫中的數(shù)學(xué)函數(shù),輸入輸出和庫函數(shù),65,小結(jié)C語言中的字符串常量輸入輸出和庫函數(shù)65,
- 溫馨提示:
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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 理財規(guī)劃師課件-保險規(guī)劃之風(fēng)險管理( 27)-財務(wù)管理培訓(xùn)講座課件
- 三叉神經(jīng)痛與面神經(jīng)麻痹
- 汽車底盤概述及汽車維修基本知識 課件
- 南極洲降水少
- 冰箱的調(diào)查研究總結(jié)
- 教材創(chuàng)業(yè)學(xué)第7章創(chuàng)業(yè)初期管理
- 人體的第三道防線:體液免疫和細(xì)胞免疫的過程
- 種公豬繁殖障礙疾病發(fā)生原因及控制措施
- SEO高級搜索指令(百度谷歌高級搜索功能)
- for-want-of-a-drink
- f12CorporationsIncomeandTaxesBusiness(公司金融會
- 英漢翻譯實務(wù)第四單元小說翻譯(二)
- 48080_48080_0_物流知識培訓(xùn)
- 銀行按揭流程講解課件
- 肩袖損傷護(hù)理查房課件