高中信息技術(shù)信息學(xué)奧賽C語言順序結(jié)構(gòu)課件_第1頁
高中信息技術(shù)信息學(xué)奧賽C語言順序結(jié)構(gòu)課件_第2頁
高中信息技術(shù)信息學(xué)奧賽C語言順序結(jié)構(gòu)課件_第3頁
高中信息技術(shù)信息學(xué)奧賽C語言順序結(jié)構(gòu)課件_第4頁
高中信息技術(shù)信息學(xué)奧賽C語言順序結(jié)構(gòu)課件_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

C語言程序設(shè)計(jì)C語言程序設(shè)計(jì)1第2章順序結(jié)構(gòu)本章要點(diǎn):第一節(jié)語句第二節(jié)數(shù)據(jù)輸出第三節(jié)數(shù)據(jù)輸入第2章順序結(jié)構(gòu)本章要點(diǎn):2第一節(jié)語句一、表達(dá)式語句

在賦值表達(dá)式的尾部加上一個(gè)“;”號(hào),就構(gòu)成了表達(dá)式語句,也稱為賦值語句。以下是幾點(diǎn)說明:1.賦值語句必須在最后出現(xiàn)分號(hào),分號(hào)是語句中必不可少的部分,如“x+=10”是表達(dá)式,“x+=10;”是賦值語句。2.任何賦值表達(dá)式都可以加上分號(hào)而稱為賦值語句。第一節(jié)語句一、表達(dá)式語句33.賦值語句是一種可執(zhí)行語句,應(yīng)當(dāng)出現(xiàn)在函數(shù)的可執(zhí)行部分?!攸c(diǎn)提示:分號(hào)是賦值語句中必不可少的部分,若沒有分號(hào),則只是一個(gè)賦值表達(dá)式而已。高中信息技術(shù)-信息學(xué)奧賽C語言第二章-順序結(jié)構(gòu)課件4二、空語句

只有一個(gè)分號(hào)構(gòu)成的語句稱為“空語句”。如{;}就是一個(gè)空語句??照Z句在執(zhí)行時(shí)不產(chǎn)生任何動(dòng)作,但并不表示空語句沒有用途。一般空語句可以用在循環(huán)體內(nèi)對(duì)程序起“延時(shí)”作用。如:{for(i=1;i<=100;i++);}※重點(diǎn)提示:復(fù)合語句中最后一個(gè)語句的最后一個(gè)分號(hào)不能忽略。二、空語句5三、復(fù)合語句

在C語言中,可以用一對(duì)大括號(hào)“{}”把一些語句括起來構(gòu)成復(fù)合語句,又稱分程序。復(fù)合語句的形式如下:

{語句1;語句2;…;語句n;}1.在復(fù)合語句內(nèi),不僅可以有執(zhí)行語句,還可以有定義部分,定義部分應(yīng)出現(xiàn)在可執(zhí)行語句的前面。2.復(fù)合語句中最后一個(gè)語句的最后一個(gè)分號(hào)不能忽略。3.復(fù)合語句可以嵌套。即復(fù)合語句內(nèi)部還可以包含其他復(fù)合語句。三、復(fù)合語句6四、順序結(jié)構(gòu)一個(gè)程序中的語句將按照它們?cè)诔绦蛑谐霈F(xiàn)的順序逐條執(zhí)行,由這樣的語句構(gòu)成的程序結(jié)構(gòu)稱為順序結(jié)構(gòu)。四、順序結(jié)構(gòu)7第二節(jié)數(shù)據(jù)輸出一、printf函數(shù)的一般調(diào)用形式printf函數(shù)是標(biāo)準(zhǔn)輸出函數(shù),功能是在終端設(shè)備上按指定格式進(jìn)行輸出。printf()函數(shù)的一般形式為:

printf(“格式控制”,輸出項(xiàng)序列)例如:printf(”a=%d,b=%c”,a,b)中,”a=%d,b=%c”稱為格式控制字符串,a,b是輸出項(xiàng)序列中的輸出項(xiàng),都是printf函數(shù)的參數(shù)第二節(jié)數(shù)據(jù)輸出一、printf函數(shù)的一般調(diào)用形式8說明:(1)輸出控制是由雙引號(hào)括起來的格式轉(zhuǎn)換控制信息。分為兩種信息:1.用于說明的信息,計(jì)算機(jī)會(huì)原樣輸出;2.帶有%的格式轉(zhuǎn)換說明,用于指定輸出數(shù)據(jù)的格式。例如,printf(“a=%d,b=%d”,2,3);(2)輸出數(shù)據(jù)列表包括需要輸出的一些數(shù)據(jù)。注意輸出數(shù)據(jù)格式應(yīng)該一致。例如,printf(“%d,%f”,3.89,6);說明:9(3)在輸出控制中,格式說明的個(gè)數(shù)應(yīng)該與輸出項(xiàng)的個(gè)數(shù)相同。

