C語(yǔ)言板書4順序程序_第1頁(yè)
C語(yǔ)言板書4順序程序_第2頁(yè)
C語(yǔ)言板書4順序程序_第3頁(yè)
C語(yǔ)言板書4順序程序_第4頁(yè)
C語(yǔ)言板書4順序程序_第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)介

第4章順序程序設(shè)計(jì)1§4.1C語(yǔ)句概述C語(yǔ)句全部為可執(zhí)行語(yǔ)句,對(duì)應(yīng)假設(shè)干機(jī)器操作指命令C程序由許多源文件組成。(分別編譯,然后連接)每一個(gè)源文件由預(yù)編譯命令和假設(shè)干函數(shù)組成。每一個(gè)函數(shù)由說(shuō)明局部和語(yǔ)句局部組成。2其結(jié)構(gòu)如圖除說(shuō)明局部外,重要局部為語(yǔ)句局部。C程序源程序文件1源程序文件i源程序文件n預(yù)編譯命令函數(shù)1函數(shù)n說(shuō)明局部執(zhí)行局部(語(yǔ)句)……3程序書寫順序加頭〔預(yù)處理命令、函數(shù)說(shuō)明等〕main()(必須有且只能有一個(gè)〕{}函數(shù)1函數(shù)2函數(shù)34C語(yǔ)句分為五類1.控制語(yǔ)句––改變語(yǔ)句的執(zhí)行順序共有9種控制語(yǔ)句:if()~else~(條件)for()~(循環(huán))while()~(循環(huán))do~while(循環(huán))()表示條件,~表示語(yǔ)句5continue(結(jié)束本次循環(huán))switch(多分支選擇)break(中止整個(gè)循環(huán))goto(轉(zhuǎn)移)return(函數(shù)返回)62.函數(shù)調(diào)用語(yǔ)句3.表達(dá)式語(yǔ)句printf("…");表達(dá)式加;如:i=i+1;i++;x+y;

其函數(shù)調(diào)用也可理解為表達(dá)式語(yǔ)句.75.復(fù)合語(yǔ)句4.空語(yǔ)句

;任何事情都不做.用{}括起來(lái)的一系列語(yǔ)句。如:{z=x+y;t=z/100;printf("%f",t);}8§4.2程序的三種根本結(jié)構(gòu)從結(jié)構(gòu)化程序設(shè)計(jì)角度出發(fā),程序有三種結(jié)構(gòu):·順序結(jié)構(gòu)·選擇結(jié)構(gòu)·循環(huán)結(jié)構(gòu)91.順序結(jié)構(gòu)表示ABAB先執(zhí)行A,再執(zhí)行B.inta,b,c;a=b+c;/*顛倒*/scanf(“%d,%d〞,&b,&c);102.選擇結(jié)構(gòu)(分支)表示為ABPTFBTPFA存在某條件P,假設(shè)P為真,那么執(zhí)行A,否那么執(zhí)行B。113.循環(huán)結(jié)構(gòu)表示為PFTAAP為T(1)當(dāng)型結(jié)構(gòu)當(dāng)P條件成立時(shí)(T),反復(fù)執(zhí)行A,直到P為“假〞時(shí)才停止循環(huán).有兩種結(jié)構(gòu):當(dāng)型和直到型12(2)

直到型APftA直到P為真先執(zhí)行A,再判斷P,假設(shè)為F,再執(zhí)行A,如此反復(fù),直到P為T.13另外:由選擇結(jié)構(gòu)可以派生出另一種根本結(jié)構(gòu)––多分支結(jié)構(gòu).KK=K1A1A2AiAn……K=K2K=Ki

已證明:上述三種結(jié)構(gòu)組成的程序可以解決全部的問(wèn)題,所以任何一種高級(jí)語(yǔ)言都具備上述三種結(jié)構(gòu)。14§4.3賦值語(yǔ)句由賦值表達(dá)式加分號(hào);構(gòu)成,與其它高級(jí)語(yǔ)言相比有以下不同點(diǎn):“=〞為一運(yùn)算符,由此,構(gòu)成一賦值表達(dá)式,可出現(xiàn)于表達(dá)式能出現(xiàn)的任何地方:if((a=b)>0)t=a;15§4.4數(shù)據(jù)輸出前面已論述:C語(yǔ)言本身無(wú)輸入/出語(yǔ)句,由函數(shù)實(shí)現(xiàn),如printf等。一般:C語(yǔ)言提供了一些標(biāo)準(zhǔn)的輸入/出函數(shù)–––系統(tǒng)函數(shù)。16形式:putchar(c);功能:向終端(一般為顯示器)輸出一個(gè)字符,其中c為字符型或整型變量注意:用該函數(shù)時(shí),須用預(yù)編譯命令:#include"stdio.h"<stdio.h>4.4.1putchar

函數(shù)—字符輸出函數(shù)17舉例:#include"stdio.h"main(){chara,b,c;a='B';b='O';c='Y';

putchar(a);

putchar(b);putchar(C);}結(jié)果:BOY18putchar(a);putchar('\n');putchar(b);putchar('\n');putchar(c);putchar('\n');*利用putchar還可輸出其它轉(zhuǎn)義字符結(jié)果:BOYputchar('\101');輸出Aputchar('\‘');輸出’putchar('\015');輸出↙*假設(shè)將最后一行改為:194.4.2printf函數(shù)––格式輸出函數(shù)一、printf的一般形式是C語(yǔ)言中使用得最多的一種輸出函數(shù),它可一次按格式輸出多個(gè)不同類型的數(shù)據(jù)。printf(格式控制序列,輸出表列);輸出表列–––用“,〞號(hào)隔開的變量或表達(dá)式序列,其變量的值按對(duì)應(yīng)的格式控制符所指定的格式輸出。20格式控制序列–––用雙引號(hào)“...〞括起來(lái)的格式符序列。格式控制序列由格式說(shuō)明符和普通字符組成。2.普通字符原樣輸出1.格式說(shuō)明符:由%接–格式字符組成如:%f,%d等21例:a=23;b=124;printf("a=

%d,b=

%d",a,b);…結(jié)果:a=23,b=124無(wú)論a,b中位數(shù)多少,均為上述形式22二、格式字符如直接用%d,那么將出錯(cuò)。不同類型的數(shù)據(jù)輸出,用不同格式字符:1.d格式符––十進(jìn)制整數(shù)輸出。(1)%d:按數(shù)據(jù)的實(shí)際長(zhǎng)度輸出。(2)%md:m表示輸出字段寬度。假設(shè)實(shí)際位數(shù)<m,左邊補(bǔ)空格。(3)%ld:輸出長(zhǎng)整數(shù)如要指定寬度,那么用%mld即可。例:longa=1234567;printf("%ld",a);232.o格式符–––按八進(jìn)制形式輸出.1111111111111111以1的補(bǔ)碼形式inta=–1;printf("%d,%o",a,a);那么輸出結(jié)果:–1,177777注:連符號(hào)位一起組成八進(jìn)制數(shù)輸出特例:–1存于int單元如以長(zhǎng)整型輸出,在%加l,也可指定寬度m,%mo243.x格式符–––以十六進(jìn)制形式輸出整數(shù).例:inta=–1;printf("%x,%o,%d〞,a,a,a)輸出結(jié)果:ffff,177777,–125例:main(){unsignedinta=65535;intb=–2;printf("a=%d,%o,%x,%u\n",a,a,a,a);printf("b=%d,%o,%x,%u\n",b,b,b,b);}a=–1,177777,ffff,6553511111111111111111111111111111110a=65535b=–24.

