第3章單程序設(shè)計_第1頁
第3章單程序設(shè)計_第2頁
第3章單程序設(shè)計_第3頁
第3章單程序設(shè)計_第4頁
第3章單程序設(shè)計_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分19秒1主講: tel:62769115-mail:上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分20秒2第第3 3章章 順序結(jié)構(gòu)程序設(shè)計順序結(jié)構(gòu)程序設(shè)計3.1 c3.1 c語言的基本語句語言的基本語句3.2 3.2 數(shù)據(jù)輸入與輸出數(shù)據(jù)輸入與輸出3.3 3.3 程序舉例程序舉例上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分20秒3教學(xué)目的和基本要求:教學(xué)目的和基本要求:要求學(xué)生了解語句,尤其是復(fù)合語句的概念和使用場合教學(xué)重點(diǎn):教學(xué)重點(diǎn):復(fù)合語句上一頁上一頁下一頁下一頁2021

2、年11月10日星期三4時04分21秒4 程序設(shè)計語言有程序設(shè)計語言有順序、選擇、循環(huán)順序、選擇、循環(huán)三種基本的控三種基本的控制結(jié)構(gòu)。制結(jié)構(gòu)。 ba圖圖3.1 順序結(jié)構(gòu)執(zhí)行流程順序結(jié)構(gòu)執(zhí)行流程 順序結(jié)構(gòu)順序結(jié)構(gòu)是最基本的控制結(jié)構(gòu),其包含的語句是是最基本的控制結(jié)構(gòu),其包含的語句是按照書寫的順序執(zhí)行按照書寫的順序執(zhí)行的,且每條語句都將被執(zhí)行。程的,且每條語句都將被執(zhí)行。程序流程如圖序流程如圖3.1 所示,語句按書寫順序執(zhí)行。先執(zhí)行所示,語句按書寫順序執(zhí)行。先執(zhí)行a,再執(zhí)行,再執(zhí)行b。例:例: main() int a,b,temp; scanf(%d%d,&a,&b); temp=a

3、; a=b; b=temp; printf(%d,%d,a,b); 輸入:輸入:14 8 輸出輸出8,14上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分21秒5c語言的語句可分為以下四類:語言的語句可分為以下四類: 簡單語句(包括輸入簡單語句(包括輸入/輸出函數(shù))輸出函數(shù)) 空語句空語句 復(fù)合語句復(fù)合語句 流程控制語句。流程控制語句。 3.1 c語言的基本語句語言的基本語句 本章將介紹前三種語句。本章將介紹前三種語句。上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分21秒63.1.1 簡單語句簡單語句1.表達(dá)式語句表達(dá)式語句: 由一個表達(dá)式加上一個分號構(gòu)成。由一個

4、表達(dá)式加上一個分號構(gòu)成。如:如:a+; x=1; p+=q*4+5; y=42?6:1; 2. 空語句空語句: 由一個分號表示,一般形式為:由一個分號表示,一般形式為: ; 空語句在語法上是一條語句,但執(zhí)行時不空語句在語法上是一條語句,但執(zhí)行時不做任何操作。做任何操作。上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分21秒7 c 語言有豐富的標(biāo)準(zhǔn)函數(shù)庫語言有豐富的標(biāo)準(zhǔn)函數(shù)庫, 可提供各類函可提供各類函數(shù)供用戶調(diào)用,完成預(yù)先設(shè)定好的操作數(shù)供用戶調(diào)用,完成預(yù)先設(shè)定好的操作. 例如調(diào)用標(biāo)準(zhǔn)庫函數(shù)求數(shù)學(xué)函數(shù)值:例如調(diào)用標(biāo)準(zhǔn)庫函數(shù)求數(shù)學(xué)函數(shù)值: sin(x) 、cos(x) 、 exp(x

5、) (求求ex ) 、fabs(x) (求求x的絕對值的絕對值)、log(x)等。等。3. 函數(shù)調(diào)用語句函數(shù)調(diào)用語句: 由函數(shù)調(diào)用表達(dá)式加分號構(gòu)成由函數(shù)調(diào)用表達(dá)式加分號構(gòu)成. 如:如:printf(%d,a); scanf(%f,&b);上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分21秒8調(diào)用標(biāo)準(zhǔn)庫函數(shù)要注意:調(diào)用標(biāo)準(zhǔn)庫函數(shù)要注意: 在程序中要包含相應(yīng)的在程序中要包含相應(yīng)的頭文件頭文件例如:例如:#include #include 調(diào)用規(guī)則調(diào)用規(guī)則: 函數(shù)名函數(shù)名(參數(shù)表參數(shù)表)例如:例如: y=sin(1.7); x=pow(3,18);(指數(shù)函數(shù),指數(shù)函數(shù),x的的

