第04章 順序程序設(shè)計(jì).ppt_第1頁(yè)
第04章 順序程序設(shè)計(jì).ppt_第2頁(yè)
第04章 順序程序設(shè)計(jì).ppt_第3頁(yè)
第04章 順序程序設(shè)計(jì).ppt_第4頁(yè)
第04章 順序程序設(shè)計(jì).ppt_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第4章 最簡(jiǎn)單的C程序設(shè)計(jì),4.1 C語(yǔ)句概述,C語(yǔ)句全部為可執(zhí)行語(yǔ)句,對(duì)應(yīng)若干機(jī)器操作指命令。,C程序由許多源文件組成。(分別編譯,然后連接),每一個(gè)源文件由預(yù)編譯命令和若干函數(shù)組成。,每一個(gè)函數(shù)由說(shuō)明部分和語(yǔ)句部分組成。,其結(jié)構(gòu)如圖,除說(shuō)明部分外,重要部分為語(yǔ)句部分。,C程序,源程序文件1,源程序文件i,源程序文件n,預(yù)編譯命令,函數(shù)1,函數(shù)n,說(shuō)明部分,執(zhí)行部分(語(yǔ)句),C 語(yǔ)句分為五類(lèi),1. 控制語(yǔ)句改變語(yǔ)句的執(zhí)行順序,共有9種控制語(yǔ)句:, if ( ) else (條件), for ( ) (循環(huán)), while ( ) (循環(huán)), do while (循環(huán)), continue (

2、結(jié)束本次循環(huán)), break (中止執(zhí)行語(yǔ)句塊), switch (多分支選擇), goto (轉(zhuǎn)向), return (從函數(shù)返回),2. 函數(shù)調(diào)用語(yǔ)句,3. 表達(dá)式語(yǔ)句,printf ( Hello);,表達(dá)式加; 如: i=i+1; i+; x+y; 有些函數(shù)調(diào)用也可理解為表達(dá)式語(yǔ)句.,5. 復(fù)合語(yǔ)句,4. 空語(yǔ)句,; 任何事情都不做.,用 括起來(lái)的一系列語(yǔ)句。 如: z=x+y; t=z/100; printf (%f, t); ,4.2 賦值語(yǔ)句,賦值語(yǔ)句的構(gòu)成:,賦值表達(dá)式;,例:a+=b; j=i+; a=(x+y, a+b); i+;,4.3數(shù)據(jù)輸入輸出的概念以計(jì)算機(jī)為主體,輸

3、入:外設(shè) 計(jì)算內(nèi)部 輸出:計(jì)算內(nèi)部 外設(shè) C語(yǔ)言的輸入和輸出是通過(guò)函數(shù)來(lái)實(shí)現(xiàn)。,標(biāo)準(zhǔn)的輸入輸出函數(shù),putchar: 輸出字符 getchar: 輸入字符 printf: 格式輸出 scanf: 格式輸入 puts: 輸出字符串 gets: 輸入字符串,預(yù)編譯命令:#include ,4.4 數(shù)據(jù)輸出,前面已論述: C語(yǔ)言本身無(wú)輸入/ 出語(yǔ)句, 由函數(shù)實(shí)現(xiàn),如printf.等。,一般:C語(yǔ)言提供了一些標(biāo)準(zhǔn)的輸入/出函數(shù)系統(tǒng)函數(shù)。,形式: putchar (c );,功能: 向終端(一般為顯示器)輸出一個(gè)字符,其中c為 字符型或整型變量,注意: 用該函數(shù)時(shí),須用預(yù)編譯命令: #include s

4、tdio.h ,4.4.1 putchar 函數(shù) 字符輸出函數(shù),舉例: #include stdio.h,結(jié)果: BOY,main( ), char a, b, c;,a=B ; b=O ; c=Y;,putchar(a); putchar(b); putchar ( C);,putchar(a); putchar( n ); putchar(b); putchar( n ); putchar(c); putchar( n );,*利用putchar還可輸出其它轉(zhuǎn)義字符,結(jié)果: B O Y,putchar( 101 ); 輸出A,putchar( ); 輸出,putchar( 015 ); 輸

5、出,*若將最后一行改為:,4.4.2 printf 函數(shù)格式輸出函數(shù),一、printf的一般形式,是C語(yǔ)言中使用得最多的一種輸出函數(shù),它可一次按格式輸出多個(gè)不同類(lèi)型的數(shù)據(jù)。,printf(格式控制序列,輸出表列);,輸出表列 用“ ,”號(hào)隔開(kāi)的變量或表達(dá)式序列,其變量的值按對(duì)應(yīng)的格式控制符所指定的格式輸出。,格式控制序列用雙引號(hào) . 括起來(lái)的格式符序列。,格式控制序列由格式說(shuō)明符和普通字符組成。,2. 普通字符 原樣輸出,1. 格式說(shuō)明符: 由%接格式字符組成 如: %f, %d等,例: a=3; b=4; printf(a=%d, b=%d, a, b); ,結(jié)果: a=3,b=4,無(wú)論 a

