第3章順序結(jié)構(gòu)的程序設(shè)計(jì)_第1頁
第3章順序結(jié)構(gòu)的程序設(shè)計(jì)_第2頁
第3章順序結(jié)構(gòu)的程序設(shè)計(jì)_第3頁
第3章順序結(jié)構(gòu)的程序設(shè)計(jì)_第4頁
第3章順序結(jié)構(gòu)的程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)類型數(shù)據(jù)類型基本類型基本類型構(gòu)造類型構(gòu)造類型指針類型指針類型(*)空類型空類型(void)整型整型字符型字符型(char)浮點(diǎn)型浮點(diǎn)型長整型長整型(long int )基本整型基本整型(int)短整型短整型(short int)單精度浮點(diǎn)型單精度浮點(diǎn)型(float)雙精度浮點(diǎn)型雙精度浮點(diǎn)型(double)枚舉類型枚舉類型(enum)數(shù)組類型(數(shù)組類型( )結(jié)構(gòu)體類型結(jié)構(gòu)體類型(struct)共用體類型共用體類型(union)常量:常量:是指在程序運(yùn)行過程中其值不能被改變是指在程序運(yùn)行過程中其值不能被改變的量。如:的量。如: 整型常量:整型常量:12、-453、 02、0 x12 實(shí)型常量:

2、實(shí)型常量: 3.14、0.007、6.34e+04 字符常量:字符常量: a、! 、n、101 字符串常量:字符串常量:“jkkj”、“5483fd”、“a” 32022-4-303優(yōu)先級優(yōu)先級運(yùn)算符運(yùn)算符結(jié)合規(guī)則結(jié)合規(guī)則1 ( ) - . 從左至右從左至右2! + - - * & sizeof (類型名類型名)從右至左從右至左3* / %從左至右從左至右4+ -從左至右從左至右5從左至右從左至右6 =從左至右從左至右7= = !=從左至右從左至右8&從左至右從左至右9從左至右從左至右10|從左至右從左至右11&從左至右從左至右12|從左至右從左至右13?:從右至左從右

3、至左14= += -= *= /= %= &= = |= = =從右至左從右至左15,從左至右從左至右3.1 C3.1 C語句概述語句概述3.23.2 數(shù)據(jù)輸入數(shù)據(jù)輸入/ /輸出的概念及在輸出的概念及在C C語語言中的實(shí)現(xiàn)言中的實(shí)現(xiàn)3.33.3 字符數(shù)據(jù)的輸入和輸出字符數(shù)據(jù)的輸入和輸出3.43.4 格式化輸入與輸出格式化輸入與輸出 5學(xué)習(xí)重點(diǎn):學(xué)習(xí)重點(diǎn): 1、 實(shí)現(xiàn)順序結(jié)構(gòu)的語句。 2、數(shù)據(jù)的輸入和輸出函數(shù)getchar()、putchar()、 scanf() 、 printf() 。學(xué)習(xí)難點(diǎn)學(xué)習(xí)難點(diǎn): 1、格式輸入函數(shù)scanf()的使用。 2、格式輸出函數(shù)printf()的使用。

4、6C語言語句的具體分類如下圖所示:3.1 C語句概述語句概述73.1 C語句概述語句概述順序結(jié)構(gòu)程序:順序結(jié)構(gòu)程序:就是按語句行書寫的自然順序一條語句一條語句地往后執(zhí)行的程序段。語句語句1語句語句28【例3.1】 輸入三角形的三邊長,求三角形面積。算法分析:已知三角形的三邊長a、b、c,則該三角形的面積公式為:()()()areas sasbsc其中其中s=(a+b+c)/2。#include #include void main()float a,b,c,s,area;scanf(%f,%f,%f,&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt

5、(s*(s-a)*(s-b)*(s-c);printf(a=%f,b=%f,c=%f,s=%fn,a,b,c,s);printf(area=%fn,area);3.1 C語句概述語句概述91.說明語句說明語句說明語句是對變量或被調(diào)函數(shù)的聲明。 其作用是描述程序中被處理數(shù)據(jù)(變量或函數(shù))的名稱和類型,供編譯程序使用。 說明語句可以出現(xiàn)在程序中任何函數(shù)或復(fù)合語句的外面(稱為外部說明)或里面(稱為局部說明)。3.1 C語句概述語句概述【例例1.5】 求兩個(gè)數(shù)的最大值求兩個(gè)數(shù)的最大值#include int max(int m,int n); /*函數(shù)說明函數(shù)說明*/void main( ) int

6、x,y,z; /*變量說明變量說明*/ printf(input two numbers:n);scanf(%d%d,&x,&y); z=max(x,y); printf(maxmum=%d,z); int max(int m,int n) int t; /*變量說明變量說明*/ if(mn) t=m;else t=n; return t;112.空語句空語句 在在C C語言中語言中, ,只有一個(gè)分號就構(gòu)成一個(gè)語句,只有一個(gè)分號就構(gòu)成一個(gè)語句,稱為空語句。稱為空語句。 ; 空語句在語法上占據(jù)一個(gè)語句的位置空語句在語法上占據(jù)一個(gè)語句的位置, ,但是但是它不實(shí)現(xiàn)任何功能它不實(shí)現(xiàn)任何

7、功能。 空語句只用在必須有語句而又不需要進(jìn)行空語句只用在必須有語句而又不需要進(jìn)行任何操作的位置,空語句常用于任何操作的位置,空語句常用于條件語句條件語句或或循循環(huán)語句環(huán)語句的執(zhí)行部分。的執(zhí)行部分。3.1 C語句概述語句概述123.表達(dá)式語句表達(dá)式語句(1)(1)簡單表達(dá)式語句簡單表達(dá)式語句 表達(dá)式表達(dá)式; ; 任何表達(dá)式加上分號都是一個(gè)語句任何表達(dá)式加上分號都是一個(gè)語句, , 例如例如: : a=3,b=4; i+; 3.14*R*R; 以上都是合法的語句。但是以上都是合法的語句。但是3.14*R*R; 的結(jié)的結(jié)果果并沒有保存起來并沒有保存起來, ,所以這個(gè)語句無實(shí)際意義。所以這個(gè)語句無實(shí)際意

8、義。 3.1 C語句概述語句概述13(2 2)賦值語句)賦值語句1. C C語言中的賦值語句是由賦值表達(dá)式加語言中的賦值語句是由賦值表達(dá)式加上一個(gè)分號構(gòu)成,其格式為上一個(gè)分號構(gòu)成,其格式為: : 變量變量= =表達(dá)式表達(dá)式; ; 注意:注意: “=”的左側(cè)必須是變量。的左側(cè)必須是變量。 當(dāng)當(dāng)“=”號兩側(cè)數(shù)據(jù)類型不一致時(shí),以左號兩側(cè)數(shù)據(jù)類型不一致時(shí),以左側(cè)的為準(zhǔn)進(jìn)行轉(zhuǎn)換。側(cè)的為準(zhǔn)進(jìn)行轉(zhuǎn)換。 當(dāng)多次給一個(gè)變量賦值時(shí),其值是最后當(dāng)多次給一個(gè)變量賦值時(shí),其值是最后一次賦的值。一次賦的值。3.1 C語句概述語句概述14【例例3.2】 設(shè)設(shè)a單元的值為單元的值為5,b單元的值為單元的值為10,試,試編寫一

9、個(gè)程序,把兩單元的內(nèi)容互換。編寫一個(gè)程序,把兩單元的內(nèi)容互換。#include void main()int a=5,b=10,s;s=a;a=b; b=s; /*s=a,a=b,b=s;*/printf(a=%d,b=%dn,a,b); 3.1 C語句概述語句概述154.函數(shù)調(diào)用語句函數(shù)調(diào)用語句 函數(shù)名函數(shù)名(實(shí)際參數(shù)表實(shí)際參數(shù)表);如:如:scanf(“%d,%d”,&a,&b);printf(a=%d,b=%dn,a,b);3.1 C語句概述語句概述165.復(fù)合語句復(fù)合語句 復(fù)合語句是由花括號復(fù)合語句是由花括號“ ”括起的多個(gè)語句括起的多個(gè)語句組成組成, ,有時(shí)也稱為有時(shí)

10、也稱為分程序分程序。其形式為:。其形式為: 內(nèi)部數(shù)據(jù)說明內(nèi)部數(shù)據(jù)說明; 執(zhí)行語句;執(zhí)行語句; 如:如: t=a; t=a; a=b; a=b; b=t; b=t; 復(fù)合語句在語法上等價(jià)于一條語句。復(fù)合語句在語法上等價(jià)于一條語句。 3.1 C語句概述語句概述17【例例】 復(fù)合語句舉例。復(fù)合語句舉例。#include void main() int a=10; printf(a=%dn,a); int a=20; printf(a=%dn,a); printf(a=%dn,a);3.1 C語句概述語句概述183.2 3.2 數(shù)據(jù)輸入數(shù)據(jù)輸入/輸出的概念及在輸出的概念及在C語言中的實(shí)現(xiàn)語言中的實(shí)現(xiàn)

11、C語言中所謂輸入語言中所謂輸入/輸出就是指以計(jì)算機(jī)為主體而輸出就是指以計(jì)算機(jī)為主體而言的,言的,C 語言本身語言本身并不提供輸入并不提供輸入/輸出操作的語句輸出操作的語句,C語言程序中的輸入語言程序中的輸入/輸出操作是通過輸出操作是通過調(diào)用標(biāo)準(zhǔn)庫函數(shù)調(diào)用標(biāo)準(zhǔn)庫函數(shù)來實(shí)現(xiàn)的。來實(shí)現(xiàn)的。 C語言有很豐富的輸入語言有很豐富的輸入/輸出庫函數(shù),有用于鍵盤輸出庫函數(shù),有用于鍵盤輸入和顯示器輸出的輸入輸入和顯示器輸出的輸入/輸出庫函數(shù)、磁盤文件讀輸出庫函數(shù)、磁盤文件讀寫的輸入寫的輸入/輸出庫函數(shù)、硬件端口操作的輸入輸出庫函數(shù)、硬件端口操作的輸入/輸出庫輸出庫函數(shù)等(詳見附錄表庫函數(shù))。函數(shù)等(詳見附錄表庫

12、函數(shù))。 本書主要是以鍵盤為主體的輸入終端輸入數(shù)據(jù),本書主要是以鍵盤為主體的輸入終端輸入數(shù)據(jù),以顯示器為主體的輸出終端輸出數(shù)據(jù)。以顯示器為主體的輸出終端輸出數(shù)據(jù)。193.2 3.2 在使用輸入在使用輸入/輸出函數(shù)時(shí),需要注意以下兩個(gè)問題:輸出函數(shù)時(shí),需要注意以下兩個(gè)問題:1)當(dāng)需要使用某個(gè)函數(shù)時(shí),要通過預(yù)編譯命令)當(dāng)需要使用某個(gè)函數(shù)時(shí),要通過預(yù)編譯命令“#include”,將有關(guān),將有關(guān)“頭文件頭文件”包含到源文件中。包含到源文件中。如:如:#include 或或 #include stdio.h2)在所有的輸入)在所有的輸入/輸出庫函數(shù)使用時(shí),格式與參數(shù)要輸出庫函數(shù)使用時(shí),格式與參數(shù)要符合系