6、y次冪次冪p358) 函數(shù)函數(shù)調(diào)用調(diào)用的的實質(zhì)實質(zhì): 在調(diào)用點(diǎn)轉(zhuǎn)去執(zhí)行一段預(yù)先設(shè)計好的程序在調(diào)用點(diǎn)轉(zhuǎn)去執(zhí)行一段預(yù)先設(shè)計好的程序,求出求出結(jié)果后返回調(diào)用點(diǎn)。結(jié)果后返回調(diào)用點(diǎn)。圖例 函數(shù)的值又叫函數(shù)的返回值。函數(shù)的值又叫函數(shù)的返回值。上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分21秒9調(diào)用函數(shù)調(diào)用函數(shù)a函數(shù)函數(shù)a執(zhí)執(zhí)行行函函數(shù)數(shù)a函數(shù)執(zhí)行結(jié)束函數(shù)執(zhí)行結(jié)束繼續(xù)執(zhí)繼續(xù)執(zhí)行剩余行剩余的語句的語句主函數(shù)主函數(shù)main()()end上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分21秒10 如如: 數(shù)學(xué)表達(dá)式數(shù)學(xué)表達(dá)式 y=|3sinx+4cosx|+ex ,可以用可以用c語

7、言表達(dá)式表示為:語言表達(dá)式表示為: 其中,其中,fabs,sin,cos,exp都屬于頭文件都屬于頭文件math.h,用,用到這些函數(shù),必須在程序的預(yù)處理語句中用到這些函數(shù),必須在程序的預(yù)處理語句中用#include把數(shù)學(xué)函數(shù)庫包含進(jìn)來。把數(shù)學(xué)函數(shù)庫包含進(jìn)來。y=fabs(3*sin(x)+4*cos(x)+exp(x);上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分21秒113.1.2 復(fù)合語句復(fù)合語句 語句語句1; 語句語句n; 用一對花括號,把若干條語句括起來,就形用一對花括號,把若干條語句括起來,就形成了一條復(fù)合語句。形式如下:成了一條復(fù)合語句。形式如下: 花括號中的語

8、句,可以是簡單語句、空語句、復(fù)合語句、花括號中的語句,可以是簡單語句、空語句、復(fù)合語句、流程控制語句,所有這些語句括在一起,在語法上看成是一條流程控制語句,所有這些語句括在一起,在語法上看成是一條語句,執(zhí)行時順序執(zhí)行花括號中的每條語句。復(fù)合語句多用于語句,執(zhí)行時順序執(zhí)行花括號中的每條語句。復(fù)合語句多用于流程控制語句中。流程控制語句中。上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分21秒123.2 數(shù)據(jù)輸入與輸出數(shù)據(jù)輸入與輸出格式格式: putchar( c )參數(shù)參數(shù): c為字符常量、變量或表達(dá)式為字符常量、變量或表達(dá)式功能功能:把字符:把字符c輸出到顯示器上輸出到顯示器上返值