6、, b中位數(shù)多少, 均為上述形式:,a=123 ;b=45;,二、格式字符,不同類(lèi)型的數(shù)據(jù)輸出,用不同格式字符:,1. d格式符十進(jìn)制整數(shù)輸出。,(1) %d: 按數(shù)據(jù)的實(shí)際長(zhǎng)度輸出。,(2) %md: m表示輸出字段寬度。若實(shí)際位數(shù)m,左邊補(bǔ)空格。,如:printf( %4d, %4d ,a,b); 若a=123,b=12345,則,結(jié)果:_123,12345,(3) %ld: 輸出長(zhǎng)整形數(shù)據(jù),如:long a=135790; printf(“%ld, %8ld”,a,a);,結(jié)果:135790,_ _135790,2. o格式符 按八進(jìn)制形式輸出.,以1的補(bǔ)碼形式,int a= 1; pr

7、intf( %d, %o, a, a);,則輸出結(jié)果: 1, 177777,注: 連符號(hào)位一起組成八進(jìn)制數(shù)輸出,特例: 1存于int單元,如以長(zhǎng)整型輸出,%lo,也可指定寬度m, %mo,3. x格式符以十六進(jìn)制形式輸出整數(shù).,例: short int a= 1; printf(%x, %o, %d , a, a, a);,輸出結(jié)果: ffff, 177777, 1,4. u格式符輸出unsigned型數(shù)據(jù).,例: main() unsigned short int a=65535; short int b=-2; printf(“a=%d,%o,%x,%un”,a,a,a,a); print

8、f(“b=%d,%o,%x,%un”, b,b,b,b); ,a= 1, 177777, ffff, 65535,a=65535,b= 2,b=2, 177776, fffe, 65534,運(yùn)行結(jié)果為:,5. c格式符輸出一個(gè)字符.,注: 若有一整型變量,其值在0255之間,則可以字符形式輸出., 一個(gè)字符型變量亦可以一個(gè)整型數(shù)據(jù)輸出.,char c= a; printf(%c, c);,例: main ( ), char c=a;,int i=97;,printf (%c,%dn,c,c);,printf (%c, %dn,i,i);,運(yùn)行結(jié)果為: a, 97 a, 97,也可以指定輸出字符

9、寬度,如果有,則輸出:“_ _a, 即c變量輸出占3列,前2列補(bǔ)空格.,print (%3c, c);,6. s格式符用來(lái)輸出一個(gè)字符串.,允許一定的編輯即允許%ms, %ms, %m.ns, %m.ns四種形式, 每一形式的意義如下:,例: printf(%s, CHINA);,結(jié)果: CHINA,(1)%ms, 輸出的字符串占m列,如字符串本身長(zhǎng)度大于m,則突破m的限制,將字符串全部輸出。若串長(zhǎng)小于m,則左補(bǔ)空格。,(2)%ms, 如果串長(zhǎng)小于m,則在m列范圍內(nèi),字符串向左靠,右補(bǔ)空格。,(3) %m.ns,輸出占m列,但只取字符串中左端n個(gè)字符。這n個(gè)字符輸出在m列的右側(cè),左補(bǔ)空格。,(

10、4) %m.ns,其中m、n含義同上,n個(gè)字符輸出在m列范圍的左側(cè),右補(bǔ)空格。如果nm,則m自動(dòng)取n值,即保證n個(gè)字符正常輸出。,7. f格式符以小數(shù)形式輸出單、雙精度實(shí)數(shù),有以下幾種形式:,%f, 不指定字段寬度,由系統(tǒng)自動(dòng)指定,使整數(shù)部分全部如數(shù)輸出,并輸出6位小數(shù)。,%f %m.nf %m.nf,%m.nf, 指定輸出的數(shù)據(jù)共占m列,其中有n位小數(shù)。如果值長(zhǎng)度小于m,則左端補(bǔ)空格。,%m.nf, 與%m.nf基本相同,只是使輸出的數(shù)值向左端靠,右端補(bǔ)空格。,8. e格式符以指數(shù)形式輸出單,雙精度實(shí)數(shù)基本形式: %e,結(jié)果: 1.234560,共13列,6列,5列,可有%m.ne和%m.n