注意:如果格式說明的個(gè)數(shù)少于輸出項(xiàng)的個(gè)數(shù),多余的輸出項(xiàng)不予輸出;如果格式說明的個(gè)數(shù)多于輸出項(xiàng)的個(gè)數(shù),則對(duì)多余的格式說明將輸出不定值。例如,printf(“%d,%d”,2,3,4);(3)在輸出控制中,格式說明的個(gè)數(shù)應(yīng)該與輸出項(xiàng)的個(gè)數(shù)相同。10二、printf函數(shù)中常用的格式說明

“格式控制”部分是用雙引號(hào)括起來的字符串,也稱“轉(zhuǎn)換控制字符串”,它包括三種信息:格式說明符、轉(zhuǎn)義字符和普通字符。1.格式字符格式說明符由%和格式字符組成,如%d、%f等。作用是轉(zhuǎn)換輸出數(shù)據(jù)的格式。對(duì)于不同類型的數(shù)據(jù)用不同的格式字符。下面詳細(xì)介紹幾種常用的格式字符。二、printf函數(shù)中常用的格式說明“格式控制”部分是用11①d格式字符。用來輸出十進(jìn)制整數(shù)。其用法如下:(a)%d,按型數(shù)據(jù)的實(shí)際長度輸出。例如:printf("%d,\n",x);如果x=789,則輸出結(jié)果為:789①d格式字符。用來輸出十進(jìn)制整數(shù)。其用法如下:12(b)%1d,輸出長整型數(shù)據(jù)。例如:printf("%1d,\n",a);如果a被定義為:longinta=56789;則輸出結(jié)果為:

56789

如果用%d格式輸出,就會(huì)出錯(cuò),因?yàn)檎蛿?shù)據(jù)的范圍是-32768~32767。對(duì)超出此范圍的long型數(shù)據(jù)應(yīng)當(dāng)用%1d格式輸出。(b)%1d,輸出長整型數(shù)據(jù)。例如:13(c)%-md,m是指定的輸出字符寬度。如果數(shù)據(jù)的位數(shù)小于m,則輸出共占m位,數(shù)據(jù)左靠齊,右邊補(bǔ)空格,若省略“-”號(hào),則右靠齊,左邊補(bǔ)空格;如果數(shù)據(jù)的位數(shù)大于m,則按實(shí)際位數(shù)輸出。例如:printf("%5d,%5d\n",a,b);如果a=7788,b=56789,則輸出結(jié)果為:7788,56789(c)%-md,m是指定的輸出字符寬度。如果數(shù)據(jù)的位數(shù)小于m14