13、統(tǒng)要求。符合系統(tǒng)要求。例如例如:int i;scanf(%d,&i);printf(%d,i);下面將詳細(xì)介紹四個(gè)標(biāo)準(zhǔn)輸入下面將詳細(xì)介紹四個(gè)標(biāo)準(zhǔn)輸入/輸出庫函數(shù)。輸出庫函數(shù)。203.3.1 字符輸出函數(shù)字符輸出函數(shù)putchar( ) putchar( )函數(shù)的作用是把函數(shù)的作用是把一個(gè)字符一個(gè)字符輸出輸出到顯示器或打印機(jī)上,到顯示器或打印機(jī)上,putchar函數(shù)的一般調(diào)函數(shù)的一般調(diào)用形式為用形式為: putchar(ch); 說明說明: 參數(shù)參數(shù)ch可以是一個(gè)整型或字符型的變量,可以是一個(gè)整型或字符型的變量,也可以是整型或字符型的常量。也可以是整型或字符型的常量。3.3 字符數(shù)據(jù)的輸

14、入和輸出字符數(shù)據(jù)的輸入和輸出【例例3.4】 putchar( )函數(shù)的使用舉例。函數(shù)的使用舉例。#include stdio.hvoid main()char ch =A;int i=66;putchar(ch); /*輸出字符型變量ch的值*/putchar(i); /*輸出整型常量i的值*/putchar(t); putchar(C); putchar(x44); putchar(n); putchar(67); 223.3.2 字符輸入函數(shù)字符輸入函數(shù)getchar( ) getchar( ) 函數(shù)的作用是從鍵盤上函數(shù)的作用是從鍵盤上讀入一個(gè)讀入一個(gè)字字符,其一般調(diào)用形式為符,其一般調(diào)用