9、返值:正常,為顯示的代碼值;出錯,為:正常,為顯示的代碼值;出錯,為eof(-1)5c語言無語言無i/o語句,語句,i/o操作由函數(shù)實現(xiàn)操作由函數(shù)實現(xiàn)5 #include 3.2.1 數(shù)據(jù)輸出數(shù)據(jù)輸出 字符輸出函數(shù)字符輸出函數(shù)上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分22秒13#include void main() int c; char a; c=65; a=b; putchar(c); putchar(n); putchar(a); getch();運(yùn)行結(jié)果:運(yùn)行結(jié)果:ab例例上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分22秒14格式:格式:prin

10、tf(格式控制串格式控制串,輸出表,輸出表)功能:按指定格式向顯示器輸出數(shù)據(jù)功能:按指定格式向顯示器輸出數(shù)據(jù)返值:正常,返回輸出字節(jié)數(shù);出錯,返回返值:正常,返回輸出字節(jié)數(shù);出錯,返回eof(-1)eof(-1) 格式輸出函數(shù)格式輸出函數(shù) 輸出表輸出表:要輸出的數(shù)據(jù)(可以沒有,多個時以:要輸出的數(shù)據(jù)(可以沒有,多個時以,分隔)分隔) 格式控制串格式控制串:包含兩種信息:包含兩種信息 格式說明:格式說明: %修飾符修飾符格式字符格式字符 ,用于指定,用于指定輸出格式輸出格式 普通字符或轉(zhuǎn)義序列:原樣輸出普通字符或轉(zhuǎn)義序列:原樣輸出 格式字符格式字符上一頁上一頁下一頁下一頁2021年11月10日星

11、期三4時04分22秒15d,ix,xoucse,efg%格式字符:格式字符:十六進(jìn)制無符號整數(shù)十六進(jìn)制無符號整數(shù)不帶符號十進(jìn)制整數(shù)不帶符號十進(jìn)制整數(shù)十進(jìn)制整數(shù)十進(jìn)制整數(shù)指數(shù)形式浮點(diǎn)小數(shù)指數(shù)形式浮點(diǎn)小數(shù)單一字符單一字符字符串字符串八進(jìn)制無符號整數(shù)八進(jìn)制無符號整數(shù)小數(shù)形式浮點(diǎn)小數(shù)小數(shù)形式浮點(diǎn)小數(shù)e和和f中較短一種中較短一種百分號本身百分號本身int a=567;printf ( %d,a);int a=255;printf(%x,a);int a=65;printf(%o,a);int a=567;printf(%u,a);char a=65;printf(%c,a);printf(%s,abc)

12、;float a=567.789;printf(%e,a);float a=567.789;printf(%f,a);float a=567.789;printf(%g,a);printf(%);567ff101567aabc5.677890e+02567.789000567.789% 說明說明 格式字符要用小寫格式字符要用小寫 格式字符與輸出項個數(shù)應(yīng)相同,按先后順序一一對應(yīng)格式字符與輸出項個數(shù)應(yīng)相同,按先后順序一一對應(yīng) 輸出轉(zhuǎn)換輸出轉(zhuǎn)換:格式字符與輸出項類型不一致格式字符與輸出項類型不一致,自動按指定格式輸出自動按指定格式輸出上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分22

13、秒16例例 main() unsigned int u=65535; printf(u=%dn,u); 輸出結(jié)果:輸出結(jié)果:u=-1u=-1例例 int a=3,b=4; printf(%d %dn,a,b); printf(a=%d , b=%dn,a,b); 例例 int a=3,b=4; printf(%d %dn,a,b); printf(a=%d , b=%dn,a,b);輸出結(jié)果輸出結(jié)果: : 3 4 a=3, b=411 11 11 11 11 11 11 1165535上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分22秒17 附加格式說明符(修飾符)附加格式說明

