




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第4章順序程序設(shè)計1§4.1C語句概述C語句全部為可執(zhí)行語句,對應(yīng)假設(shè)干機(jī)器操作指命令C程序由許多源文件組成。(分別編譯,然后連接)每一個源文件由預(yù)編譯命令和假設(shè)干函數(shù)組成。每一個函數(shù)由說明局部和語句局部組成。2其結(jié)構(gòu)如圖除說明局部外,重要局部為語句局部。C程序源程序文件1源程序文件i源程序文件n預(yù)編譯命令函數(shù)1函數(shù)n說明局部執(zhí)行局部(語句)……3程序書寫順序加頭〔預(yù)處理命令、函數(shù)說明等〕main()(必須有且只能有一個〕{}函數(shù)1函數(shù)2函數(shù)34C語句分為五類1.控制語句––改變語句的執(zhí)行順序共有9種控制語句:if()~else~(條件)for()~(循環(huán))while()~(循環(huán))do~while(循環(huán))()表示條件,~表示語句5continue(結(jié)束本次循環(huán))switch(多分支選擇)break(中止整個循環(huán))goto(轉(zhuǎn)移)return(函數(shù)返回)62.函數(shù)調(diào)用語句3.表達(dá)式語句printf("…");表達(dá)式加;如:i=i+1;i++;x+y;
其函數(shù)調(diào)用也可理解為表達(dá)式語句.75.復(fù)合語句4.空語句
;任何事情都不做.用{}括起來的一系列語句。如:{z=x+y;t=z/100;printf("%f",t);}8§4.2程序的三種根本結(jié)構(gòu)從結(jié)構(gòu)化程序設(shè)計角度出發(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條件成立時(T),反復(fù)執(zhí)行A,直到P為“假〞時才停止循環(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)組成的程序可以解決全部的問題,所以任何一種高級語言都具備上述三種結(jié)構(gòu)。14§4.3賦值語句由賦值表達(dá)式加分號;構(gòu)成,與其它高級語言相比有以下不同點(diǎn):“=〞為一運(yùn)算符,由此,構(gòu)成一賦值表達(dá)式,可出現(xiàn)于表達(dá)式能出現(xiàn)的任何地方:if((a=b)>0)t=a;15§4.4數(shù)據(jù)輸出前面已論述:C語言本身無輸入/出語句,由函數(shù)實(shí)現(xiàn),如printf等。一般:C語言提供了一些標(biāo)準(zhǔn)的輸入/出函數(shù)–––系統(tǒng)函數(shù)。16形式:putchar(c);功能:向終端(一般為顯示器)輸出一個字符,其中c為字符型或整型變量注意:用該函數(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語言中使用得最多的一種輸出函數(shù),它可一次按格式輸出多個不同類型的數(shù)據(jù)。printf(格式控制序列,輸出表列);輸出表列–––用“,〞號隔開的變量或表達(dá)式序列,其變量的值按對應(yīng)的格式控制符所指定的格式輸出。20格式控制序列–––用雙引號“...〞括起來的格式符序列。格式控制序列由格式說明符和普通字符組成。2.普通字符原樣輸出1.格式說明符:由%接–格式字符組成如:%f,%d等21例:a=23;b=124;printf("a=
%d,b=
%d",a,b);…結(jié)果:a=23,b=124無論a,b中位數(shù)多少,均為上述形式22二、格式字符如直接用%d,那么將出錯。不同類型的數(shù)據(jù)輸出,用不同格式字符:1.d格式符––十進(jìn)制整數(shù)輸出。(1)%d:按數(shù)據(jù)的實(shí)際長度輸出。(2)%md:m表示輸出字段寬度。假設(shè)實(shí)際位數(shù)<m,左邊補(bǔ)空格。(3)%ld:輸出長整數(shù)如要指定寬度,那么用%mld即可。例:longa=1234567;printf("%ld",a);232.o格式符–––按八進(jìn)制形式輸出.1111111111111111以1的補(bǔ)碼形式inta=–1;printf("%d,%o",a,a);那么輸出結(jié)果:–1,177777注:連符號位一起組成八進(jìn)制數(shù)輸出特例:–1存于int單元如以長整型輸出,在%加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格式符–––無符號格式輸出整數(shù).b=–2,177776,fffe,65534運(yùn)行結(jié)果為:265.
c格式符–––輸出一個字符.注:假設(shè)有一整型變量,其值在0~255之間,那么可以字符形式輸出.一個字符型變量亦可以一個整型數(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格式符–––用來輸出一個字符串.(1)%ms,輸出的字符串占m列,如字符串本身長度大于m,那么突破m的限制,將字符串全部輸出。假設(shè)串長小于m,那么左補(bǔ)空格。允許一定的編輯即允許%ms,%–ms,%m.ns,%–m.ns四種形式,每一形式的意義如下:例:printf("%s","CHINA");結(jié)果:CHINA30(3)%m.ns,輸出占m列,但只取字符串中左端n個字符。這n個字符輸出在m列的右側(cè),左補(bǔ)空格。(4)%–ms,其中m、n含義同上,n個字符輸出在m列范圍的左側(cè),右補(bǔ)空格。如果n>m,那么m自動取n值,即保證n個字符正常輸出。(2)%–ms,如果串長小于m,那么在m列范圍內(nèi),字符串向左靠,右補(bǔ)空格。317.
f格式符–––以小數(shù)形式輸出單、雙精度實(shí)數(shù),有以下幾種形式:%m.nf,指定輸出的數(shù)據(jù)共占m列,其中有n位小數(shù)。如果值長度小于m,那么左端補(bǔ)空格。%–m.nf,與%m.nf根本相同,只是使輸出的數(shù)值向左端靠,右端補(bǔ)空格。%f,不指定字段寬度,由系統(tǒ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ù)大小自動選擇f格式,或e格式輸出單雙精度實(shí)數(shù)。e+002例:printf("%e",123.456)33表3.1printf格式字符總結(jié)格式字符d以帶符號的十進(jìn)制形式輸出整數(shù)(正數(shù)不輸出符號)oxucsfeg以8進(jìn)制無符號形式輸出整數(shù)(不輸出前導(dǎo)符0)。以16進(jìn)制無符號形式輸出整數(shù)(不輸出前導(dǎo)符0x)。以無符號10進(jìn)制形式輸出整數(shù)。以字符形式輸出,只輸出一個字符。說明輸出字符串。以小數(shù)形式輸出單、雙精度數(shù),隱含輸出6位小數(shù)。以標(biāo)準(zhǔn)形式輸出單、雙精度數(shù),數(shù)字部分小數(shù)位數(shù)為6位。選用%f或%e格式中輸出寬度較短的一種格式,不輸出無意義的0。34許多情況與具體機(jī)器或系統(tǒng)有關(guān),最好機(jī)器上一試。表3.2附加格式說明字符字符說明用于長整型整型,可加在格式符d、o、x、u前面。數(shù)據(jù)最小寬度對實(shí)數(shù),表示輸出n位小數(shù);對字符串,表示截取的字符個數(shù)。輸出的數(shù)字或字符在域內(nèi)向左靠。m(代表一個正整數(shù)).n(代表一個正整數(shù))–字母l35§4.5數(shù)據(jù)輸入系統(tǒng)提供了假設(shè)干函數(shù),以提供從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)上輸入數(shù)據(jù).3.5.1getchar函數(shù)本節(jié)先介紹兩個輸入函數(shù).形式:getchar()功能:從標(biāo)準(zhǔn)輸入裝置(鍵盤)上輸入一個字符要求:有#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ù)只能用來輸入一個字符,用scanf函數(shù)可以用來輸入任何類型的多個數(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用來輸入十進(jìn)制整數(shù)。oxcsfe用來輸入八進(jìn)制整數(shù)。用來輸入十六進(jìn)制整數(shù)。用來輸入單個字符。說明用來輸入字符串,將字符串送到一個字符數(shù)組中,在輸入時以非空白字符開始,以第一個空白字符結(jié)束。字符串以串結(jié)束標(biāo)志‘\0’作為其最后一個字符。用來輸入實(shí)數(shù),可以用小數(shù)形式或指數(shù)形式輸入。以f作用相同,e與f可以互相替換。41表3.4scanf附加的格式說明字符字符說明用于輸入長整型數(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.對于輸入unsigned型數(shù)據(jù),不用%u,而用%d,%o,%x.5.指定數(shù)據(jù)長度時,系統(tǒng)自動截取。那么當(dāng)輸入123456時,
scanf("%3d%3d",&a,&b);a123,b456437.輸入數(shù)據(jù)不能規(guī)定精度.6.在%后加“*〞表示跳過相應(yīng)的數(shù)據(jù)那么當(dāng)輸入為1234567↙那么a12b67scanf("%2d%*3d%2d",&a,&b);scanf("%7.2f",&a);是錯誤的448.在格式控制中除格式說明符外假設(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:輸入一個大寫字母,要求系統(tǒng)改為小寫字母輸出。例3.當(dāng)b2–4ac>0時,求ax2+bx+c=0的兩個根。46二.scanf
函
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 車位抵押借款合同模板
- 詳細(xì)裝修合同范本
- 個體工商戶共同投資開店合同協(xié)議
- 合同編號土地使用權(quán)及開發(fā)權(quán)轉(zhuǎn)讓協(xié)議
- 商業(yè)綜合體停車庫管理合同
- 4《地球 我們的家園》第二課時 教學(xué)設(shè)計-2023-2024學(xué)年道德與法治六年級下冊統(tǒng)編版
- 供應(yīng)鏈管理合同目錄
- 建筑工程項(xiàng)目居間服務(wù)合同模板
- 技術(shù)開發(fā)合同(三)
- Module 5 Unit 1 Will you take your ball tomorrow(教學(xué)設(shè)計)-2023-2024學(xué)年外研版(一起)英語三年級下冊
- GB/T 11982.1-2015聚氯乙烯卷材地板第1部分:非同質(zhì)聚氯乙烯卷材地板
- 公司自備車出差申請表
- 流行病學(xué)與醫(yī)學(xué)統(tǒng)計學(xué)課件
- 電信渠道管理人員考核管理辦法
- 人教統(tǒng)編版選擇性必修1-國家制度與社會治理-活動課:中國歷史上的大一統(tǒng)國家治理優(yōu)質(zhì)課件(共20張)
- 口腔醫(yī)學(xué)美學(xué)課件-3
- 酒店的安全管理制度
- 杭州市主城區(qū)聲環(huán)境功能區(qū)劃分圖
- 湖南省陽氏宗親分布村落
- 豐田卡羅拉電路圖介紹
- 中考語文十大專題總復(fù)習(xí)資料
評論
0/150
提交評論