15、形式為: getchar( ) 3.3 字符數(shù)據(jù)的輸入和輸出字符數(shù)據(jù)的輸入和輸出23【例例3.3】 輸入一字符輸入一字符B,變量是字符型。,變量是字符型。 #include stdio.h void main() char c; c=getchar( ); putchar (c); 運(yùn)行輸入: B運(yùn)行結(jié)果: B3.3 字符數(shù)據(jù)的輸入和輸出字符數(shù)據(jù)的輸入和輸出24【例例】 輸入一字符輸入一字符B B,變量是整型。,變量是整型。 #include stdio.h void main() int i; i=getchar( ); putchar(i); 運(yùn)行輸入運(yùn)行輸入: : B B 運(yùn)行結(jié)果運(yùn)行結(jié)

16、果: : B B 3.3 字符數(shù)據(jù)的輸入和輸出字符數(shù)據(jù)的輸入和輸出注意:注意:getchar( )getchar( )函函數(shù)可以接收任意字符,數(shù)可以接收任意字符,包括空格、回車或包括空格、回車或TabTab鍵等特殊字符。鍵等特殊字符。 25【 例例3.3 3.3 】通過鍵盤輸入一個(gè)字符并回顯。通過鍵盤輸入一個(gè)字符并回顯。#include stdio.hvoid main( ) putchar(getchar( ); #include stdio.hvoid main( ) getchar( ); putchar(getchar( ); 263.4.2 格式化輸出函數(shù)格式化輸出函數(shù)printf(

