第03章-順序結構解析PPT課件_第1頁
第03章-順序結構解析PPT課件_第2頁
第03章-順序結構解析PPT課件_第3頁
第03章-順序結構解析PPT課件_第4頁
第03章-順序結構解析PPT課件_第5頁
已閱讀5頁,還剩26頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第一節 格式化輸入輸出函數 標準函數庫中定義了一些輸入輸出函數,程序在調用這些庫函數時,必須在源文件的開始處加上頭文件的“包含命令”。 格式: #include #include 庫函數頭文件名 不同的函數其頭文件不同,如輸入輸出函數所在的頭文件為:stdio.h。在頭文件中包含了與用到的函數有關的信息。文件后綴h是head的縮寫。11/4/20211 1C語言程序設計第1頁/共31頁 一、格式輸出函數一、格式輸出函數 格式: printf(“格式控制字符串”,輸出項表) printf(字符串) 功能:將輸出項的值對應到格式控制字符串中的對應格式說明符位置,輸出格式控制字符串。 如:print

2、f(“Hello,welcome.n”); printf(“a=%d,b=%dn”,a,b);11/4/20212 2C語言程序設計第2頁/共31頁1 1格式控制字符串格式控制字符串用一對雙引號括起來,包含以下三部分內容。(1)按原樣輸出的字符;(2)轉義字符;(3)與輸出項對應的“格式說明符”:要求以%開頭,格式說明符在個數和類型上應該與輸出項相對應。11/4/20213 3C語言程序設計第3頁/共31頁各種格式控制符列表:11/4/20214 4C語言程序設計格式符格式符輸出形式輸出形式輸出項類型輸出項類型數據輸出方式數據輸出方式-md-mo-mx-mud十進制整數o八進制整數x十六進制整

3、數u無符號整數int, shortunsigned intunsigned shortchar有-,指定的寬度內向左對齊;無-,右對齊m表示數據的輸出寬度(即:位數)。無 m 或總寬度超過位時按實際寬度輸出;不足m 位時,補空格-mld-mlo-mlx-mluld十進制整數lo八進制整數lx十六進制整數lu 無符號整數longunsigned long-m.nf-m.nef十進制小數e十進制指數自動選定格式floatdouble有-,左對齊;無-,右對齊 ;m表示數據的輸出寬度(即:位數),n 表示小數位數;無 m.n 或總寬度超過時,則按實際寬度輸出;有 m.n 輸出 m 位,其中小數 n

4、位;不足 m 位時,加空格g自動選定f或e格式floatdouble不輸出尾數中無效的0 ,以盡可能少地占輸出寬度。-mcc單個字符char有-,左對齊; 無-,右對齊無 m 則輸出單個字符;有 m 則輸出m 位,不足 m 位時補空格-m.nss字符串字符串有-,左對齊;無-,右對齊無 m.n 則按實際輸出全部字符串 有 m.n 則輸出前n 個字符串第4頁/共31頁 附加格式說明符: m、n 均是正整數, m 主要用于控制輸出數據的總寬度,n 用于控制輸出實數的小數位數或控制輸出字符串時可以輸出的實際字符數。 對齊標志:“-”,左對齊,右端補空格。缺省時為右對齊,左端補空格。 長度字符“l”:

5、長整型。11/4/20215 5C語言程序設計第5頁/共31頁如:long a=135790;printf(%ld,a);如果用%d輸出,就會發生錯誤,因為整型數據的范圍為3276832767,對long型數據應當用%ld格式輸出。對長整型數據也可以指定字段寬度,如將上面printf函數中的%ld改為%8ld,則輸出為: 135790 11/4/20216 6C語言程序設計第6頁/共31頁2 2輸出項表輸出項表printf函數中的 “輸出項表”部分由表達式組成,這些表達式應與 “格式控制字符串”中的格式說明符的類型一一對應,若 “輸出項表”中有多個表達式,則每個表達式之間應由逗號隔開,各輸出項

