版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第3 3章章 簡(jiǎn)單程序設(shè)計(jì)簡(jiǎn)單程序設(shè)計(jì) 3.1C語(yǔ)言的基本語(yǔ)句語(yǔ)言的基本語(yǔ)句3.2 順序結(jié)構(gòu)順序結(jié)構(gòu)3.3 數(shù)據(jù)輸入與輸出數(shù)據(jù)輸入與輸出3.4 程序舉例程序舉例C C語(yǔ)句可分為以下語(yǔ)句可分為以下5 5種類型種類型: :1.1.表達(dá)式語(yǔ)句表達(dá)式語(yǔ)句 由表達(dá)式組成,其一般形式是:由表達(dá)式組成,其一般形式是: 表達(dá)式表達(dá)式; ; 典型例子典型例子2.2.函數(shù)調(diào)用語(yǔ)句函數(shù)調(diào)用語(yǔ)句 由一個(gè)函數(shù)調(diào)用加上一個(gè)分號(hào)構(gòu)成,其作用是完由一個(gè)函數(shù)調(diào)用加上一個(gè)分號(hào)構(gòu)成,其作用是完成特定功能。它的一般形式是:成特定功能。它的一般形式是: 函數(shù)名函數(shù)名( (參數(shù)列表參數(shù)列表);); 典型例子典型例子3.1C C語(yǔ)言語(yǔ)言
2、的基本的基本語(yǔ)句語(yǔ)句3.3.控制語(yǔ)句控制語(yǔ)句 用于完成一定的控制功能,以形成程序的各用于完成一定的控制功能,以形成程序的各種結(jié)構(gòu)和流程控制。種結(jié)構(gòu)和流程控制。C C語(yǔ)言有語(yǔ)言有9 9種控制語(yǔ)句,分三種控制語(yǔ)句,分三類:類:(1)條件判斷語(yǔ)句,構(gòu)成選擇結(jié)構(gòu):條件判斷語(yǔ)句,構(gòu)成選擇結(jié)構(gòu): ifif語(yǔ)句、語(yǔ)句、switchswitch語(yǔ)句語(yǔ)句(2)循環(huán)語(yǔ)句,構(gòu)成循環(huán)結(jié)構(gòu):循環(huán)語(yǔ)句,構(gòu)成循環(huán)結(jié)構(gòu): forfor語(yǔ)句、語(yǔ)句、whilewhile語(yǔ)句、語(yǔ)句、do-whiledo-while語(yǔ)句語(yǔ)句(3)轉(zhuǎn)向控制語(yǔ)句轉(zhuǎn)向控制語(yǔ)句 限定轉(zhuǎn)向語(yǔ)句限定轉(zhuǎn)向語(yǔ)句: :breakbreak、continueconti
3、nue、returnreturn語(yǔ)句語(yǔ)句 無(wú)條件轉(zhuǎn)向語(yǔ)句無(wú)條件轉(zhuǎn)向語(yǔ)句:goto:goto語(yǔ)句語(yǔ)句 4.4.復(fù)合語(yǔ)句復(fù)合語(yǔ)句 是用大括號(hào)是用大括號(hào) 將若干語(yǔ)句組合在一起,在將若干語(yǔ)句組合在一起,在語(yǔ)法上相當(dāng)于一條語(yǔ)句。用于語(yǔ)法上相當(dāng)于一條語(yǔ)句。用于ifif語(yǔ)句的一個(gè)分支或語(yǔ)句的一個(gè)分支或循環(huán)語(yǔ)句的循環(huán)體等。由于復(fù)合語(yǔ)句中還可以定義循環(huán)語(yǔ)句的循環(huán)體等。由于復(fù)合語(yǔ)句中還可以定義變量,因此又稱分程序。變量,因此又稱分程序。 注意:復(fù)合語(yǔ)句外沒(méi)有分號(hào),其中最后一個(gè)語(yǔ)注意:復(fù)合語(yǔ)句外沒(méi)有分號(hào),其中最后一個(gè)語(yǔ)句的分號(hào)不能省略。句的分號(hào)不能省略。5.5.空語(yǔ)句空語(yǔ)句 只有一個(gè)分號(hào)沒(méi)有其他內(nèi)容的語(yǔ)句。其形式為
4、:只有一個(gè)分號(hào)沒(méi)有其他內(nèi)容的語(yǔ)句。其形式為: ; 常用于循環(huán)中,表示循環(huán)體什么都不做。常用于循環(huán)中,表示循環(huán)體什么都不做。 程序結(jié)構(gòu)分為順序、選擇、循環(huán)三種。任何復(fù)雜程序結(jié)構(gòu)分為順序、選擇、循環(huán)三種。任何復(fù)雜的程序都是由這三種基本結(jié)構(gòu)組成。的程序都是由這三種基本結(jié)構(gòu)組成。3.2 順序結(jié)構(gòu)順序結(jié)構(gòu) 順序結(jié)構(gòu),按語(yǔ)句出現(xiàn)先后順序依次執(zhí)行的程序結(jié)構(gòu)。順序結(jié)構(gòu),按語(yǔ)句出現(xiàn)先后順序依次執(zhí)行的程序結(jié)構(gòu)。選擇結(jié)構(gòu),又稱選取或分支結(jié)構(gòu),根據(jù)給定條件是否成立,選擇結(jié)構(gòu),又稱選取或分支結(jié)構(gòu),根據(jù)給定條件是否成立,以決定程序的分支轉(zhuǎn)向的程序結(jié)構(gòu),詳見第以決定程序的分支轉(zhuǎn)向的程序結(jié)構(gòu),詳見第4章。章。循環(huán)結(jié)構(gòu),又稱重
5、復(fù)結(jié)構(gòu),根據(jù)條件反復(fù)執(zhí)行某一部分語(yǔ)句循環(huán)結(jié)構(gòu),又稱重復(fù)結(jié)構(gòu),根據(jù)條件反復(fù)執(zhí)行某一部分語(yǔ)句的程序結(jié)構(gòu),詳見第的程序結(jié)構(gòu),詳見第5章。章。順序結(jié)構(gòu)是程序設(shè)計(jì)中最順序結(jié)構(gòu)是程序設(shè)計(jì)中最簡(jiǎn)單、最基本的結(jié)構(gòu),其簡(jiǎn)單、最基本的結(jié)構(gòu),其特點(diǎn)是程序運(yùn)行時(shí),按語(yǔ)特點(diǎn)是程序運(yùn)行時(shí),按語(yǔ)句書寫的次序依次執(zhí)行,句書寫的次序依次執(zhí)行,其結(jié)構(gòu)如右圖所示。其結(jié)構(gòu)如右圖所示。順序結(jié)構(gòu)一般由函數(shù)調(diào)用順序結(jié)構(gòu)一般由函數(shù)調(diào)用語(yǔ)句、說(shuō)明語(yǔ)句、表達(dá)式語(yǔ)句、說(shuō)明語(yǔ)句、表達(dá)式語(yǔ)句和輸入輸出語(yǔ)句組成。語(yǔ)句和輸入輸出語(yǔ)句組成。AB順序結(jié)構(gòu)順序結(jié)構(gòu)圖圖 順序結(jié)構(gòu)流程圖順序結(jié)構(gòu)流程圖#include main() int a,b,c; a=123
6、;b=456; c=a+b; printf(nc=%dn,c);【例【例3-1】分析下面程序分析下面程序預(yù)處理命令預(yù)處理命令變量變量a a,b b,c c聲明聲明a a,b b賦初值賦初值賦值語(yǔ)句賦值語(yǔ)句c=a+bc=a+b輸出變量輸出變量c c的值的值例例3-13-1的流的流程程從例從例3-13-1可以看出,順序結(jié)構(gòu)的程序框架如下:可以看出,順序結(jié)構(gòu)的程序框架如下:# #開頭的預(yù)編譯命令行開頭的預(yù)編譯命令行main()main() 局部變量聲明語(yǔ)句局部變量聲明語(yǔ)句; ; 可執(zhí)行語(yǔ)句可執(zhí)行語(yǔ)句; ; 3.3 數(shù)據(jù)輸入與輸出數(shù)據(jù)輸入與輸出 printf( )函數(shù)的功能是向系統(tǒng)顯示器輸出若干函數(shù)的
7、功能是向系統(tǒng)顯示器輸出若干個(gè)任意類型的數(shù)據(jù)。個(gè)任意類型的數(shù)據(jù)。1. .printf( )函數(shù)調(diào)用形式函數(shù)調(diào)用形式 printf( (格式控制字符串,輸出列表格式控制字符串,輸出列表) ) 注意:調(diào)用輸入輸出函數(shù)時(shí),一般在程序開頭加頭文注意:調(diào)用輸入輸出函數(shù)時(shí),一般在程序開頭加頭文件:件: #include ,printf( )和和scanf( )可省略??墒÷?。3.3.1 格式化輸出函數(shù)格式化輸出函數(shù) printf( ) 格式說(shuō)明格式說(shuō)明 一般字符一般字符按原樣輸出按原樣輸出轉(zhuǎn)義字符轉(zhuǎn)義字符作用:換行作用:換行輸出列表輸出列表printf(a=%dn,a);printf函數(shù)簡(jiǎn)例函數(shù)簡(jiǎn)例格式控制
8、字符串和輸出列表都是函數(shù)的參數(shù),其中:格式控制字符串和輸出列表都是函數(shù)的參數(shù),其中:(1)格式控制字符串,它包括兩個(gè)信息:)格式控制字符串,它包括兩個(gè)信息: 格式說(shuō)明符。由格式說(shuō)明符。由“%”開頭,以格式字符結(jié)束的一串字符,開頭,以格式字符結(jié)束的一串字符,最簡(jiǎn)單的如最簡(jiǎn)單的如%d,%c,%f等。它的作用是將要輸出的數(shù)據(jù)轉(zhuǎn)等。它的作用是將要輸出的數(shù)據(jù)轉(zhuǎn)化成指定的格式輸出?;芍付ǖ母袷捷敵?。 原樣輸出字符,含一般字符和轉(zhuǎn)義字符。一般起提示、原樣輸出字符,含一般字符和轉(zhuǎn)義字符。一般起提示、分隔數(shù)據(jù)和換行等作用。如例分隔數(shù)據(jù)和換行等作用。如例3-1中中printf(printf(“nc=%dnnc=
9、%dn”,c);c);中雙撇號(hào)內(nèi)的中雙撇號(hào)內(nèi)的nn和和c=c=。(2)輸出列表是需要輸出的常量、變量、函數(shù)、表達(dá)式。)輸出列表是需要輸出的常量、變量、函數(shù)、表達(dá)式?!菊f(shuō)明說(shuō)明】格式說(shuō)明符的一般形式為:格式說(shuō)明符的一般形式為: %-+0#整數(shù)整數(shù)1.整數(shù)整數(shù)2l或或h 格式字符格式字符它是由它是由“%”開頭,以格式字符開頭,以格式字符(英文字母英文字母)結(jié)束的一串字符,用結(jié)束的一串字符,用以說(shuō)明輸出數(shù)據(jù)的類型、長(zhǎng)度、位數(shù)等,其中以說(shuō)明輸出數(shù)據(jù)的類型、長(zhǎng)度、位數(shù)等,其中 表示可選項(xiàng)。表示可選項(xiàng)。因此,除了因此,除了%以外,格式字符是格式說(shuō)明符中必須要有的,它以外,格式字符是格式說(shuō)明符中必須要有的,
10、它控制輸出列表里相應(yīng)輸出項(xiàng)數(shù)據(jù)的輸出類型。表控制輸出列表里相應(yīng)輸出項(xiàng)數(shù)據(jù)的輸出類型。表3-2給出了常用給出了常用的格式字符及含義。注意:有符號(hào)整數(shù)按無(wú)符號(hào)格式將輸出其的格式字符及含義。注意:有符號(hào)整數(shù)按無(wú)符號(hào)格式將輸出其補(bǔ)碼;無(wú)符號(hào)整數(shù)按有符號(hào)格式將作為補(bǔ)碼輸出其數(shù)。補(bǔ)碼;無(wú)符號(hào)整數(shù)按有符號(hào)格式將作為補(bǔ)碼輸出其數(shù)。格式說(shuō)明符格式說(shuō)明符printf函數(shù)常用類型格式字符表函數(shù)常用類型格式字符表格式字符格式字符格式字符含義格式字符含義d d或或i i表示以十進(jìn)制形式輸出一個(gè)帶符號(hào)的整數(shù)表示以十進(jìn)制形式輸出一個(gè)帶符號(hào)的整數(shù)o o表示以八進(jìn)制形式輸出一個(gè)無(wú)符號(hào)的整數(shù)表示以八進(jìn)制形式輸出一個(gè)無(wú)符號(hào)的整數(shù)X
11、 X,x x表示以十六進(jìn)制形式輸出一個(gè)無(wú)符號(hào)的整數(shù)表示以十六進(jìn)制形式輸出一個(gè)無(wú)符號(hào)的整數(shù)u u表示以十進(jìn)制形式輸出一個(gè)無(wú)符號(hào)的整數(shù)表示以十進(jìn)制形式輸出一個(gè)無(wú)符號(hào)的整數(shù)f f表示以小數(shù)形式輸出帶符號(hào)的實(shí)數(shù)(包括單、雙精度)表示以小數(shù)形式輸出帶符號(hào)的實(shí)數(shù)(包括單、雙精度)E E,e e表示以指數(shù)形式輸出帶符號(hào)的實(shí)數(shù)表示以指數(shù)形式輸出帶符號(hào)的實(shí)數(shù)G G,g g表示選擇表示選擇%f%f或或%e%e格式輸出實(shí)數(shù)(選擇占寬度較小的一種格式輸出)格式輸出實(shí)數(shù)(選擇占寬度較小的一種格式輸出)c c表示輸出一個(gè)單字符表示輸出一個(gè)單字符s s表示輸出一個(gè)字符串表示輸出一個(gè)字符串注:注:大寫字母表示輸出中的字母為大
12、寫大寫字母表示輸出中的字母為大寫格式說(shuō)明符各項(xiàng)的意義如下圖所示。格式說(shuō)明符各項(xiàng)的意義如下圖所示。整數(shù)整數(shù)1.整數(shù)整數(shù)2:整數(shù):整數(shù)1控制輸出長(zhǎng)度控制輸出長(zhǎng)度(域?qū)捰驅(qū)?,整數(shù),整數(shù)2對(duì)不同格對(duì)不同格式符有不同含義,具體作用見上圖。式符有不同含義,具體作用見上圖。1、兩者缺省情況下:、兩者缺省情況下: 對(duì)整數(shù)和字符串按實(shí)際字符數(shù)輸出;對(duì)整數(shù)和字符串按實(shí)際字符數(shù)輸出; (VC中中)對(duì)實(shí)數(shù)對(duì)實(shí)數(shù)(float和和double): 小數(shù)型:整數(shù)部分原樣輸出,默認(rèn)輸出小數(shù)型:整數(shù)部分原樣輸出,默認(rèn)輸出6位小數(shù),多余小位小數(shù),多余小數(shù)舍入處理。數(shù)舍入處理。 指數(shù)型:正數(shù)默認(rèn)輸出指數(shù)型:正數(shù)默認(rèn)輸出1位整數(shù)、
13、小數(shù)點(diǎn)、位整數(shù)、小數(shù)點(diǎn)、6位小數(shù)、位小數(shù)、4位位指數(shù)指數(shù)(e或或E、+或或號(hào)及號(hào)及3位整數(shù)位整數(shù))共共13個(gè)字符個(gè)字符(負(fù)數(shù)負(fù)數(shù)12個(gè)字符個(gè)字符)。2、有整數(shù)、有整數(shù)1無(wú)整數(shù)無(wú)整數(shù)2:默認(rèn)輸出:默認(rèn)輸出(整數(shù)、字符串全部;實(shí)數(shù)同整數(shù)、字符串全部;實(shí)數(shù)同上上)3、無(wú)整數(shù)、無(wú)整數(shù)1有整數(shù)有整數(shù)2:按上圖說(shuō)明輸出:按上圖說(shuō)明輸出(實(shí)數(shù)整數(shù)部分全部輸實(shí)數(shù)整數(shù)部分全部輸出出)【說(shuō)明說(shuō)明】4、域?qū)捛闆r、域?qū)捛闆r(有整數(shù)有整數(shù)1,有或無(wú)整數(shù),有或無(wú)整數(shù)2) 指定域?qū)挷蛔?,按需增加域?qū)?。指定域?qū)挷蛔?,按需增加域?qū)挕?指定域?qū)捀挥啵褐付ㄓ驅(qū)捀挥啵?缺省缺省右對(duì)齊右對(duì)齊: 無(wú)無(wú)0控制:前加空格;控制:前加空格;
14、有有0控制:數(shù)值型前加控制:數(shù)值型前加0填齊;填齊; 其它類型前加空格。其它類型前加空格。 有有控制左對(duì)齊,按域?qū)捄竺婕涌崭???刂谱髮?duì)齊,按域?qū)捄竺婕涌崭?。長(zhǎng)度修正長(zhǎng)度修正l:長(zhǎng)度修正:長(zhǎng)度修正l可與可與d、i、o、x、X、u、f、e、E、g、G配合使用,配合使用,long型整數(shù)在基本整數(shù)范圍內(nèi)、型整數(shù)在基本整數(shù)范圍內(nèi)、double型實(shí)數(shù)在型實(shí)數(shù)在float型實(shí)數(shù)范圍內(nèi)可以不加型實(shí)數(shù)范圍內(nèi)可以不加l輸出,否則,必須加長(zhǎng)度修正輸出,否則,必須加長(zhǎng)度修正l才才能正常輸出能正常輸出【說(shuō)明說(shuō)明】【注意注意】(1)實(shí)數(shù)精度)實(shí)數(shù)精度(有效數(shù)字有效數(shù)字)由輸出項(xiàng)類型控制由輸出項(xiàng)類型控制(float7位位d
15、ouble 16位位),對(duì),對(duì)float型輸出項(xiàng)用型輸出項(xiàng)用%lf格式不能增加精度格式不能增加精度;增大增大“整整數(shù)數(shù)2”可增加實(shí)數(shù)輸出的小數(shù)位數(shù),但不能增加精度??稍黾訉?shí)數(shù)輸出的小數(shù)位數(shù),但不能增加精度。(2)輸出項(xiàng)從右向左計(jì)算后,按格式說(shuō)明的順序、類型和)輸出項(xiàng)從右向左計(jì)算后,按格式說(shuō)明的順序、類型和要求對(duì)應(yīng)輸出。格式說(shuō)明和輸出項(xiàng)的個(gè)數(shù)類型應(yīng)相同,如不要求對(duì)應(yīng)輸出。格式說(shuō)明和輸出項(xiàng)的個(gè)數(shù)類型應(yīng)相同,如不匹配系統(tǒng)不能正確輸出匹配系統(tǒng)不能正確輸出格式說(shuō)明的個(gè)數(shù)少于輸出項(xiàng)個(gè)數(shù),多余的輸出項(xiàng)將不格式說(shuō)明的個(gè)數(shù)少于輸出項(xiàng)個(gè)數(shù),多余的輸出項(xiàng)將不輸出;輸出;格式說(shuō)明的個(gè)數(shù)多于輸出項(xiàng)個(gè)數(shù),多余的格式說(shuō)明將
16、格式說(shuō)明的個(gè)數(shù)多于輸出項(xiàng)個(gè)數(shù),多余的格式說(shuō)明將輸出隨機(jī)的值。輸出隨機(jī)的值。整型數(shù)據(jù)按整型數(shù)據(jù)按%f 輸出或者實(shí)型數(shù)據(jù)按輸出或者實(shí)型數(shù)據(jù)按%d 輸出,均出現(xiàn)輸出,均出現(xiàn)輸出錯(cuò)誤結(jié)果。輸出錯(cuò)誤結(jié)果。(3)格式字符除)格式字符除X(表示輸出的十六進(jìn)制數(shù)用大寫(表示輸出的十六進(jìn)制數(shù)用大寫字母輸出)、字母輸出)、E(表示輸出的指數(shù)(表示輸出的指數(shù)e用大寫字母用大寫字母E輸輸出)、出)、G(表示若選用指數(shù)形式輸出,則用大寫字(表示若選用指數(shù)形式輸出,則用大寫字母母E輸出)外,必須是小寫字母。如輸出)外,必須是小寫字母。如%d不能寫成不能寫成%D。(4)若想輸出字符)若想輸出字符“%”,則在格式字符串中用連
17、,則在格式字符串中用連續(xù)兩個(gè)續(xù)兩個(gè)%表示。如:表示。如:printf(“%f%”,1.0/4); 則輸出:則輸出:0.250000% 【注意注意】#include main() int a,b,c; a=123;b=456; c=a+b; printf(a+b=%d+%d=%dn,a,b,c); printf(“a+b=%hd+%hd=%hdn”,a,b,c); printf(a+b=%2d+%2d=%5dn,a,b,c); printf(a+b=%02d+%02d=%05dn,a,b,c); 【例【例3-2】分析下面程序運(yùn)行結(jié)果】分析下面程序運(yùn)行結(jié)果#include main() unsig
18、ned int a=65535; int b=-2; printf(“a=%d,%o,%x,%un”,a,a,a,a); printf(“a=%d,%o,%x,%un”,a,a,a,a);【例【例3-3】無(wú)符號(hào)數(shù)據(jù)的輸出無(wú)符號(hào)數(shù)據(jù)的輸出#include main() float x,y,z; x=123.234;y=0.000345;z=-98.567; printf(x=%.4f, x=%.2f, x=%+en,x,x,x); printf(y=%f, y=%8.4f, y=%10.3en,y,y,y); printf(z=%+f, z=%+e, z=%+gn,z,z,z);【例【例3-4】
19、分析下面程序運(yùn)行結(jié)果分析下面程序運(yùn)行結(jié)果#include main() double x,y,z; x=123.234;y=-0.000345;z=-98.567; printf(“x=%lf,x=%.4lf,x=%2lf,x=%+e n”,x,x,x,x); printf(y=%lf, y=%+lf, y=%len,y,y,y); printf(z=%fn,z);【例【例3-5】分析下面程序運(yùn)行結(jié)果分析下面程序運(yùn)行結(jié)果#include main() printf(n %c,a); /*輸出單個(gè)字符輸出單個(gè)字符*/ printf(n %s,abc); /*輸出一個(gè)字符串輸出一個(gè)字符串*/【例【
20、例3-6】分析下面程序運(yùn)行結(jié)果分析下面程序運(yùn)行結(jié)果3.3.2 格式化輸入函數(shù)格式化輸入函數(shù) scanfscanfscanfscanf()函數(shù)的功能是從鍵盤上將數(shù)據(jù)按用戶指定的()函數(shù)的功能是從鍵盤上將數(shù)據(jù)按用戶指定的格式輸入并賦給指定變量。格式輸入并賦給指定變量。1.scanf1.scanf()函數(shù)調(diào)用形式()函數(shù)調(diào)用形式 scanfscanf(格式控制字符串,地址列表);(格式控制字符串,地址列表); 格式控制字符串的定義與使用方法和格式控制字符串的定義與使用方法和printfprintf函數(shù)相函數(shù)相似,但不能顯示非格式字符串,即不能顯示提示字符串。似,但不能顯示非格式字符串,即不能顯示提示
21、字符串。地址列表是要賦值的各變量地址,地址是由地址運(yùn)算符地址列表是要賦值的各變量地址,地址是由地址運(yùn)算符“&”&”后跟變量名組成,如后跟變量名組成,如&x&x表示變量表示變量x x的地址。的地址。 格式說(shuō)明符以格式說(shuō)明符以%開始,后面跟一個(gè)格式符,中間可以有若干個(gè)開始,后面跟一個(gè)格式符,中間可以有若干個(gè)附加字符,格式字符串一般形式為:附加字符,格式字符串一般形式為: %輸入數(shù)據(jù)寬度輸入數(shù)據(jù)寬度m長(zhǎng)度長(zhǎng)度 類型類型其中:其中: :表示可選項(xiàng):表示可選項(xiàng):表示輸入的數(shù)值不賦給相應(yīng)的變量,即跳過(guò)該數(shù)據(jù)不讀。:表示輸入的數(shù)值不賦給相應(yīng)的變量,即跳過(guò)該數(shù)據(jù)不讀。輸入數(shù)據(jù)寬度輸入數(shù)據(jù)寬度m:表示按十進(jìn)制正
22、整數(shù):表示按十進(jìn)制正整數(shù)m的寬度輸入數(shù)據(jù)。的寬度輸入數(shù)據(jù)。長(zhǎng)度長(zhǎng)度:長(zhǎng)度格式符為:長(zhǎng)度格式符為l和和h,l表示輸入長(zhǎng)整型數(shù)據(jù)或雙精度實(shí)表示輸入長(zhǎng)整型數(shù)據(jù)或雙精度實(shí)型數(shù)據(jù);型數(shù)據(jù);h表示輸入短整型數(shù)據(jù)。表示輸入短整型數(shù)據(jù)。類型:是格式說(shuō)明符中必須要有的,其格式符的意義與類型:是格式說(shuō)明符中必須要有的,其格式符的意義與printf函數(shù)基本相同,具體如表函數(shù)基本相同,具體如表3-3所示。所示。2. 格式說(shuō)明符格式說(shuō)明符表表3-33-3scanfscanf函數(shù)常用類型格式符表函數(shù)常用類型格式符表格式字符格式字符格式字符含義格式字符含義d(id(i) )表示以十進(jìn)制形式輸入一個(gè)整數(shù)表示以十進(jìn)制形式輸入一
23、個(gè)整數(shù)o o表示以八進(jìn)制形式輸入一個(gè)整數(shù)表示以八進(jìn)制形式輸入一個(gè)整數(shù)x(Xx(X) )表示以十六進(jìn)制形式輸入一個(gè)整數(shù)表示以十六進(jìn)制形式輸入一個(gè)整數(shù)u u表示以十進(jìn)制形式輸入一個(gè)無(wú)符號(hào)的整數(shù)表示以十進(jìn)制形式輸入一個(gè)無(wú)符號(hào)的整數(shù)f f或或e(Ee(E) )表示輸入一個(gè)實(shí)數(shù),可以是小數(shù)形式或指表示輸入一個(gè)實(shí)數(shù),可以是小數(shù)形式或指數(shù)形式數(shù)形式g(Gg(G) )與與f f或或e e的作用相同的作用相同c c表示輸入一個(gè)字符表示輸入一個(gè)字符s s表示輸入一個(gè)字符串表示輸入一個(gè)字符串【注意注意】(1)scanf函數(shù)中的函數(shù)中的“格式控制字符串格式控制字符串”后面應(yīng)該是變量的地后面應(yīng)該是變量的地址,而不應(yīng)是變
24、量名。例如輸入語(yǔ)句址,而不應(yīng)是變量名。例如輸入語(yǔ)句scanf(“%d,%d”,a,b);是錯(cuò)誤的,是錯(cuò)誤的,&不能少。不能少。(2)輸入數(shù)據(jù)時(shí)不能規(guī)定數(shù)據(jù)的精度。如)輸入數(shù)據(jù)時(shí)不能規(guī)定數(shù)據(jù)的精度。如scanf(%8.2f ,&a);是不合法的。是不合法的。(3)在)在“格式控制字符串格式控制字符串”中除了格式說(shuō)明符外,還有其他中除了格式說(shuō)明符外,還有其他字符,則在輸入數(shù)據(jù)時(shí)在對(duì)應(yīng)位置上應(yīng)輸入與這些字符相同的字符,則在輸入數(shù)據(jù)時(shí)在對(duì)應(yīng)位置上應(yīng)輸入與這些字符相同的字符。例如字符。例如 scanf (a=%d,b=%d,&a,&b);則輸入時(shí)應(yīng)輸入:則輸入時(shí)應(yīng)輸入: a=12,b=-2其他任何輸入形
25、式都不正確。其他任何輸入形式都不正確。例例3-7注意注意(4)輸入數(shù)據(jù)時(shí),遇以下情況認(rèn)為該數(shù)據(jù)輸入結(jié)束:)輸入數(shù)據(jù)時(shí),遇以下情況認(rèn)為該數(shù)據(jù)輸入結(jié)束: 按指定的寬度結(jié)束;按指定的寬度結(jié)束; 遇空格,或遇空格,或“回車回車”鍵,或鍵,或“Tab”鍵;鍵; 遇非法輸入。遇非法輸入。(5)在用)在用“%c”%c”格式輸入字符時(shí),所有輸入的字符(包格式輸入字符時(shí),所有輸入的字符(包括空格字符和括空格字符和“轉(zhuǎn)義字符轉(zhuǎn)義字符”)都作為有效字符。)都作為有效字符。(6)當(dāng)輸入的數(shù)據(jù)與輸出的類型不一樣時(shí),雖然編譯沒(méi))當(dāng)輸入的數(shù)據(jù)與輸出的類型不一樣時(shí),雖然編譯沒(méi)有提示出錯(cuò),但結(jié)果將不正確。有提示出錯(cuò),但結(jié)果將不
26、正確。/* EX3-8.C */#include main() int a,b,c; scanf(%3d%3d%4d,&a,&b,&c ); /*按長(zhǎng)度按長(zhǎng)度m進(jìn)行輸入進(jìn)行輸入*/ printf(na=%d,b=%d,c=%dn,a,b,c);【例【例3-8】 分析下面程序分析下面程序/* EX3-9.C */#include main() double a,b,c; scanf(%lf,%lf,&a,&b ); /*按雙精度進(jìn)行輸入按雙精度進(jìn)行輸入*/ c=a*b; printf(na*b=%lf*%lf=%len,a,b,c);【例【例3-9】 分析下面程序分析下面程序/* EX3-10.
27、C */#include main() char ch1,ch2; scanf(%c%c,&ch1,&ch2); printf(%c %cn,ch1,ch2);【例【例3-10】閱讀下面程序】閱讀下面程序/* EX3-11.C */#include main() int x,y; scanf(%2d%*3d%4d,&x,&y ); /*注意注意%*3d的作用的作用*/ printf(nx=%d,y=%d n,x,y);【例【例3-11】分析下面程序】分析下面程序#include main() int a; scanf(“%d”,&a ); /*輸入輸出類型不一致輸入輸出類型不一致*/ prin
28、tf(na=%ldn,a);【例【例3-12】分析下面程序分析下面程序3.3.3 字符數(shù)據(jù)的輸入與輸出字符數(shù)據(jù)的輸入與輸出C C語(yǔ)言為字符定義了兩個(gè)最基本的函數(shù):字符輸入語(yǔ)言為字符定義了兩個(gè)最基本的函數(shù):字符輸入函數(shù)函數(shù)getchargetchar和字符輸出函數(shù)和字符輸出函數(shù)putcharputchar。在使用這兩。在使用這兩個(gè)函數(shù)時(shí),程序的頭部一定要加上文件包含命令:個(gè)函數(shù)時(shí),程序的頭部一定要加上文件包含命令: #include 1. .字符輸入函數(shù)字符輸入函數(shù)getchar()getchar( )的功能是從標(biāo)準(zhǔn)設(shè)備(鍵盤)上讀入一個(gè)字的功能是從標(biāo)準(zhǔn)設(shè)備(鍵盤)上讀入一個(gè)字符。其一般調(diào)用形式
29、:符。其一般調(diào)用形式: getchar(); 語(yǔ)句語(yǔ)句ch=getcharch=getchar() () 和和 scanf(“%cscanf(“%c”,&ch&ch););功能相功能相同同#include main() char c1,c2;c1=getchar(); /*從鍵盤上接收一個(gè)字符賦給字符變量從鍵盤上接收一個(gè)字符賦給字符變量c1*/c2=getchar(); /*和和scanf(“%c”,&c2)等價(jià)等價(jià)*/printf(%c,%cn,c1,c2);【例【例3-13】字符輸入函數(shù)的使用字符輸入函數(shù)的使用2. 2. 字符輸出函數(shù)字符輸出函數(shù)putcharputchar()() 字符輸
30、出函數(shù)字符輸出函數(shù)putcharputchar()()的功能是向標(biāo)準(zhǔn)輸出的功能是向標(biāo)準(zhǔn)輸出設(shè)備(顯示器)輸出一個(gè)字符。其一般調(diào)用形式:設(shè)備(顯示器)輸出一個(gè)字符。其一般調(diào)用形式: putchar(c);其中:其中:c c是參數(shù),它可以是整型或字符型變量,也是參數(shù),它可以是整型或字符型變量,也可以是整型或字符型常量。當(dāng)是整型量時(shí),輸出以可以是整型或字符型常量。當(dāng)是整型量時(shí),輸出以該數(shù)值作為該數(shù)值作為ASCIIASCII碼所對(duì)應(yīng)的字符;當(dāng)是字符型量碼所對(duì)應(yīng)的字符;當(dāng)是字符型量時(shí),直接輸出字符常量。時(shí),直接輸出字符常量。 語(yǔ)名語(yǔ)名putchar(c) 和和 printf(“%cprintf(“%c”
31、,c)c)功能相同功能相同/* EX3-14.C */#include main() char x,y,z;x=a;y=+;z=b;putchar(x);putchar(y);putchar(z);putchar(132); putchar(n);printf(“%c%c%c132n”,x,y,z);【例【例3-14】字符輸出函數(shù)的使用】字符輸出函數(shù)的使用【例【例3-15】從鍵盤上輸入兩個(gè)整數(shù)放入變量】從鍵盤上輸入兩個(gè)整數(shù)放入變量a,b中,中,編程將這兩個(gè)變量中的數(shù)據(jù)交換。編程將這兩個(gè)變量中的數(shù)據(jù)交換?!痉治龇治觥?jī)蓚€(gè)數(shù)據(jù)交換,不能直接寫成】?jī)蓚€(gè)數(shù)據(jù)交換,不能直接寫成a=b;ba=b;b=a;
32、=a;,因?yàn)楫?dāng)執(zhí),因?yàn)楫?dāng)執(zhí)行行a=b;a=b;后,變量后,變量a a中的原值就被中的原值就被“沖沖”掉了,而與變量掉了,而與變量b b中的中的值相等,因此不能實(shí)現(xiàn)交換。正確的做法是另定義一個(gè)變量值相等,因此不能實(shí)現(xiàn)交換。正確的做法是另定義一個(gè)變量(假設(shè)是(假設(shè)是c c)作為暫存單元,在執(zhí)行)作為暫存單元,在執(zhí)行a=b;a=b;之前,先將變量之前,先將變量a a的的值放入值放入c c中保存起來(lái),然后執(zhí)行中保存起來(lái),然后執(zhí)行a=b;a=b;,最后再執(zhí)行,最后再執(zhí)行b=c;b=c;,由,由于于c c中保存的是中保存的是a a的值,這樣就將原來(lái)的值,這樣就將原來(lái)a a的值賦給了的值賦給了b b,從而實(shí)
33、,從而實(shí)現(xiàn)了兩個(gè)變量中的數(shù)據(jù)交換?,F(xiàn)了兩個(gè)變量中的數(shù)據(jù)交換。3.4 程序舉例程序舉例 程序程序#include main() int a,b,c; a=3;b=5; c=a;a=b;b=c; printf(a=%d,b=%dn,a,b); 35a3cb【例【例3-16】 從鍵盤上輸入一個(gè)英文小寫字母,編程輸出該從鍵盤上輸入一個(gè)英文小寫字母,編程輸出該字母所對(duì)應(yīng)的字母所對(duì)應(yīng)的ASCIIASCII碼和所對(duì)應(yīng)的大寫字母碼和所對(duì)應(yīng)的大寫字母【分析分析】在】在ASCIIASCII字符集中,大寫字母字符集中,大寫字母AZAZ是連續(xù)的是連續(xù)的(ASCIIASCII值從值從65906590),小寫字母),小寫
34、字母azaz也是連續(xù)的也是連續(xù)的(ASCIIASCII值從值從9712297122)。因此每對(duì)字母的)。因此每對(duì)字母的ASCIIASCII碼值差碼值差是相同的,都是是相同的,都是3232,即,即a-Aa-A、b-Bb-B、c-c-CC、z-Zz-Z都是都是3232。所以將小寫字母的。所以將小寫字母的ASCIIASCII碼值減去碼值減去3232,則得到的是所對(duì)應(yīng)的大寫字母,則得到的是所對(duì)應(yīng)的大寫字母ASCIIASCII碼碼值。同理,將大寫字母的值。同理,將大寫字母的ASCIIASCII碼值加上碼值加上3232,則得到,則得到的是所對(duì)應(yīng)的小寫字母的是所對(duì)應(yīng)的小寫字母ASCIIASCII碼值。碼值。
35、 程序程序#include main()char c1,c2;c1=getchar(); /*從鍵盤獲得一個(gè)小寫字母從鍵盤獲得一個(gè)小寫字母*/c2=c1-32; /*將小寫字母轉(zhuǎn)化為大寫字母將小寫字母轉(zhuǎn)化為大寫字母*/printf(%d,%cn,c1,c1); putchar(c2); #include #include main() float a,b,c,s,area; scanf(%f%f%f,&a,&b,&c); s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); printf(na=%.2f,b=%.2f,c=%.2fn,a,b,c); print
36、f(narea=%.3fn,area);【例【例3-17】輸入三角形的三條邊,編程求該三角形的面積】輸入三角形的三條邊,編程求該三角形的面積【例【例3-18】編程求解方程】編程求解方程#include #include main() float a,b,c,d,x1,x2; a=3;b=-5;c=-7; d=b*b-4*a*c; x1=(-b+sqrt(d)/(2*a);x2=(-b-sqrt(d)/(2*a); printf(x1=%.4f , x2=%.4fn,x1,x2);【例【例3-19】分析下面程序的運(yùn)行結(jié)果】分析下面程序的運(yùn)行結(jié)果#include main() int x=1,y=
37、5; printf(x=%d,y=%d,x,y); 【分析】本程序格式控制字符串中,有兩個(gè)連續(xù)的【分析】本程序格式控制字符串中,有兩個(gè)連續(xù)的%。前面已經(jīng)講過(guò),兩個(gè)連續(xù)的前面已經(jīng)講過(guò),兩個(gè)連續(xù)的%表示輸出一個(gè)表示輸出一個(gè)%,因此變,因此變量量x,y沒(méi)有對(duì)應(yīng)的輸出格式,只能輸出雙引號(hào)中的字符。沒(méi)有對(duì)應(yīng)的輸出格式,只能輸出雙引號(hào)中的字符?!纠纠?-20】分析下面程序的運(yùn)行結(jié)果】分析下面程序的運(yùn)行結(jié)果#include main() int a,b; a=0 x41; b=+a; printf(%d,%dn,a-,-b); printf(%c,%cn,+a,b+); 本章介紹了順序程序結(jié)構(gòu)、賦值語(yǔ)句、
38、基本的輸入本章介紹了順序程序結(jié)構(gòu)、賦值語(yǔ)句、基本的輸入/ /輸出輸出函數(shù)。重點(diǎn)講解了以下幾個(gè)方面的內(nèi)容:函數(shù)。重點(diǎn)講解了以下幾個(gè)方面的內(nèi)容:1 1. .scanfscanf、printfprintf、getchargetchar、putcharputchar四個(gè)函數(shù)的使用:四個(gè)函數(shù)的使用:(1) scanf(1) scanf和和getchargetchar都是輸入函數(shù),其功能是接收鍵盤上都是輸入函數(shù),其功能是接收鍵盤上輸入的數(shù)據(jù)。但輸入的數(shù)據(jù)。但scanfscanf函數(shù)可以按指定的格式輸入任何類型函數(shù)可以按指定的格式輸入任何類型的數(shù)據(jù),而的數(shù)據(jù),而getchargetchar函數(shù)只能接收一個(gè)字
39、符。函數(shù)只能接收一個(gè)字符。(2) printf(2) printf和和putcharputchar都是輸出函數(shù),其功能是向屏幕(都是輸出函數(shù),其功能是向屏幕(顯示器)輸出數(shù)據(jù)。但顯示器)輸出數(shù)據(jù)。但printfprintf函數(shù)可以按指定的格式輸出任函數(shù)可以按指定的格式輸出任何類型的數(shù)據(jù),而何類型的數(shù)據(jù),而putcharputchar函數(shù)只能輸出一個(gè)字符。函數(shù)只能輸出一個(gè)字符。(3) (3) 使用使用scanfscanf函數(shù)或函數(shù)或printfprintf函數(shù)可以在程序中不包含頭函數(shù)可以在程序中不包含頭文件文件stdio.hstdio.h,而使用,而使用getchargetchar函數(shù)或函數(shù)或putcharputchar函數(shù)在程序中函數(shù)在程序中必須包含頭文件必須包含頭文件stdio.hstdio.h。本章小結(jié)本章小結(jié)2 2. .格式控制字符串中格式符的含義及使用格式控制字符串中格式符的含義及使用格式控制串格式控制串?dāng)?shù)據(jù)對(duì)象類型數(shù)據(jù)對(duì)象類型 輸入數(shù)據(jù)形式輸入數(shù)據(jù)形式數(shù)據(jù)輸入格式數(shù)據(jù)輸入格式 %md%mdintint short short unsigned intunsigned intunsigned shortunsigned short十進(jìn)制整數(shù)十進(jìn)制整數(shù)無(wú)無(wú)m m則按實(shí)際位數(shù)輸入則按實(shí)際位數(shù)輸入無(wú)無(wú)m m則用分隔符或回車鍵表示則用分隔符或
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ó)文學(xué)試題及答案
- 納米晶體科普
- 特殊用餐包房管理制度(3篇)
- 礦石運(yùn)輸質(zhì)量管理制度(3篇)
- 2026年及未來(lái)5年市場(chǎng)數(shù)據(jù)中國(guó)海水淡化設(shè)備市場(chǎng)發(fā)展前景預(yù)測(cè)及投資戰(zhàn)略咨詢報(bào)告
- 《GA 574-2005警服材料 中空組合式大檐帽架》專題研究報(bào)告深度
- 《GAT 1384-2017刑事案件偵查業(yè)務(wù)實(shí)體數(shù)據(jù)項(xiàng)》專題研究報(bào)告
- 2025-2026學(xué)年四年級(jí)上冊(cè)道德與法治【知識(shí)點(diǎn)+單元+期中+期末測(cè)試卷題】
- 養(yǎng)老院九防制度
- 企業(yè)員工獎(jiǎng)懲與晉升管理制度
- 湖口縣2026年第一批單位公開選調(diào)事業(yè)編制工作人員【32人】參考題庫(kù)附答案
- 小區(qū)場(chǎng)地租賃合同協(xié)議
- 統(tǒng)計(jì)分析培訓(xùn)課件
- 2025至2030中國(guó)乳鐵蛋白行業(yè)調(diào)研及市場(chǎng)前景預(yù)測(cè)評(píng)估報(bào)告
- 2026年山東力明科技職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)筆試備考試題帶答案解析
- 2026年人教版七年級(jí)英語(yǔ)上冊(cè)期末真題試卷含答案
- 2025年阿勒泰地區(qū)哈巴河縣保安員招聘考試題庫(kù)附答案解析
- 高速公路bt合同范本
- 2026年《必背60題》酒店前廳接待經(jīng)理高頻面試題包含詳細(xì)解答
- 廣東省廣州市海珠區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 地下消防水池設(shè)備安裝方案
評(píng)論
0/150
提交評(píng)論