17、) 1.調(diào)用形式調(diào)用形式 printf(“格式控制字符串格式控制字符串”,輸出值參數(shù)表,輸出值參數(shù)表); 功能功能:在格式控制字符串的控制下,將各參數(shù)轉(zhuǎn)換在格式控制字符串的控制下,將各參數(shù)轉(zhuǎn)換成指定格式,在標(biāo)準(zhǔn)輸出設(shè)備上顯示或打印。成指定格式,在標(biāo)準(zhǔn)輸出設(shè)備上顯示或打印。 或者說或者說按指定的格式按指定的格式向標(biāo)準(zhǔn)輸出設(shè)備輸出向標(biāo)準(zhǔn)輸出設(shè)備輸出若若干個(gè)干個(gè)任意類型任意類型的數(shù)據(jù)。的數(shù)據(jù)。3.4 格式化輸入與輸出格式化輸入與輸出27(1) printf (“How do you do!”);(2) printf(“%d,%o”,a,b);(3) printf(“a=%f,b=%fn”,x,y);

18、3.4 格式化輸入與輸出格式化輸入與輸出28 普通字符普通字符(原樣輸出)(原樣輸出) 格式說明符格式說明符 %+# -0m.nhl 格式字符格式字符d,符十整o,無八整x,X無16整u無十整c字符s字串f小六e,E指六g,G2格式控制字符串說明格式控制字符串說明數(shù)據(jù)符號數(shù)據(jù)符號八、十六進(jìn)制八、十六進(jìn)制前導(dǎo)符前導(dǎo)符正數(shù)空一格,正數(shù)空一格,負(fù)數(shù)填負(fù)數(shù)填-左對齊左對齊左補(bǔ)左補(bǔ)0最小寬度最小寬度小數(shù)位數(shù)小數(shù)位數(shù)短整型短整型長整型或雙精度型長整型或雙精度型 printf( )中使用的格式字符格式字符格式字符說說 明明d以帶符號的十進(jìn)制形式輸出整數(shù)以帶符號的十進(jìn)制形式輸出整數(shù)o以八進(jìn)制無符號的形式輸出整