6、可以是任意合法的表達式(包括常量、變量和函數調用)。因此 printf 函數也具有計算的功能。11/4/20217 7C語言程序設計第7頁/共31頁 printf ( %dn , 100) ; /*輸出顯示100*/ printf ( %dn , 1234000+5678) ; /*輸出顯示:1239678*/ printf ( %fn , (x=123.0)+(y=0.4567) ; /*輸出顯示:123.456700*/ printf ( %6.2fn , 123.4567) ; /*輸出顯示:123.46*/ printf ( %.3fn , 123.4567) ; /*輸出顯示:123

7、.457*/ printf(“%d+%d=%d”,a,b,a+b);11/4/20218 8C語言程序設計第8頁/共31頁 說明: (1)格式控制符,按從左到右的順序,與輸出項表中的每個數據數據一一對應,且須與輸出項的數據類型一致,輸出項的值在對應格式控制符的位置上輸出。 (2)對于實數,可用%e%e,以標準指數形式標準指數形式輸出;或使用%g%g,讓系統系統根據數值的大小,自動選擇自動選擇%f或%e格式、且不輸出無意義的零。 (3)類型轉換字符x x、e e、g g,大小寫均可。大寫時,輸出數據中包含的字母也大寫。 其它類型轉換字符,必須小寫。例如,%f不能寫成%F。11/4/20219 9

8、C語言程序設計第9頁/共31頁(4)(4)準確地使用轉義字符。準確地使用轉義字符。特點:通常在輸出時產生一個控制操作。例如,轉義字符n,輸出時產生一個“換行”操作。printf函數實際輸出格式控制字符串的內容,只不過將輸出項的值對應到格式控制字符串中相應的格式字符對應的位置即可。11/4/20211010C語言程序設計第10頁/共31頁例:請寫出下列程序的執行結果。#include main() int a,b; a=10;b=20; printf(“a=%dtb=%dn”,a,b); printf(“a+b=%dna-b=%dna*b=%dna/b=%dn”,a+b,a-b,a*b,a/b)

9、11/4/20211111C語言程序設計第11頁/共31頁二二. . 格式輸入函數格式輸入函數給程序提供數據,可以使用:(1)賦值語句。只能賦一個固定的值,解決1 1個個特定的問題。(2)輸入函數scanf() 。能解決1 1類類特定的問題。顯然,采用scanf( )scanf( )函數函數,使得程序具有更好的適應性適應性。11/4/20211212C語言程序設計第12頁/共31頁格式:scanf(格式控制字符串,列表);功能:按格式字符串中規定的格式,在鍵盤上輸入各輸入項的數據,并依次賦給各輸入項,且具有對從輸入流中接收到的數據進行格式轉換的功能。因為要求在內存中保存所接收到的數據,因此,需

10、要提供接收數據的變量的地址。int r;scanf(“%d”,&r);11/4/20211313C語言程序設計第13頁/共31頁1 1格式控制字符串11/4/20211414C語言程序設計格式符輸入形式輸入項類型數據輸入方式mdmomxd十進制整數o八進制整數x十六進制整數int, shortunsigned intunsigned short無 m 按實際位數輸入 有 m只能輸入 m 位 不足 m 位,以 Enter 鍵或空格結束mldmlomlxld十進制整數lo八進制整數lx十六進制整數longunsigned longmfmef十進制小數e十進制指數floatdoublemlf

11、mlelf十進制小數le十進制指數floatdouble mcc單個字符char無 m僅取單個字符,以 Enter 結束有 m 輸入 m 個字符,僅取第一個 mss字符串字符串無 m 輸入字符至回車或空格結束 有 m 僅取前 m 個字符 第14頁/共31頁、輸入項地址表、輸入項地址表可以是變量首地址變量首地址、數組名數組名,或者指針變量指針變量。變量首地址的表示: & &變量名變量名地址運算符&用于取得指定變量的地址。相鄰2個輸入項首地址,用逗號分開。當以數值格式從輸入流中讀取數據時,scanf()可以跳過空格、換行及跳格符(在輸入流中,數值型數據須以這些空白字符分隔)

12、。11/4/20211515C語言程序設計地址運算符第15頁/共31頁scanf(“%d%f”,&a,&b);當程序執行到輸入語句時,會停止運行,等待用戶輸入。11/4/20211616C語言程序設計第16頁/共31頁3 3說明說明(1)在 scanf函數 “格式控制”部分中的每個格式說明符都必須在“地址表”中有一個變量與之對應,且類型一致。輸入的數據必須是常量,不能是表達式,而且按輸入項的前后次序順序輸入數據。 (2)在輸入數值型數據時,各數據之間要使用 “空格”、“Tab”或 “回車”鍵(Enter 鍵)作為分隔;如果格式說明符之間包含其他字符,則輸入數據時,應輸入與這些字

13、符相同的字符做間隔(如逗號)。11/4/20211717C語言程序設計第17頁/共31頁 (3)在輸入字符型數據時,由于“空格”也作為有效字符輸入,因此,不需要用“空格”做分隔,只要輸入一個字符即可。故輸入字符型數據時,數據之間不用分隔符。 (4)在格式說明符的前面指定輸入數據所占的列數時,系統將自動按此列數來截取所需的數據。 (5)如果在格式控制字符串中,含有不屬于格式說明的其他字符,在輸入數據時,必須在對應位置上原樣輸入這些字符,盡量不要包含其它字符。11/4/20211818C語言程序設計第18頁/共31頁 (6)如果在% 后有一個 “*”附加說明符,表示跳過輸入流中它對應的數據(P29

14、)。 (7)在scanf函數中不使用u說明符,對unsigned型數據,以d或o、x格式輸入。 (8)在用scanf函數輸入數據時,不能規定精度。 11/4/20211919C語言程序設計第19頁/共31頁三、字符輸入、輸出函數三、字符輸入、輸出函數1 1字符輸入函數字符輸入函數 格式: 變量=getchar() 頭文件:stdio.h 變量=getch() 頭文件:conio.h 功能:用于從鍵盤輸入一個字符。 前者的執行過程:執行到此將等待輸入,只有當用戶輸入字符,并按 Enter鍵后,才接收輸入的第 1 個字符,并在屏幕上回顯該字符,同時送到內存的緩沖區,賦給指定的變量。并且對空格符、制

15、表符(Tab 鍵)和回車符(Enter 鍵)都被當作有效字符讀入。11/4/20212020C語言程序設計第20頁/共31頁 getch()函數是立即接收用戶來自鍵盤上的輸入(不等按下回車),不把字符回顯到屏幕上。2 2字符輸出函數字符輸出函數 格式:putchar(字符表達式) 功能:將指定字符表達式的值在標準輸出設備(通常是顯示器)上輸出。可以是字符常量、字符變量或整型表達式,其功能等價于:printf(%c,ch)。 11/4/20212121C語言程序設計第21頁/共31頁#include main() char c; c=getchar(); /*從鍵盤讀入字符直到回車結束*/ pu

16、tchar(c); /*顯示輸入的第一個字符*/ printf(Press any key to continue.); getch(); /*等待按任一健*/ 11/4/20212222C語言程序設計第22頁/共31頁 第二節順序結構程序設計第二節順序結構程序設計 一、順序結構程序一、順序結構程序 一般包括兩部分: 1程序開頭的編譯預處理命令編譯預處理命令。 如果要在程序中使用標準庫函數,則必須使用編譯預處理命令#include#include,將相應的頭文件包含進來。11/4/20212323C語言程序設計第23頁/共31頁2函數體(1)變量定義語句;(2)輸入語句;(3)運算語句;(4)

17、輸出語句。 3執行流程各語句是按照出現的次序,被順序執行,且每個語句都會被執行到11/4/20212424C語言程序設計第24頁/共31頁二、賦值語句賦值語句是由賦值表達式加上一個分號構成。一個程序用得最多的語句是賦值語句。例:輸入三角形的三邊長,求三角形面積。設輸入的三邊長a、b、c能構成三角形。從數學知識已知求三角形面積的公式為:area=(s*(s-a)*(s-b)*(s-c);其中s=(a+b+c)/2。11/4/20212525C語言程序設計第25頁/共31頁 #include #include main() float a,b,c,s,area; scanf(“%f,%f,%f”,

18、&a,&b,&c);/*注意輸入數據的分隔*/ s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); printf(a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2fn,a,b,c,s); printf(area=%7.2fn,area); 11/4/20212626C語言程序設計第26頁/共31頁 運行情況如下: 3,4,6 a= 3.00,b= 4.00,c= 6.00,s= 6.50 area= 5.33 程序說明:程序中sqrt()是求平方根的函數。 由于要調用數學函數庫中的函數,必須在程序的開頭加一條#include命令,把文件math.h包含到程序中。 請注意,以后凡在程序中要用到數學函數庫中的函數,都應當包含math.h頭文件。11/4/20212

溫馨提示

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

評論

0/150

提交評論