u格式符–––無(wú)符號(hào)格式輸出整數(shù).b=–2,177776,fffe,65534運(yùn)行結(jié)果為:265.

c格式符–––輸出一個(gè)字符.注:假設(shè)有一整型變量,其值在0~255之間,那么可以字符形式輸出.一個(gè)字符型變量亦可以一個(gè)整型數(shù)據(jù)輸出.charc='a';printf("%c",c);27例:main(){charc='a';inti=97;printf("%c,%d\n",c,c);printf("%c,%d\n",i,i);}28運(yùn)行結(jié)果為:a,97a,97也可以指定輸出字符寬度,如果有那么輸出:“ㄩㄩa",即c變量輸出占3列,前2列補(bǔ)空格.print("%3c〞,c)296.s格式符–––用來(lái)輸出一個(gè)字符串.(1)%ms,輸出的字符串占m列,如字符串本身長(zhǎng)度大于m,那么突破m的限制,將字符串全部輸出。假設(shè)串長(zhǎng)小于m,那么左補(bǔ)空格。允許一定的編輯即允許%ms,%–ms,%m.ns,%–m.ns四種形式,每一形式的意義如下:例:printf("%s","CHINA");結(jié)果:CHINA30(3)%m.ns,輸出占m列,但只取字符串中左端n個(gè)字符。這n個(gè)字符輸出在m列的右側(cè),左補(bǔ)空格。(4)%–ms,其中m、n含義同上,n個(gè)字符輸出在m列范圍的左側(cè),右補(bǔ)空格。如果n>m,那么m自動(dòng)取n值,即保證n個(gè)字符正常輸出。(2)%–ms,如果串長(zhǎng)小于m,那么在m列范圍內(nèi),字符串向左靠,右補(bǔ)空格。317.