19、數(shù)以八進(jìn)制無符號的形式輸出整數(shù)x, X 以十六進(jìn)制無符號的形式輸出整數(shù)以十六進(jìn)制無符號的形式輸出整數(shù)u以十進(jìn)制無符號的形式輸出整數(shù)以十進(jìn)制無符號的形式輸出整數(shù)c以字符形式輸出,只輸出一個(gè)字符以字符形式輸出,只輸出一個(gè)字符s輸出字符串輸出字符串f以小數(shù)形式輸出單、雙精度數(shù),隱含輸出以小數(shù)形式輸出單、雙精度數(shù),隱含輸出6位小數(shù)位小數(shù)e,E以標(biāo)準(zhǔn)指數(shù)形式輸出單、雙精度數(shù),數(shù)字部分小數(shù)以標(biāo)準(zhǔn)指數(shù)形式輸出單、雙精度數(shù),數(shù)字部分小數(shù)位數(shù)為位數(shù)為6位位g,G選用選用%f或或% e格式中輸出寬度較短的一種格式,不格式中輸出寬度較短的一種格式,不輸出無意義的輸出無意義的030 是需要輸出的一些數(shù)據(jù),可以是任意類

20、型的常是需要輸出的一些數(shù)據(jù),可以是任意類型的常量、變量、函數(shù)或表達(dá)式,其量、變量、函數(shù)或表達(dá)式,其值值被輸出。被輸出。 輸出項(xiàng)的值必須按照格式控制字符串對應(yīng)的數(shù)輸出項(xiàng)的值必須按照格式控制字符串對應(yīng)的數(shù)據(jù)格式按從左到右的順序一一對應(yīng)輸出。據(jù)格式按從左到右的順序一一對應(yīng)輸出。各輸出項(xiàng)各輸出項(xiàng)之間以逗號分隔,例如:之間以逗號分隔,例如: printf(i=%5d,j=%un,i, 4*j); 3輸出值參數(shù)表說明輸出值參數(shù)表說明3.4 格式化輸入與輸出格式化輸入與輸出【例例3.8】 printf( )函數(shù)的應(yīng)用。函數(shù)的應(yīng)用。#include void main()int a=15;float b=12

21、3.1234567;double c=12345678.1234567;char d=p;printf(a=%d,%5d,%o,%xn,a,a,a,a);printf(b=%f,%lf,%5.4lf,%en,b,b,b,b);printf(c=%lf,%f,%8.4lfn,c,c,c);printf(d=%c,%8cn,d,d); a=15, 15,17,fb=123.123459,123.123459,123.1235,1.231235e+002c=12345678.123457,12345678.123457,12345678.1235d=p, p 32復(fù)習(xí)51、舉例說明什么是表達(dá)式語句、

22、賦值語句、函數(shù)調(diào)用語句、復(fù)合語句?2、如何交換兩個(gè)變量的值?3、putchar()、getchar()函數(shù)的功能? 4、printf()函數(shù)的格式控制字符串包括幾部分?格式說明的用途?33 【例例3.9】輸出格式舉例。輸出格式舉例。 #include void main() char c=a; char str=“see you”; int i=1234; float x=123.456789; float y=1.2; printf (“1: %c,%s,%d,%f,%e,%fn”,c,str,i,x,x,y); printf (“2: %4c,%10s,%06d,%12f,%15e,%10