②f格式字符。用來輸出實(shí)數(shù)(包括單精度、雙精度),以小數(shù)形式輸出。其用法如下:(a)%f,實(shí)數(shù)的整數(shù)部分全部輸出,小數(shù)部分保留六位。需要指出的是,并非全部數(shù)字都是有效數(shù)字。單精度實(shí)數(shù)的有效位數(shù)一般是7位,雙精度實(shí)數(shù)的有效位數(shù)一般是16位。(b)%mf,輸出的實(shí)數(shù)共占m位,小數(shù)部分保留六位。(c)%.nf,輸出的實(shí)數(shù),總寬度按實(shí)際寬度,小數(shù)部分占n位。②f格式字符。用來輸出實(shí)數(shù)(包括單精度、雙精度),以小15(d)%-m.nf,輸出的實(shí)數(shù)包括小數(shù)點(diǎn)在內(nèi)共占m位,其中小數(shù)部分占n位。如果數(shù)據(jù)的實(shí)際寬度小于m,則左靠齊,右邊補(bǔ)空格,省略“-”時(shí),右靠齊,左邊補(bǔ)空格。如:main(){floata=123.45;printf(“%f,%11f,%.2f,%-10.3f\n”,a,a,a,a);}程序運(yùn)行結(jié)果為:123.449997,123.449997,123.45,123.450說明:a的值應(yīng)該是123.45,但輸出的結(jié)果卻是123.449997,這是由于實(shí)數(shù)在內(nèi)存中的存儲(chǔ)誤差引起的。(d)%-m.nf,輸出的實(shí)數(shù)包括小數(shù)點(diǎn)在內(nèi)共占m位,其中小16③c格式字符。用來輸出一個(gè)字符。例如:charch='a';printf("%c",ch);則輸出一個(gè)字符‘a(chǎn)’。也可以指定輸出字符的寬度,如:printf("%2c",ch);則輸出‘a(chǎn)’,即ch變量輸出占2列,第一列補(bǔ)空格。③c格式字符。用來輸出一個(gè)字符。例如:17④s格式字符。用來輸出一個(gè)字符串。其用法如下:(a)%s,按原樣輸出一個(gè)字符串。例如:printf("%s","HappyNewYear!");則輸出字符串:HappyNewYear!(b)%-ms,與整數(shù)輸出格式“%-md”類似。④s格式字符。用來輸出一個(gè)字符串。其用法如下:18(c)%m.ns,輸出占m列,但只取字符串中左邊n個(gè)字符。這n個(gè)字符輸出在m列的右邊,左邊補(bǔ)空格。(d)%-m.ns,n個(gè)字符輸出在m列范圍的左邊,右邊補(bǔ)空格。若n>m,則m自動(dòng)取n值,即保證n個(gè)字符正常輸出。如:字符串輸出示例main(){printf(“%3s,%6.3s,%.2s,%-5.4s\n”,“Hello”,“Hello”,“Hello”,“Hello”);}程序運(yùn)行結(jié)果為:Hello,Hel,He,Hell(c)%m.ns,輸出占m列,但只取字符串中左邊n個(gè)字符。這19表2.1輸出格式字符及其功能說明格式字符說明c輸出一個(gè)字符d或i輸出帶符號(hào)的十進(jìn)制整數(shù)o以八進(jìn)制無符號(hào)形式輸出整形數(shù)(不帶前導(dǎo)0)x或X以十六進(jìn)制無符號(hào)形式輸出整形數(shù)(不帶前導(dǎo)),x輸出小寫字母,X輸出大寫字母u按無符號(hào)的十進(jìn)制形式輸出整型數(shù)f以帶小數(shù)點(diǎn)的形式輸出單精度和雙精度數(shù)E或e以[-]m.dde(或E)±xx的指數(shù)形式輸出浮點(diǎn)數(shù)。d的個(gè)數(shù)由精度指定,精度為0時(shí)小數(shù)部分不輸出G或g由系統(tǒng)決定采用%f格式還是采用%e格式,以使輸出寬度最小s輸出字符串中的字符,直到遇到“\0”?;蛘咻敵鲇删戎付ǖ淖址麛?shù)p輸出變量的內(nèi)存地址%打印一個(gè)%表2.1輸出格式字符及其功能說明格式字符說202.附加格式字符在%和上述格式字符之間可以插入以下幾種附加符號(hào),如下所示。表3.2輸出常用附加格式字符附加字符功能說明m(m為一正整數(shù))規(guī)定輸出數(shù)據(jù)的最小寬度為m位.n(n為一正整數(shù))對(duì)實(shí)數(shù),表示輸出的實(shí)數(shù)保留n位小數(shù),對(duì)字符串,表示截取字符串的前n個(gè)字符-使輸出的數(shù)據(jù)在域內(nèi)向左靠齊,省略“-”時(shí),向右靠齊2.附加格式字符附加字符功能說明m(m為一正整數(shù))規(guī)定輸出數(shù)213.長度修飾符長度修飾符加在%和格式字符之間,對(duì)于長整型一定要加l(long),h可用于短整型(short)或無符號(hào)短整形數(shù)的輸出。如printf(“%ld,\n”,a);4.轉(zhuǎn)義字符可以在printf函數(shù)中的“格式控制”部分使用“轉(zhuǎn)義字符”,如“\n”、“\b”、“\f”、“\t”、“\r”、“\344”等?!攸c(diǎn)提示:如果想輸出字符“%”,則應(yīng)該在“格式控制”字符串中用連續(xù)兩個(gè)%表示。3.長度修飾符22三、調(diào)用printf函數(shù)時(shí)的注意事項(xiàng)1.在格式控制字符串中,格式說明與輸出項(xiàng)從左到右在類型上必須一一對(duì)應(yīng)匹配。例如:printf("x=%f,c=%d",x,c);中的x與%f對(duì)應(yīng),c與%d對(duì)應(yīng)。2.在格式控制串中,格式說明與輸出項(xiàng)的個(gè)數(shù)應(yīng)相同,若格式說明少于輸出項(xiàng),則多余的輸出項(xiàng)不輸出,相反,對(duì)于多余的格式將輸出不定值。3.在格式控制串中,可以包含任意的合法字符(包括轉(zhuǎn)義字符)。三、調(diào)用printf函數(shù)時(shí)的注意事項(xiàng)234.輸出項(xiàng)序列中可以是變量、常量或表達(dá)式。如果輸出項(xiàng)是表達(dá)式時(shí),則printf函數(shù)將先對(duì)其進(jìn)行運(yùn)算,然后輸出它的運(yùn)算結(jié)果。如:main(){printf("x=%f",3*4.8+9/4-sqrt(2.0));}輸出結(jié)果為:x=32784.4000004.輸出項(xiàng)序列中可以是變量、常量或表達(dá)式。如果輸出項(xiàng)是表達(dá)式245.printf函數(shù)允許沒有輸出項(xiàng)序列部分。它表示輸出一個(gè)字符串。此時(shí)printf函數(shù)成為如下格式:printf("輸出字符串");例如:printf("Pleaseinputanumber:");則輸出:Pleaseinputanumber:6.printf函數(shù)的返回值通常是本次調(diào)用中輸出字符的個(gè)數(shù)。※重點(diǎn)提示:格式說明與輸出項(xiàng)從左到右在類型上、個(gè)數(shù)上都必須一一對(duì)應(yīng)匹配。5.printf函數(shù)允許沒有輸出項(xiàng)序列部分。它表示輸出一個(gè)字25第三節(jié)數(shù)據(jù)輸入一、scanf函數(shù)的一般調(diào)用格式scanf()函數(shù)的一般形式為:

scanf(“格式控制”,輸入項(xiàng)表)“格式控制”的含義同printf函數(shù);“輸入項(xiàng)地址序列”是由若干個(gè)變量地址(變量前加&號(hào))組成的序列,各地址按排次序依次接收轉(zhuǎn)換格式后的讀入數(shù)據(jù)。第三節(jié)數(shù)據(jù)輸入一、scanf函數(shù)的一般調(diào)用格式26例如:main(){inta,b;scanf("%d%d",&a,&b);printf("%d,%d\n",a,b);}程序運(yùn)行結(jié)果為:123456<回車>123,456

※重點(diǎn)提示:輸入項(xiàng)地址序列中的變量前需要加取地址符號(hào)”&”。

例如:27二、scanf函數(shù)中常用的格式說明

在格式控制部分一般只包含“格式說明符”這一項(xiàng)內(nèi)容。和printf函數(shù)中的格式說明符相似,以%開始,以一個(gè)格式字符結(jié)束,中間可以插入附加的字符。1.scanf常用的格式字符。表3.3列出scanf函數(shù)常用的格式字符及其功能說明。二、scanf函數(shù)中常用的格式說明28表2.3scanf格式字符格式字符功能說明d以帶符號(hào)的十進(jìn)制形式輸入整數(shù)正數(shù)u以無符號(hào)十進(jìn)制形式輸入整數(shù)o以八進(jìn)制無符號(hào)形式輸入整數(shù)x以十六進(jìn)制無符號(hào)形式輸入整數(shù)f以小數(shù)形式或指數(shù)形式輸入實(shí)數(shù)c輸入單一字符s輸入一個(gè)字符串表2.3scanf格式字符格式字符功能說明d以帶符號(hào)的十292.附加格式字符。表3.3列出scanf函數(shù)的附加格式字符及其功能說明。表2.4scanf常用附加字符格式字符 功能說明l用于輸入長整型數(shù)據(jù)(用%ld,%lo,%lx)以及double型數(shù)據(jù)(用%lf或%le)h用于輸入短整型數(shù)據(jù)(用%hd,%ho,%hx)m(m表示一個(gè)正整數(shù))用于指定輸入數(shù)據(jù)所占寬度(列數(shù))為m*表示該輸入項(xiàng)在讀入后不賦給相應(yīng)的變量2.附加格式字符。表3.3列出scanf函數(shù)的附加格式字符及303.幾點(diǎn)說明(1)可以指定輸入數(shù)據(jù)所占列數(shù),系統(tǒng)自動(dòng)按它截取所需數(shù)據(jù)。(2)標(biāo)準(zhǔn)C在scanf()函數(shù)中不使用%u說明符,對(duì)unsigned型數(shù)據(jù),以%d,%o,%x輸入。(3)在輸入時(shí)若想跳過某個(gè)數(shù)據(jù),可在%后加一個(gè)相應(yīng)的“*”。(4)輸入數(shù)據(jù)時(shí)不能規(guī)定精度,如scanf(“%5.2d”,&x)是不合法的。※重點(diǎn)提示:scanf函數(shù)輸入的數(shù)據(jù)不能規(guī)定精度。3.幾點(diǎn)說明31三、通過scanf函數(shù)從鍵盤輸入數(shù)據(jù)