f格式符–––以小數(shù)形式輸出單、雙精度實(shí)數(shù),有以下幾種形式:%m.nf,指定輸出的數(shù)據(jù)共占m列,其中有n位小數(shù)。如果值長(zhǎng)度小于m,那么左端補(bǔ)空格。%–m.nf,與%m.nf根本相同,只是使輸出的數(shù)值向左端靠,右端補(bǔ)空格。%f,不指定字段寬度,由系統(tǒng)自動(dòng)指定,使整數(shù)局部全部如數(shù)輸出,并輸出6位小數(shù)。%f%m.nf%–m.nf328.e格式符–––以指數(shù)形式輸出單,雙精度實(shí)數(shù)根本形式:%e結(jié)果:1.23456共13列6例5例可有%m.ne和%–m.ne的形式9.g格式符––根據(jù)實(shí)數(shù)大小自動(dòng)選擇f格式,或e格式輸出單雙精度實(shí)數(shù)。e+002例:printf("%e",123.456)33表3.1printf格式字符總結(jié)格式字符d以帶符號(hào)的十進(jìn)制形式輸出整數(shù)(正數(shù)不輸出符號(hào))oxucsfeg以8進(jìn)制無(wú)符號(hào)形式輸出整數(shù)(不輸出前導(dǎo)符0)。以16進(jìn)制無(wú)符號(hào)形式輸出整數(shù)(不輸出前導(dǎo)符0x)。以無(wú)符號(hào)10進(jìn)制形式輸出整數(shù)。以字符形式輸出,只輸出一個(gè)字符。說(shuō)明輸出字符串。以小數(shù)形式輸出單、雙精度數(shù),隱含輸出6位小數(shù)。以標(biāo)準(zhǔn)形式輸出單、雙精度數(shù),數(shù)字部分小數(shù)位數(shù)為6位。選用%f或%e格式中輸出寬度較短的一種格式,不輸出無(wú)意義的0。34許多情況與具體機(jī)器或系統(tǒng)有關(guān),最好機(jī)器上一試。表3.2附加格式說(shuō)明字符字符說(shuō)明用于長(zhǎng)整型整型,可加在格式符d、o、x、u前面。數(shù)據(jù)最小寬度對(duì)實(shí)數(shù),表示輸出n位小數(shù);對(duì)字符串,表示截取的字符個(gè)數(shù)。輸出的數(shù)字或字符在域內(nèi)向左靠。m(代表一個(gè)正整數(shù)).n(代表一個(gè)正整數(shù))–字母l35§4.5數(shù)據(jù)輸入系統(tǒng)提供了假設(shè)干函數(shù),以提供從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)上輸入數(shù)據(jù).3.5.1getchar函數(shù)本節(jié)先介紹兩個(gè)輸入函數(shù).形式:getchar()功能:從標(biāo)準(zhǔn)輸入裝置(鍵盤)上輸入一個(gè)字符要求:有#include"stdio.h"預(yù)編譯命令36例:#include"stdio.h"main(){charc;c=getchar();putchar(c);}374.5.2scanf函數(shù)功能:在標(biāo)準(zhǔn)輸入裝置(鍵盤)上按指定格式輸入各種類型的數(shù)據(jù)。getchar函數(shù)只能用來(lái)輸入一個(gè)字符,用scanf函數(shù)可以用來(lái)輸入任何類型的多個(gè)數(shù)據(jù)。地址表列–––變量的地址或字符串首地址。形式:scanf(格式控制序列,地址表列)格式控制序列–––同printf(…..)38例:main(){inta,b,c;scanf("a=