23、fn”,c,str,i,x,x,y); printf(“3:%-4c,%-10s,%-6d,%-12f,%-15e,%-10fn”,c,str,i,x,x,y); printf (“4: %0c,%6s,%3d,%9f,%10e,%2fn”,c,str,i,x,x,y); printf (“5: %12.2fn”,x); printf (“6: %.2fn”,x); printf (“7: %10.4fn”,y); printf (“8: %8.3s,%8.0sn”,str,str); printf (“9: %d:%dn”,i); 34運(yùn)行結(jié)果: 1:a,see you,1234,123.4

24、56787,1.234568e+002,1.200000 1:a,see you,1234,123.456787,1.234568e+002,1.200000 2: a, see you,2: a, see you,00001234, 123.456787, 1.234568e+002, 1.200000 1234, 123.456787, 1.234568e+002, 1.200000 3:a ,see you ,1234 ,123.456787 ,1.234568e+002 ,1.200000 3:a ,see you ,1234 ,123.456787 ,1.234568e+002 ,1

25、.200000 4:a,see you,1234,123.456787,1.234568e+002,1.200000 4:a,see you,1234,123.456787,1.234568e+002,1.200000 5: 123.46 5: 123.46 6:123.46 6:123.46 7: 1.2000 7: 1.2000 8: see, 8: see, 9:%d:1234 9:%d:1234 3.4 格式化輸入與輸出格式化輸入與輸出35說明:(1) 要求格式字符用小寫字母,如%d不能寫成%D。(2) 如果想輸出字符“%”,則應(yīng)該在格式控制字符串中用連續(xù)兩個(gè)%表示,如: printf

26、(“%f%”,1.03); 輸出0.333333%。3.4 格式化輸入與輸出格式化輸入與輸出363.4.1 格式化輸入函數(shù)格式化輸入函數(shù)scanf() 1. 調(diào)用形式調(diào)用形式 scanf(“格式控制字符串格式控制字符串”,輸入項(xiàng)地址表,輸入項(xiàng)地址表);功能:功能:讀入各種類型的數(shù)據(jù),接收從讀入各種類型的數(shù)據(jù),接收從鍵盤鍵盤按輸入按輸入格式輸入的數(shù)據(jù)并存入指定的變量地址中。格式輸入的數(shù)據(jù)并存入指定的變量地址中。 3.4 格式化輸入與輸出格式化輸入與輸出37如:#includevoid main( )int x,y,z;long b;char c;scanf(“%d,%o,%x,%ld,%c”,&

27、amp;x,&y,&z,&b,&c);printf(“%d,%d,%d,%ld,%cn”,x,y,z,b,c);3.4 格式化輸入與輸出格式化輸入與輸出scanf(“格式控制字符串格式控制字符串”,輸入項(xiàng),輸入項(xiàng)地址地址表表); 普通字符普通字符(原樣輸入)(原樣輸入) 格式說明格式說明 % * m h l 格式字符格式字符最小寬度最小寬度短整型短整型不賦值不賦值長整型或雙長整型或雙精度實(shí)型精度實(shí)型d符十整o無八整x無十六整c字符s字串f小六e指六輸入項(xiàng)地址表:是由若干個(gè)輸入項(xiàng)地址表:是由若干個(gè)地址地址組成的表列,可組成的表列,可以是以是變量的地址變量的地址,字