14、符(修飾符).n對實數(shù)對實數(shù),指定小數(shù)點(diǎn)后位數(shù)指定小數(shù)點(diǎn)后位數(shù)(四舍五入四舍五入)對字符串對字符串,指定實際輸出位數(shù)指定實際輸出位數(shù)修飾符修飾符功功 能能m輸出數(shù)據(jù)域?qū)捿敵鰯?shù)據(jù)域?qū)?數(shù)據(jù)長度數(shù)據(jù)長度m,左補(bǔ)空格左補(bǔ)空格;否則按實際輸出否則按實際輸出輸出數(shù)據(jù)在域內(nèi)左對齊(缺省右對齊輸出數(shù)據(jù)在域內(nèi)左對齊(缺省右對齊)-指定在有符號數(shù)的正數(shù)前顯示正號指定在有符號數(shù)的正數(shù)前顯示正號(+)+輸出數(shù)值時指定左面不使用的空位置自動填輸出數(shù)值時指定左面不使用的空位置自動填00在八進(jìn)制和十六進(jìn)制數(shù)前顯示前導(dǎo)在八進(jìn)制和十六進(jìn)制數(shù)前顯示前導(dǎo)0,0 x#在在d,o,x,u前,指定輸出精度為前,指定輸出精度為long型

15、型在在e,f,g前,指定輸出精度為前,指定輸出精度為double型型l上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分22秒18例 int a=1234; float f=123.456; char ch=a; printf(%8d,%2dn,a,a); printf(%f,%8f,%8.1f,%.2f,%.2en,f,f,f,f,f); printf(%3cn,ch);運(yùn)行 1234,1234結(jié)果: 123.456000,123.456000, 123.5,123.46,1.23e+02 a例 static char a=hello,world! printf(%sn%15sn

16、%10.5sn%2.5sn%.3sn,a,a,a,a,a);運(yùn)行結(jié)果:hello,world! hello,world! hello hello hel 例 m.n上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分22秒19例例 int a=1234; float f=123.456; static char c=hello,world!; printf(%8d,%-8dn,a,a); printf(%10.2f,%-10.1fn,f,f); printf(%10.5s,%-10.3sn,c,c);運(yùn)行結(jié)果:運(yùn)行結(jié)果: 1234,1234 123.46,123.5 hello,he

17、l 例例 -上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分22秒20例 int a=1234; float f=123.456; printf(%08dn,a); printf(%010.2fn,f); printf(%0+8dn,a); printf(0+10.2fn,f); 例 0 、+例 int a=123; printf(%o,%#o,%x,%#xn,a,a,a,a); 例 #例 long a=65536; printf(%d,%8ldn,a, a); 例 l00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00/00001234

18、/0000123.46/000+1234/000+123.56/173,0173,7b,0x7b/0, 65536上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分22秒21格式:getchar( )功能:從鍵盤讀一字符返值:正常,返回讀取的代碼值;出錯,返回eof(-1) 3.2.2 數(shù)據(jù)輸入數(shù)據(jù)輸入 字符輸入函數(shù)字符輸入函數(shù) 例 #include main() int c; printf(enter a character:); c=getchar(); printf(%c-hex%xn,c,c);運(yùn)行結(jié)果:enter a character:aa-hex41上一頁上一頁下一頁

19、下一頁2021年11月10日星期三4時04分22秒22 格式輸入函數(shù)格式輸入函數(shù)格式格式: : scanf(scanf(格式控制串格式控制串 ,地址表),地址表)功能:按指定格式從鍵盤讀入數(shù)據(jù),存入地址表指定的功能:按指定格式從鍵盤讀入數(shù)據(jù),存入地址表指定的 存儲單元中存儲單元中, ,并按回車鍵結(jié)束并按回車鍵結(jié)束返值:正常,返回輸入數(shù)據(jù)個數(shù)返值:正常,返回輸入數(shù)據(jù)個數(shù) 地址表:變量的地址,常用取地址運(yùn)算符地址表:變量的地址,常用取地址運(yùn)算符& 格式字符格式字符:d,i,o,x,u,c,s,f,e例例 scanf(%d,&a); 輸入:輸入:10 則則 a=10例例 scanf(

20、%x,&a); 輸入:輸入:11 則則 a=17上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分22秒23 附加格式說明符(修飾符)附加格式說明符(修飾符)l修飾符功 能hm*用于d,o,x前,指定輸入為short型整數(shù)用于d,o,x前,指定輸入為long型整數(shù)用于e,f前,指定輸入為double型實數(shù)指定輸入數(shù)據(jù)寬度,遇空格或不可轉(zhuǎn)換字符則結(jié)束抑制符,指定輸入項讀入后不賦給變量例 scanf(%4d%2d%2d,&yy,&mm,&dd); 輸入 19991015 則1999yy, 10 mm, 15 dd上一頁上一頁下一頁下一頁2021年11月1

21、0日星期三4時04分22秒24例 scanf(%3d%*4d%f,&k,&f); 輸入 12345678765.43 則123k, 8765.43f例 scanf(%2d%*3d%2d,&a,&b); 輸入 1234567 則12a, 67b例 scanf(%3c%2c,&c1,&c2); 輸入 abcde 則ac1, d c2上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分22秒25 輸入分隔符的指定輸入分隔符的指定 一般以空格、tab或回車鍵作為分隔符 其它字符做分隔符:格式串中兩個格式符間字符例 scanf(%d%o%x,&a

22、mp;a,&b,&c); printf(a=%d,b=%d,c=%dn,a,b,c); 輸入 123 123 123 輸出 a=123,b=83,c=291例 scanf(%d:%d:%d,&h,&m,&s); 輸入 12:30:45 則12 h, 30 m, 45 s例scanf(%d,%d,&a,&b); 輸入 3,4 則3a, 4 b例 scanf(a=%d,b=%d,c=%d,&a,&b,&c); 輸入 a=12,b=24,c=36 上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分22秒26

23、說明: 用%c格式符時,空格和轉(zhuǎn)義字符作為有效字符輸入如 scanf(%c%c%c,&c1,&c2,&c3); 若輸入abc 則ac1, c2, b c3 輸入數(shù)據(jù)時,遇以下情況認(rèn)為該數(shù)據(jù)結(jié)束: 遇空格、tab、或回車 遇寬度結(jié)束 遇非法輸入如 scanf(%d%c%f,&a,&b,&c); 若輸入1234a123o.26 則 1234 a, a b, 123 c 輸入函數(shù)留下的垃圾:上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分22秒27如 scanf(%d%c%f,&a,&b,&c); 若輸入1234a

24、123o.26 則 1234 a, a b, 123 c例 int x; char ch; scanf(%d,&x); ch=getchar(); printf(x=%d,ch=%dn,x,ch);執(zhí)行:123輸出:x=123,ch=10例 int x; char ch; scanf(%d,&x); scanf(%c,&ch); printf(x=%d,ch=%dn,x,ch);執(zhí)行:123輸出:x=123,ch=10解決方法:(1)用getchar()清除(2)用函數(shù)fflush(stdin)清除全部剩余內(nèi)容 (3) 用格式串中空格或%*c來吃掉例 int x; ch

25、ar ch; scanf(%d,&x); scanf( %c,&ch);或 scanf(%*c%c,&ch); 上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分22秒28例例3.1 輸入圓的半徑,輸出圓的周長和面積。輸入圓的半徑,輸出圓的周長和面積。分析:分析: 1.定義實型變量r、l、s用于存放半徑、周長、面積;2.調(diào)用輸入函數(shù),輸入r:3.分別利用周長公式和面積公式求出l、s;4.調(diào)用輸出函數(shù)輸出l、s。3.3 程序舉例程序舉例上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分22秒29程序:程序:#include main() float

26、 r,l,s; scanf( %f ,&r); l = 2 * 3.14159 * r; s = 3.14159 *r * r; printf(n l=%.4f,l); printf(n s=%.4f,s); 上一頁上一頁下一頁下一頁2021年11月10日星期三4時04分22秒30/*ch3_12.c*/#include #include main() float a,b,c,s,area; scanf(%f,%f,%f,&a,&b,&c); s=1.0/2*(a+b+c); 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);輸入:輸入:3,4,6 輸出:輸出:a= 3.00,

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論