%d,%d,%d",&a,&b,&c);prinft("%d,%d,%d\n,"a,b,c);}運(yùn)行,機(jī)器等待你輸入:

a=3,4,5↙結(jié)果3,4,539注意:1.scanf函數(shù)使用地址量接受數(shù)據(jù)。2.輸入數(shù)據(jù)的間隔為“↙Tab空格〞3.允許在格式符中插入附加字符。格式字符及附加字符的定義如下表3.3和表3.440表3.3scanf格式字符格式字符d用來(lái)輸入十進(jìn)制整數(shù)。oxcsfe用來(lái)輸入八進(jìn)制整數(shù)。用來(lái)輸入十六進(jìn)制整數(shù)。用來(lái)輸入單個(gè)字符。說(shuō)明用來(lái)輸入字符串,將字符串送到一個(gè)字符數(shù)組中,在輸入時(shí)以非空白字符開始,以第一個(gè)空白字符結(jié)束。字符串以串結(jié)束標(biāo)志‘\0’作為其最后一個(gè)字符。用來(lái)輸入實(shí)數(shù),可以用小數(shù)形式或指數(shù)形式輸入。以f作用相同,e與f可以互相替換。41表3.4scanf附加的格式說(shuō)明字符字符說(shuō)明用于輸入長(zhǎng)整型數(shù)據(jù)(可用%ld,%lo,%lx),以及double型數(shù)據(jù)(用%lf或%le)。用于輸入短整型數(shù)據(jù)(可用%hd,%ho,%hx)。指定輸入數(shù)據(jù)所占寬度(列數(shù))。表示本輸入項(xiàng)在讀入后不賦給相應(yīng)的變量。h域?qū)?為一正整數(shù))*l424.對(duì)于輸入unsigned型數(shù)據(jù),不用%u,而用%d,%o,%x.5.指定數(shù)據(jù)長(zhǎng)度時(shí),系統(tǒng)自動(dòng)截取。那么當(dāng)輸入123456時(shí),

scanf("%3d%3d",&a,&b);a123,b456437.輸入數(shù)據(jù)不能規(guī)定精度.6.在%后加“*〞表示跳過(guò)相應(yīng)的數(shù)據(jù)那么當(dāng)輸入為1234567↙那么a12b67scanf("%2d%*3d%2d",&a,&b);scanf("%7.2f",&a);是錯(cuò)誤的448.在格式控制中除格式說(shuō)明符外假設(shè)還有其它字符,那么應(yīng)按順序原樣輸入。例:scanf("%d,%d",&a,&b);那么必須輸入21,28↙又如:scanf("a=%d,b=%d,c=%d",&a,&b,&c);那么輸入:a=34,b=58,c=10045§4.6程序舉例例1:輸入三角形三邊,求三角形面積。例2:輸入一個(gè)大寫字母,要求系統(tǒng)改為小寫字母輸出。例3.當(dāng)b2–4ac>0時(shí),求ax2+bx+c=0的兩個(gè)根。46二.scanf

溫馨提示

  • 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)論