28、符串的首地址字符串的首地址。39說明說明1 1)若在)若在scanf( )scanf( )函數(shù)的輸入控制串中含有其他的字符,則函數(shù)的輸入控制串中含有其他的字符,則在輸入時(shí)要求按一一對應(yīng)的位置原樣輸入這些字符。例如:在輸入時(shí)要求按一一對應(yīng)的位置原樣輸入這些字符。例如:int x,y,z;int x,y,z;scanf(%d,%d,%d,&x,&y,&z);scanf(%d,%d,%d,&x,&y,&z);輸入數(shù)據(jù)的三種方式是:輸入數(shù)據(jù)的三種方式是: 10,20,30(10,20,30(回車回車) ) 10,20,10,20, 30(30(回車回車)

29、 ) 10,10, 20,20, 30(30(回車回車) )又如:又如:int x,y,z;int x,y,z;scanf(x=%d,y=%d,z=%d,&x,&y,&z);scanf(x=%d,y=%d,z=%d,&x,&y,&z);輸入數(shù)據(jù)的方式是:輸入數(shù)據(jù)的方式是:x=10,y=20,z=30 (x=10,y=20,z=30 (回車回車) ) 3.4 格式化輸入與輸出格式化輸入與輸出402 2)在輸入數(shù)值型數(shù)據(jù)時(shí)在輸入數(shù)值型數(shù)據(jù)時(shí),若在格式控制字符串,若在格式控制字符串中每個(gè)格式說明之間不加其他符號,在執(zhí)行時(shí),中每個(gè)格式說明之間不加其他符號

30、,在執(zhí)行時(shí),系統(tǒng)規(guī)定由鍵盤輸入數(shù)據(jù)時(shí),數(shù)據(jù)之間可以用系統(tǒng)規(guī)定由鍵盤輸入數(shù)據(jù)時(shí),數(shù)據(jù)之間可以用一個(gè)或多個(gè)一個(gè)或多個(gè)空格、回車、跳格空格、回車、跳格(TabTab鍵)來分鍵)來分隔。例如:隔。例如:int x,y,z;int x,y,z;scanf(%d%d%d,&x,&y,&z);scanf(%d%d%d,&x,&y,&z);假設(shè)輸入的數(shù)據(jù)分別是假設(shè)輸入的數(shù)據(jù)分別是1010、2020、3030。則輸入可為:。則輸入可為: 10(10(空格空格)20()20(空格空格)30)30 10(10(回車回車)20()20(回車回車)30()30(回車回車)

31、 ) 10(tab)20(tab)3010(tab)20(tab)30回車回車3.4 格式化輸入與輸出格式化輸入與輸出413 3)在輸入控制字符中,)在輸入控制字符中,格式說明的類型與輸入項(xiàng)的類型格式說明的類型與輸入項(xiàng)的類型應(yīng)該一一對應(yīng)匹配應(yīng)該一一對應(yīng)匹配。如果類型不匹配,系統(tǒng)并不給出出。如果類型不匹配,系統(tǒng)并不給出出錯(cuò)信息,但不能得到正確的輸入數(shù)據(jù)。錯(cuò)信息,但不能得到正確的輸入數(shù)據(jù)。當(dāng)輸入長整型數(shù)當(dāng)輸入長整型數(shù)據(jù)時(shí),必須使用據(jù)時(shí),必須使用“%ld%ld”格式,輸入雙精度時(shí),必須使格式,輸入雙精度時(shí),必須使用用“%lf%lf”或或“%le%le”,否則不能得到正確數(shù)據(jù)。例如:,否則不能得到正確

32、數(shù)據(jù)。例如:doubledouble x,y,z; x,y,z;scanf(x=%d,y=%d,z=%d,&x,&y,&z);scanf(x=%d,y=%d,z=%d,&x,&y,&z);printf(%fprintf(%f %f %f %f,x,y,z); %f,x,y,z);輸入數(shù)據(jù)的方式是:輸入數(shù)據(jù)的方式是:x=10,y=20,z=30 x=10,y=20,z=30 輸出結(jié)果是:輸出結(jié)果是:- -9255959211743210800000000000000000000000000000000000000000000.000000 9255

33、959211743210800000000000000000000000000000000000000000000.000000 -9255959211743222200000000000000000000000000000000000000000000.000000-9255959211743222200000000000000000000000000000000000000000000.000000-9255959211743233600000000000000000000000000000000000000000000.000000-925595921174323360000000000