11、e的形式,9. g格式符根據(jù)實(shí)數(shù)大小自動(dòng)選擇f格式,或e格式輸出單雙精度實(shí)數(shù)。,e+002,例: printf ( %e , 123.456);,表4.1 printf格式字符總結(jié),許多情況與具體機(jī)器或系統(tǒng)有關(guān),最好機(jī)器上一試。,表4.2 附加格式說(shuō)明字符,4.5 數(shù)據(jù)輸入,系統(tǒng)提供了若干函數(shù),以提供從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤(pán))上輸入數(shù)據(jù).,4.5.1 getchar 函數(shù),本節(jié)先介紹兩個(gè)輸入函數(shù).,形式: getchar( ),功能: 從標(biāo)準(zhǔn)輸入裝置(鍵盤(pán))上輸入一個(gè)字符,要求: 有#include stdio.h預(yù)編譯命令,例: #include stdio.h main ( ) char c;

12、 c=getchar ( ); putchar (c ); ,4.5.2 scanf函數(shù),功能: 在標(biāo)準(zhǔn)輸入裝置(鍵盤(pán))上按指定格式 輸入各種類(lèi)型的數(shù)據(jù),地址表列變量的地址或字符串首地址。,形式: scanf(格式控制序列, 地址表列),格式控制序列同printf(.),例: main( ) int a, b, c; scanf(%d%d%d, ,運(yùn)行,機(jī)器等待你輸入: 3 4 5,結(jié)果 3, 4, 5,注意: 1.scanf函數(shù)使用地址量接受數(shù)據(jù)。,2.輸入數(shù)值數(shù)據(jù)的間隔為,Tab,空格, 不能為“ ,” 輸入字符數(shù)據(jù)不可加間隔符。,3. 允許在格式符中插入附加字符。格式字符及附加字符的定義

13、如下表4.3和表4.4,表4.3 scanf格式字符,表4.4 scanf附加的格式說(shuō)明字符,TC,4. 對(duì)于輸入unsigned型數(shù)據(jù),使用%u。,5. 指定數(shù)據(jù)長(zhǎng)度時(shí),系統(tǒng)自動(dòng)截取。,則當(dāng)輸入123456時(shí),scanf( %3d%3d , ,a123, b456,7. 輸入數(shù)據(jù)不能規(guī)定精度.,6. 在%后加“ * ”表示跳過(guò)相應(yīng)的數(shù)據(jù),則當(dāng)輸入為12 345 67,則a12 b67,scanf(%2d %*3d %2d, ,scanf ( %7.2f , 是錯(cuò)誤的,8. 在格式控制中除格式說(shuō)明符外若還有其它字符,則應(yīng)按順序原樣輸入。,例: scanf( %d, %d, ,則必須輸入 21,

14、 28,又如: scanf(a=%d, b=%d, c=%d, ,則輸入: a=34, b=58, c=100,TC,4.6 程序舉例,例1: 輸入三角形三邊, 求三角形面積。,例2: 輸入一個(gè)大寫(xiě)字母,要求系統(tǒng)改為小寫(xiě)字母輸出。,例3: 當(dāng)b24ac0時(shí),求ax2+bx+c=0的兩個(gè)根。,TC,例1: 輸入三角形三邊, 求三角形面積。,算法依據(jù):s= p(p-a)(p-b)(p-c),1.輸入邊長(zhǎng)a,b,c 2.計(jì)算半周長(zhǎng)p=(a+b+c)/2 3.計(jì)算面積s 4.輸出a,b,c,p,s,畫(huà)N-S流程圖:,輸入a,b,c,p=0.5*(a+b+c),s=sqrt(p*(p-a)*(p-b)*

15、(p-c),輸出a,b,c,p,s,TC,#include main( ) float a,b,c,p,s; scanf(%f,%f,%f, ,TC,例2: 輸入一個(gè)大寫(xiě)字母,要求系統(tǒng)改為小寫(xiě)字母輸出。,1.輸入一個(gè)大寫(xiě)字母c1 2.將c1的ASCII碼值+32,即c2=c1+32 3.輸出c2,#include main( ) char c1,c2; c1=getchar( ); printf(%c,%dn,c1,c1); c2=c1+32; printf(%c,%dn,c2,c2); ,畫(huà)N-S流程圖:,輸入c1,輸出c1,c2=c1+32,輸出c2,TC,例3: 當(dāng)b24ac0時(shí),求ax2+bx+c=0的兩個(gè)根。,1.輸入系數(shù)a,b,c 2.計(jì)算判別式delta=b*b-4*a*c 3.計(jì)算p=-b/(2*a), q=sqrt(delta)/(2*a) 4.計(jì)算x1=p+q, x2=p-q 5.輸出x1,x2,畫(huà)N-S流程圖:,輸入a,b,c,delt

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論