通過scanf函數(shù)從鍵盤輸入數(shù)據(jù)時(shí),需要注意以下幾點(diǎn):1.scanf函數(shù)中的輸入項(xiàng)必須是“地址量”,它可以是一個(gè)變量的地址,也可以是數(shù)組的首地址,但不能是變量名。例如,如果定義了a,b為整型變量,則scanf(“%d,%d”,a,b);是不合法的,應(yīng)將“a,b”改為“&a,&b”。請(qǐng)讀者予以注意,這是初學(xué)者易出錯(cuò)的地方。三、通過scanf函數(shù)從鍵盤輸入數(shù)據(jù)322.輸入數(shù)據(jù)時(shí),各個(gè)數(shù)據(jù)之間可以用空格“[”或Tab鍵或回車鍵作為間隔符。3.除了空格、Tab鍵和回車鍵外,用戶還可以自己指定其他字符作為輸入間隔。需要注意的是,如果在“格式控制”字符串中除了格式說明以外還有其他字符,則在輸入數(shù)據(jù)時(shí)應(yīng)輸入與這些字符相同的字符。例如,對(duì)應(yīng)語句:scanf(“%d,%d,%d”,&a,&b);輸入方式應(yīng)為:1,3<回車>注意1后面是逗號(hào),它與scanf函數(shù)中的“格式控制”中的逗號(hào)對(duì)應(yīng),若輸入時(shí)不用逗號(hào),而用空格或回車鍵等字符就不對(duì)。2.輸入數(shù)據(jù)時(shí),各個(gè)數(shù)據(jù)之間可以用空格“[”或Tab鍵或回車334.特別需要注意的是,在使用格式說明符%c輸入一個(gè)字符時(shí),凡是從鍵盤輸入的字符,包括空格、回車等均被作為有效字符接收。例如對(duì)語句:scanf(“%c%c”,&c1,&c2);若輸入:ab<回車>原意圖是把字符'a'賦給c1,'b'賦給c2,而結(jié)果卻是把[賦給了c2。因?yàn)?c只要求讀入一個(gè)字符,后面不需要用空格作為兩個(gè)字符間隔,因此[作為下一個(gè)字符賦給c2。4.特別需要注意的是,在使用格式說明符%c輸入一個(gè)字符時(shí),凡345.在輸入數(shù)據(jù)時(shí),遇以下情況時(shí)該數(shù)據(jù)認(rèn)為結(jié)束:①遇空格、Tab鍵,或回車鍵。②按指定的寬度結(jié)束,如“%4d”,只取4列。③遇非法輸入?!攸c(diǎn)提示:scanf函數(shù)中的輸入項(xiàng)必須是“地址量”,它可以是一個(gè)變量的地址,也可以是數(shù)組的首地址,但不能是變量名。5.在輸入數(shù)據(jù)時(shí),遇以下情況時(shí)該數(shù)據(jù)認(rèn)為結(jié)束:351、書籍是朋友,雖然沒有熱情,但是非常忠實(shí)。01十一月20222022/11/12022/11/12022/11/12、科學(xué)的靈感,決不是坐等可以等來的。如果說,科學(xué)上的發(fā)現(xiàn)有什么偶然的機(jī)遇的話,那么這種‘偶然的機(jī)遇’只能給那些學(xué)有素養(yǎng)的人,給那些善于獨(dú)立思考的人,給那些具有鍥而不舍的人。十一月222022/11/12022/11/12022/11/111/1/20223、書籍—通過心靈觀察世界的窗口.住宅里沒有書,猶如房間里沒有窗戶。2022/11/12022/11/101November20224、享受閱讀快樂,提高生活質(zhì)量。2022/11/12022/11/12022/11/12022/11/1謝謝觀賞

Youmademyday!我們,還在路上……1、書籍是朋友,雖然沒有熱情,但是非常忠實(shí)。23十月2036C語言程序設(shè)計(jì)C語言程序設(shè)計(jì)37第2章順序結(jié)構(gòu)本章要點(diǎn):第一節(jié)語句第二節(jié)數(shù)據(jù)輸出第三節(jié)數(shù)據(jù)輸入第2章順序結(jié)構(gòu)本章要點(diǎn):38第一節(jié)語句一、表達(dá)式語句

在賦值表達(dá)式的尾部加上一個(gè)“;”號(hào),就構(gòu)成了表達(dá)式語句,也稱為賦值語句。以下是幾點(diǎn)說明:1.賦值語句必須在最后出現(xiàn)分號(hào),分號(hào)是語句中必不可少的部分,如“x+=10”是表達(dá)式,“x+=10;”是賦值語句。2.任何賦值表達(dá)式都可以加上分號(hào)而稱為賦值語句。第一節(jié)語句一、表達(dá)式語句393.賦值語句是一種可執(zhí)行語句,應(yīng)當(dāng)出現(xiàn)在函數(shù)的可執(zhí)行部分?!攸c(diǎn)提示:分號(hào)是賦值語句中必不可少的部分,若沒有分號(hào),則只是一個(gè)賦值表達(dá)式而已。高中信息技術(shù)-信息學(xué)奧賽C語言第二章-順序結(jié)構(gòu)課件40二、空語句

只有一個(gè)分號(hào)構(gòu)成的語句稱為“空語句”。如{;}就是一個(gè)空語句??照Z句在執(zhí)行時(shí)不產(chǎn)生任何動(dòng)作,但并不表示空語句沒有用途。一般空語句可以用在循環(huán)體內(nèi)對(duì)程序起“延時(shí)”作用。如:{for(i=1;i<=100;i++);}※重點(diǎn)提示:復(fù)合語句中最后一個(gè)語句的最后一個(gè)分號(hào)不能忽略。二、空語句41三、復(fù)合語句

在C語言中,可以用一對(duì)大括號(hào)“{}”把一些語句括起來構(gòu)成復(fù)合語句,又稱分程序。復(fù)合語句的形式如下:

{語句1;語句2;…;語句n;}1.在復(fù)合語句內(nèi),不僅可以有執(zhí)行語句,還可以有定義部分,定義部分應(yīng)出現(xiàn)在可執(zhí)行語句的前面。2.復(fù)合語句中最后一個(gè)語句的最后一個(gè)分號(hào)不能忽略。3.復(fù)合語句可以嵌套。即復(fù)合語句內(nèi)部還可以包含其他復(fù)合語句。三、復(fù)合語句42四、順序結(jié)構(gòu)一個(gè)程序中的語句將按照它們?cè)诔绦蛑谐霈F(xiàn)的順序逐條執(zhí)行,由這樣的語句構(gòu)成的程序結(jié)構(gòu)稱為順序結(jié)構(gòu)。四、順序結(jié)構(gòu)43第二節(jié)數(shù)據(jù)輸出一、printf函數(shù)的一般調(diào)用形式printf函數(shù)是標(biāo)準(zhǔn)輸出函數(shù),功能是在終端設(shè)備上按指定格式進(jìn)行輸出。printf()函數(shù)的一般形式為:

printf(“格式控制”,輸出項(xiàng)序列)例如:printf(”a=%d,b=%c”,a,b)中,”a=%d,b=%c”稱為格式控制字符串,a,b是輸出項(xiàng)序列中的輸出項(xiàng),都是printf函數(shù)的參數(shù)第二節(jié)數(shù)據(jù)輸出一、printf函數(shù)的一般調(diào)用形式44說明:(1)輸出控制是由雙引號(hào)括起來的格式轉(zhuǎn)換控制信息。分為兩種信息:1.用于說明的信息,計(jì)算機(jī)會(huì)原樣輸出;2.帶有%的格式轉(zhuǎn)換說明,用于指定輸出數(shù)據(jù)的格式。例如,printf(“a=%d,b=%d”,2,3);(2)輸出數(shù)據(jù)列表包括需要輸出的一些數(shù)據(jù)。注意輸出數(shù)據(jù)格式應(yīng)該一致。例如,printf(“%d,%f”,3.89,6);說明:45(3)在輸出控制中,格式說明的個(gè)數(shù)應(yīng)該與輸出項(xiàng)的個(gè)數(shù)相同。

注意:如果格式說明的個(gè)數(shù)少于輸出項(xiàng)的個(gè)數(shù),多余的輸出項(xiàng)不予輸出;如果格式說明的個(gè)數(shù)多于輸出項(xiàng)的個(gè)數(shù),則對(duì)多余的格式說明將輸出不定值。例如,printf(“%d,%d”,2,3,4);(3)在輸出控制中,格式說明的個(gè)數(shù)應(yīng)該與輸出項(xiàng)的個(gè)數(shù)相同。46二、printf函數(shù)中常用的格式說明

“格式控制”部分是用雙引號(hào)括起來的字符串,也稱“轉(zhuǎn)換控制字符串”,它包括三種信息:格式說明符、轉(zhuǎn)義字符和普通字符。1.格式字符格式說明符由%和格式字符組成,如%d、%f等。作用是轉(zhuǎn)換輸出數(shù)據(jù)的格式。對(duì)于不同類型的數(shù)據(jù)用不同的格式字符。下面詳細(xì)介紹幾種常用的格式字符。二、printf函數(shù)中常用的格式說明“格式控制”部分是用47①d格式字符。用來輸出十進(jìn)制整數(shù)。其用法如下:(a)%d,按型數(shù)據(jù)的實(shí)際長度輸出。例如:printf("%d,\n",x);如果x=789,則輸出結(jié)果為:789①d格式字符。用來輸出十進(jìn)制整數(shù)。其用法如下:48(b)%1d,輸出長整型數(shù)據(jù)。例如:printf("%1d,\n",a);如果a被定義為:longinta=56789;則輸出結(jié)果為:

56789

如果用%d格式輸出,就會(huì)出錯(cuò),因?yàn)檎蛿?shù)據(jù)的范圍是-32768~32767。對(duì)超出此范圍的long型數(shù)據(jù)應(yīng)當(dāng)用%1d格式輸出。(b)%1d,輸出長整型數(shù)據(jù)。例如:49(c)%-md,m是指定的輸出字符寬度。如果數(shù)據(jù)的位數(shù)小于m,則輸出共占m位,數(shù)據(jù)左靠齊,右邊補(bǔ)空格,若省略“-”號(hào),則右靠齊,左邊補(bǔ)空格;如果數(shù)據(jù)的位數(shù)大于m,則按實(shí)際位數(shù)輸出。例如:printf("%5d,%5d\n",a,b);如果a=7788,b=56789,則輸出結(jié)果為:7788,56789(c)%-md,m是指定的輸出字符寬度。如果數(shù)據(jù)的位數(shù)小于m50