34、0000000000000000000000000000000000.0000003.4 格式化輸入與輸出格式化輸入與輸出424 4)關(guān)于)關(guān)于“%c%c”格式。在用格式。在用“%c%c”格式輸入字符時(shí),格式輸入字符時(shí),輸入的數(shù)據(jù)之間不需要分隔符,空格、轉(zhuǎn)義輸入的數(shù)據(jù)之間不需要分隔符,空格、轉(zhuǎn)義字符和回車符都將作為有效字符讀入。例如字符和回車符都將作為有效字符讀入。例如:scanf(%c%c%c, &x, &y, &z);scanf(%c%c%c, &x, &y, &z);輸入方式:輸入方式:abcabc 如果輸入:如果輸入:a b c a b

35、c 3.4 格式化輸入與輸出格式化輸入與輸出435 5)在)在scanf( )scanf( )函數(shù)中的格式字符前可以用一個(gè)整數(shù)指函數(shù)中的格式字符前可以用一個(gè)整數(shù)指定輸入數(shù)據(jù)所占的寬度,但對實(shí)型數(shù)據(jù)不能指定小定輸入數(shù)據(jù)所占的寬度,但對實(shí)型數(shù)據(jù)不能指定小數(shù)的位置。數(shù)的位置。例如:例如:scanf(%2d%2d,&a,&b);scanf(%2d%2d,&a,&b); 執(zhí)行的輸入是:執(zhí)行的輸入是:123456123456scanf(%6.2f,&f);scanf(%6.2f,&f); 3472.34543472.3454是不合法的。是不合法的。3.4 格

36、式化輸入與輸出格式化輸入與輸出446)% %后的后的“* *”附加說明符是附加說明符是抑制字符抑制字符,用來,用來表示跳過它對應(yīng)的數(shù)據(jù),例如:表示跳過它對應(yīng)的數(shù)據(jù),例如: scanf(%2d%scanf(%2d%* *3d%3d3d%3d,&i,&j);&i,&j); 若輸入若輸入2030710020307100 3.4 格式化輸入與輸出格式化輸入與輸出457 7)在輸入控制中,)在輸入控制中,格式說明的個(gè)數(shù)與輸入項(xiàng)格式說明的個(gè)數(shù)與輸入項(xiàng)的個(gè)數(shù)應(yīng)該相等的個(gè)數(shù)應(yīng)該相等。如果格式說明的個(gè)數(shù)少于。如果格式說明的個(gè)數(shù)少于輸入項(xiàng)的個(gè)數(shù),系統(tǒng)自動(dòng)結(jié)束輸入,多余的輸入項(xiàng)的個(gè)數(shù)

37、,系統(tǒng)自動(dòng)結(jié)束輸入,多余的數(shù)據(jù)沒有被讀入,但可以作為下一個(gè)輸入操數(shù)據(jù)沒有被讀入,但可以作為下一個(gè)輸入操作的輸入數(shù)據(jù);如果格式說明的個(gè)數(shù)多于輸作的輸入數(shù)據(jù);如果格式說明的個(gè)數(shù)多于輸入項(xiàng)的個(gè)數(shù),系統(tǒng)同樣自動(dòng)結(jié)束輸入。例如:入項(xiàng)的個(gè)數(shù),系統(tǒng)同樣自動(dòng)結(jié)束輸入。例如:int a,b,c;int a,b,c;scanf(%d%d,&a,&b,&c);scanf(%d%d,&a,&b,&c);輸入數(shù)據(jù)方式:輸入數(shù)據(jù)方式:10 2010 20 30 303.4 格式化輸入與輸出格式化輸入與輸出【例例3.5】 輸入格式舉例。輸入格式舉例。#include void main()char ch;int i;float f;scanf(%c%d%f,&ch,&i,&f);printf(%c,%d,%fn,ch,i, f);程序運(yùn)行情況如下:程序運(yùn)行情況如下:a 123 123.456a,123,123.456000思考: 給字符變量x輸入一個(gè)字符有幾種方法? printf(“n”);與putchar(n);等效嗎

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論