②f格式字符。用來輸出實(shí)數(shù)(包括單精度、雙精度),以小數(shù)形式輸出。其用法如下:(a)%f,實(shí)數(shù)的整數(shù)部分全部輸出,小數(shù)部分保留六位。需要指出的是,并非全部數(shù)字都是有效數(shù)字。單精度實(shí)數(shù)的有效位數(shù)一般是7位,雙精度實(shí)數(shù)的有效位數(shù)一般是16位。(b)%mf,輸出的實(shí)數(shù)共占m位,小數(shù)部分保留六位。(c)%.nf,輸出的實(shí)數(shù),總寬度按實(shí)際寬度,小數(shù)部分占n位。②f格式字符。用來輸出實(shí)數(shù)(包括單精度、雙精度),以小51(d)%-m.nf,輸出的實(shí)數(shù)包括小數(shù)點(diǎn)在內(nèi)共占m位,其中小數(shù)部分占n位。如果數(shù)據(jù)的實(shí)際寬度小于m,則左靠齊,右邊補(bǔ)空格,省略“-”時(shí),右靠齊,左邊補(bǔ)空格。如:main(){floata=123.45;printf(“%f,%11f,%.2f,%-10.3f\n”,a,a,a,a);}程序運(yùn)行結(jié)果為:123.449997,123.449997,123.45,123.450說明:a的值應(yīng)該是123.45,但輸出的結(jié)果卻是123.449997,這是由于實(shí)數(shù)在內(nèi)存中的存儲(chǔ)誤差引起的。(d)%-m.nf,輸出的實(shí)數(shù)包括小數(shù)點(diǎn)在內(nèi)共占m位,其中小52③c格式字符。用來輸出一個(gè)字符。例如:charch='a';printf("%c",ch);則輸出一個(gè)字符‘a(chǎn)’。也可以指定輸出字符的寬度,如:printf("%2c",ch);則輸出‘a(chǎn)’,即ch變量輸出占2列,第一列補(bǔ)空格。③c格式字符。用來輸出一個(gè)字符。例如:53④s格式字符。用來輸出一個(gè)字符串。其用法如下:(a)%s,按原樣輸出一個(gè)字符串。例如:printf("%s","HappyNewYear!");則輸出字符串:HappyNewYear!(b)%-ms,與整數(shù)輸出格式“%-md”類似。④s格式字符。用來輸出一個(gè)字符串。其用法如下:54(c)%m.ns,輸出占m列,但只取字符串中左邊n個(gè)字符。這n個(gè)字符輸出在m列的右邊,左邊補(bǔ)空格。(d)%-m.ns,n個(gè)字符輸出在m列范圍的左邊,右邊補(bǔ)空格。若n>m,則m自動(dòng)取n值,即保證n個(gè)字符正常輸出。如:字符串輸出示例main(){printf(“%3s,%6.3s,%.2s,%-5.4s\n”,“Hello”,“Hello”,“Hello”,“Hello”);}程序運(yùn)行結(jié)果為:Hello,Hel,He,Hell(c)%m.ns,輸出占m列,但只取字符串中左邊n個(gè)字符。這55表2.1輸出格式字符及其功能說明格式字符說明c輸出一個(gè)字符d或i輸出帶符號(hào)的十進(jìn)制整數(shù)o以八進(jìn)制無符號(hào)形式輸出整形數(shù)(不帶前導(dǎo)0)x或X以十六進(jìn)制無符號(hào)形式輸出整形數(shù)(不帶前導(dǎo)),x輸出小寫字母,X輸出大寫字母u按無符號(hào)的十進(jìn)制形式輸出整型數(shù)f以帶小數(shù)點(diǎn)的形式輸出單精度和雙精度數(shù)E或e以[-]m.dde(或E)±xx的指數(shù)形式輸出浮點(diǎn)數(shù)。d的個(gè)數(shù)由精度指定,精度為0時(shí)小數(shù)部分不輸出G或g由系統(tǒng)決定采用%f格式還是采用%e格式,以使輸出寬度最小s輸出字符串中的字符,直到遇到“\0”?;蛘咻敵鲇删戎付ǖ淖址麛?shù)p輸出變量的內(nèi)存地址%打印一個(gè)%表2.1輸出格式字符及其功能說明格式字符說562.附加格式字符在%和上述格式字符之間可以插入以下幾種附加符號(hào),如下所示。表3.2輸出常用附加格式字符附加字符功能說明m(m為一正整數(shù))規(guī)定輸出數(shù)據(jù)的最小寬度為m位.n(n為一正整數(shù))對(duì)實(shí)數(shù),表示輸出的實(shí)數(shù)保留n位小數(shù),對(duì)字符串,表示截取字符串的前n個(gè)字符-使輸出的數(shù)據(jù)在域內(nèi)向左靠齊,省略“-”時(shí),向右靠齊2.附加格式字符附加字符功能說明m(m為一正整數(shù))規(guī)定輸出數(shù)573.長度修飾符長度修飾符加在%和格式字符之間,對(duì)于長整型一定要加l(long),h可用于短整型(short)或無符號(hào)短整形數(shù)的輸出。如printf(“%ld,\n”,a);4.轉(zhuǎn)義字符可以在printf函數(shù)中的“格式控制”部分使用“轉(zhuǎn)義字符”,如“\n”、“\b”、“\f”、“\t”、“\r”、“\344”等?!攸c(diǎn)提示:如果想輸出字符“%”,則應(yīng)該在“格式控制”字符串中用連續(xù)兩個(gè)%表示。3.長度修飾符58三、調(diào)用printf函數(shù)時(shí)的注意事項(xiàng)1.在格式控制字符串中,格式說明與輸出項(xiàng)從左到右在類型上必須一一對(duì)應(yīng)匹配。例如:printf("x=%f,c=%d",x,c);中的x與%f對(duì)應(yīng),c與%d對(duì)應(yīng)。2.在格式控制串中,格式說明與輸出項(xiàng)的個(gè)數(shù)應(yīng)相同,若格式說明少于輸出項(xiàng),則多余的輸出項(xiàng)不輸出,相反,對(duì)于多余的格式將輸出不定值。3.在格式控制串中,可以包含任意的合法字符(包括轉(zhuǎn)義字符)。三、調(diào)用printf函數(shù)時(shí)的注意事項(xiàng)594.輸出項(xiàng)序列中可以是變量、常量或表達(dá)式。如果輸出項(xiàng)是表達(dá)式時(shí),則printf函數(shù)將先對(duì)其進(jìn)行運(yùn)算,然后輸出它的運(yùn)算結(jié)果。如:main(){printf("x=%f",3*4.8+9/4-sqrt(2.0));}輸出結(jié)果為:x=32784.4000004.輸出項(xiàng)序列中可以是變量、常量或表達(dá)式。如果輸出項(xiàng)是表達(dá)式605.printf函數(shù)允許沒有輸出項(xiàng)序列部分。它表示輸出一個(gè)字符串。此時(shí)printf函數(shù)成為如下格式:printf("輸出字符串");例如:printf("Pleaseinputanumber:");則輸出:Pleaseinputanumber:6.printf函數(shù)的返回值通常是本次調(diào)用中輸出字符的個(gè)數(shù)?!攸c(diǎn)提示:格式說明與輸出項(xiàng)從左到右在類型上、個(gè)數(shù)上都必須一一對(duì)應(yīng)匹配。5.printf函數(shù)允許沒有輸出項(xiàng)序列部分。它表示輸出一個(gè)字61第三節(jié)數(shù)據(jù)輸入一、scanf函數(shù)的一般調(diào)用格式scanf()函數(shù)的一般形式為:

scanf(“格式控制”,輸入項(xiàng)表)“格式控制”的含義同printf函數(shù);“輸入項(xiàng)地址序列”是由若干個(gè)變量地址(變量前加&號(hào))組成的序列,各地址按排次序依次接收轉(zhuǎn)換格式后的讀入數(shù)據(jù)。第三節(jié)數(shù)據(jù)輸入一、scanf函數(shù)的一般調(diào)用格式62例如:main(){inta,b;scanf("%d%d",&a,&b);printf("%d,%d\n",a,b);}程序運(yùn)行結(jié)果為:123456<回車>123,456

※重點(diǎn)提示:輸入項(xiàng)地址序列中的變量前需要加取地址符號(hào)”&”。

例如:63二、scanf函數(shù)中常用的格式說明

在格式控制部分一般只包含“格式說明符”這一項(xiàng)內(nèi)容。和printf函數(shù)中的格式說明符相似,以%開始,以一個(gè)格式字符結(jié)束,中間可以插入附加的字符。1.scanf常用的格式字符。表3.3列出scanf函數(shù)常用的格式字符及其功能說明。二、scanf函數(shù)中常用的格式說明64表2.3scanf格式字符格式字符功能說明d以帶符號(hào)的十進(jìn)制形式輸入整數(shù)正數(shù)u以無符號(hào)十進(jìn)制形式輸入整數(shù)o以八進(jìn)制無符號(hào)形式輸入整數(shù)x以十六進(jìn)制無符號(hào)形式輸入整數(shù)f以小數(shù)形式或指數(shù)形式輸入實(shí)數(shù)c輸入單一字符s輸入一個(gè)字符串表2.3scanf格式字符格式字符功能說明d以帶符號(hào)的十652.附加格式字符。表3.3列出scanf函數(shù)的附加格式字符及其功能說明。表2.4scanf常用附加字符格式字符 功能說明l用于輸入長整型數(shù)據(jù)(用%ld,%lo,%lx)以及double型數(shù)據(jù)(用%lf或%le)h用于輸入短整型數(shù)據(jù)(用%hd,%ho,%hx)m(m表示一個(gè)正整數(shù))用于指定輸入數(shù)據(jù)所占寬度(列數(shù))為m*表示該輸入項(xiàng)在讀入后不賦給相應(yīng)的變量2.附加格式字符。表3.3列出scanf函數(shù)的附加格式字符及663.幾點(diǎn)說明(1)可以指定輸入數(shù)據(jù)所占列數(shù),系統(tǒng)自動(dòng)按它截取所需數(shù)據(jù)。(2)標(biāo)準(zhǔn)C在scanf()函數(shù)中不使用%u說明符,對(duì)unsigned型數(shù)據(jù),以%d,%o,%x輸入。(3)在輸入

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論