第四章順序結(jié)構(gòu)程序相關(guān)設(shè)計(jì)_第1頁(yè)
第四章順序結(jié)構(gòu)程序相關(guān)設(shè)計(jì)_第2頁(yè)
第四章順序結(jié)構(gòu)程序相關(guān)設(shè)計(jì)_第3頁(yè)
第四章順序結(jié)構(gòu)程序相關(guān)設(shè)計(jì)_第4頁(yè)
第四章順序結(jié)構(gòu)程序相關(guān)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(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)介

第四章順序結(jié)構(gòu)程序相關(guān)設(shè)計(jì)一、C語(yǔ)言中的三大流程控制結(jié)構(gòu)1、順序結(jié)構(gòu)2、選擇結(jié)構(gòu)3、循環(huán)結(jié)構(gòu)從上往下順次執(zhí)行的結(jié)構(gòu)稱為順序結(jié)構(gòu)。如:P1_2。二、基本的C語(yǔ)句

在C語(yǔ)言中,大多數(shù)的操作運(yùn)算都是通過(guò)表達(dá)式來(lái)實(shí)現(xiàn)的。表達(dá)式后加一個(gè)分號(hào)組成表達(dá)式語(yǔ)句。C語(yǔ)句有下面的幾種類(lèi)型控制語(yǔ)句函數(shù)調(diào)用語(yǔ)句表達(dá)式語(yǔ)句空語(yǔ)句復(fù)合語(yǔ)句等例如:y=sin(x);i++;printf(“Helloworld!”);等都是表達(dá)式語(yǔ)句。空語(yǔ)句是只有一個(gè)分號(hào)組成,它沒(méi)有任何意義,但是合法的C語(yǔ)句。二、基本的C語(yǔ)句在C語(yǔ)言中,允許把一組C語(yǔ)句放在一對(duì)花括號(hào)內(nèi),作為一個(gè)C語(yǔ)句來(lái)使用,我們稱這一組C語(yǔ)句為復(fù)合語(yǔ)句。例如:{c=getchar();putchar(c);}應(yīng)當(dāng)注意,在復(fù)合語(yǔ)句的后面,不用再寫(xiě)分號(hào)。三、數(shù)據(jù)的輸入、輸出一個(gè)程序,必須要有輸出,通過(guò)輸出的結(jié)果,我們才可以驗(yàn)證該程序是否能夠正確地解決相應(yīng)的問(wèn)題。在C語(yǔ)言中,數(shù)據(jù)的輸入、輸出都是由函數(shù)來(lái)實(shí)現(xiàn)的。C語(yǔ)言提供了多種輸入、輸出函數(shù),他們功能強(qiáng)大,使用靈活。關(guān)于這些函數(shù)的原型信息(說(shuō)明信息)都放在頭文件stdio.h中。常用的輸出函數(shù)有:printf、puts、putchar等。常用的輸入函數(shù)有:scanf、getchar、gets。(一)printf函數(shù)的使用:1、使用格式:printf(格式控制參數(shù),輸出項(xiàng)1,輸出項(xiàng)2,……);格式控制參數(shù)以字符串的形式描述,所以也稱“格式控制字符串”。它由兩部分組成:格式說(shuō)明和普通字符。普通字符將被簡(jiǎn)單得復(fù)制顯示;一個(gè)格式說(shuō)明項(xiàng)將引起一個(gè)輸出參數(shù)項(xiàng)的轉(zhuǎn)換與顯示。格式說(shuō)明項(xiàng)是由“%”和一個(gè)類(lèi)型描述符組成的字符串。其常用格式如:sum=5;printf(“\nTheresultis:%d?!?sum);它的輸出將是:Theresultis:5。需要注意的是格式說(shuō)明項(xiàng)的個(gè)數(shù)與類(lèi)型要與輸出項(xiàng)一一對(duì)應(yīng)。(一)printf函數(shù)的使用:2、格式字符有:格式字符輸出形式舉例輸出結(jié)果d或i十進(jìn)制整數(shù)inta=123;printf(“%d”,a);123x(或X)十六進(jìn)制整數(shù)inta=123;printf(“%x”,a);7Bo八進(jìn)制整數(shù)inta=123;printf(“%o”,a);173u無(wú)符號(hào)的十進(jìn)制整數(shù)inta=123;printf(“%u”,a);123c一個(gè)字符chara=’E’;printf(“%c”,a);Es字符串Chara[]=”china”;printf(“%s”,a);chinae或(E)指數(shù)形式的實(shí)數(shù)數(shù)floata=123.456;printf(“%d”,a);1.234560e+002f小數(shù)形式的實(shí)數(shù)數(shù)floata=123.456;printf(“%d”,a);123.456000g(或G)e和f中較短的一種,即忽略無(wú)效0floata=123.456;printf(“%d”,a);123.456%%本身printf(“%%”);%(一)printf函數(shù)的使用:1、輸出轉(zhuǎn)換 在輸出語(yǔ)句中,也會(huì)發(fā)生隱式轉(zhuǎn)換。如: floatf=5.8;printf(“%d”,f);則輸出5。 如果是inta=5.8;printf(“%f”,a);在編譯時(shí)不用出錯(cuò),但不會(huì)輸出結(jié)果。 再如:inti=-1;printf(“%u”,i);則會(huì)輸出()。 -1的原碼:000000000000001,補(bǔ)碼為:111111111111111存儲(chǔ)形式為16個(gè)1。故當(dāng)作為無(wú)符號(hào)數(shù)輸出時(shí),應(yīng)輸出65535(216-1)。(一)printf函數(shù)的使用:例1:編寫(xiě)一個(gè)程序,輸出下面的內(nèi)容:Helloworld!例2:編寫(xiě)一個(gè)程序,輸出ASCII碼為38的字符。例3:編寫(xiě)一個(gè)程序,計(jì)算264×322的結(jié)果。例4:編寫(xiě)一個(gè)程序,計(jì)算半徑為5cm的圓的面積。例5:編寫(xiě)一個(gè)程序,計(jì)算華氏100度是攝氏多少度。C=5(f-32)/9;

見(jiàn)程序P4_1~P4_5(一)printf函數(shù)的使用:另外,在%和格式字符之間可有一些可選的附加說(shuō)明項(xiàng),其完整格式為:%—0m?nl/h格式字符3、長(zhǎng)度修正符(l/h)l:對(duì)整型指long型,對(duì)實(shí)型指double型。如:%ld、%lx、%lo、%lu、%lf等h:只用于將整型的格式修正為short型。如:%hd、%hx、%ho、%hu等。是否左對(duì)齊指定空位是否填0指定輸出域?qū)捈熬容敵鲩L(zhǎng)度修正指定輸出類(lèi)型格式說(shuō)明的起始符可選項(xiàng)(一)printf函數(shù)的使用:4、域?qū)捈熬让枋龇╩?n):m:指域?qū)?。即?duì)應(yīng)的輸出項(xiàng)共占多少位的位置;n:指精度。即小數(shù)占多少位。不指定n時(shí),默認(rèn)的精度是n=6。需要特別指出的是:數(shù)據(jù)的實(shí)際精度并不取決于格式項(xiàng)中的域?qū)捙c精度,也不決定于輸入的數(shù)據(jù)精度,而主要取決于數(shù)據(jù)在機(jī)器內(nèi)的存儲(chǔ)精度。上機(jī)并思考:1、域?qū)捫∮趯?shí)際寬度時(shí)如何處理?2、缺省的精度是多少?3、精度說(shuō)明大于、小于實(shí)際精度時(shí),如何處理?4、float與double輸出的最大精度是多少?5、符號(hào)位如何處理?6、多余的小數(shù)是被截?cái)噙€是舍入?(一)printf函數(shù)的使用:5、數(shù)字前的空位是否用0填補(bǔ):(用數(shù)0表示)如:floata=1.23;printf(“%08.1f”,a);輸出結(jié)果為:000001.26、負(fù)號(hào)用以指定輸出項(xiàng)是否左對(duì)齊輸出:如:inta=3;printf(“|%5d,%-5d.”,a,a);(一)printf函數(shù)的使用:課本P84練習(xí)4.4(二)scanf函數(shù)的使用我們?cè)诰帉?xiě)程序時(shí),常需要處理用戶隨機(jī)輸入的數(shù)據(jù)。如上面例4。要編寫(xiě)計(jì)算任意一個(gè)圓的面積的程序。在運(yùn)行時(shí),用戶隨機(jī)輸入圓的半徑,就可運(yùn)行求得對(duì)應(yīng)的面積。此時(shí),就要需要程序能夠從終端讀入一個(gè)數(shù)據(jù),就要用到scanf函數(shù)。(二)scanf函數(shù)的使用

1、scanf函數(shù)的使用格式:

scanf(格式控制參數(shù),地址1,地址2,……);格式控制參數(shù)包括普通字符和格式說(shuō)明項(xiàng)兩部分。普通字符在輸入數(shù)據(jù)時(shí)要原樣輸入,格式說(shuō)明項(xiàng)說(shuō)明讀入的數(shù)據(jù)要存為什么格式。例如:inta;scanf(“%d”,&a);&:稱為地址運(yùn)算符,用于求一個(gè)變量的地址。改寫(xiě)例1~例5,增加程序的通用性。例6:編寫(xiě)求圓的面積的程序,圓的半徑從鍵盤(pán)輸入。例7:編寫(xiě)求圓柱的表面積的程序,圓柱的底面半徑和高由鍵盤(pán)隨便輸入。(見(jiàn)程序P4_6~P4_7)(二)scanf函數(shù)的使用

2、格式控制參數(shù):除了基本的格式字符外,格式參數(shù)還可以包含下面幾項(xiàng):%*ml/h格式字符賦值抑制符長(zhǎng)度修正說(shuō)明符指定輸入類(lèi)型格式說(shuō)明的起始符可選項(xiàng)域?qū)捳f(shuō)明符(二)scanf函數(shù)的使用3、

輸入流數(shù)據(jù)分隔scanf函數(shù)從輸入數(shù)據(jù)流中接受非空的字符,再轉(zhuǎn)換成格式項(xiàng)要求的格式,傳送到與格式項(xiàng)對(duì)應(yīng)的地址中去。那么,當(dāng)操作人員在終端上鍵入一串字符時(shí),系統(tǒng)怎么知道哪幾個(gè)字符算作一個(gè)數(shù)據(jù)項(xiàng)呢?有以下幾種方法:①根據(jù)格式字符的含義從輸入流中取得數(shù)據(jù),當(dāng)輸入流中的數(shù)據(jù)類(lèi)型與格式字符要求不符時(shí),就認(rèn)為這一數(shù)據(jù)項(xiàng)結(jié)束。如上例7:②根據(jù)域?qū)挿蛛x出數(shù)據(jù)項(xiàng):例8:main() {inta,b;scanf(“%2d%3d”,&a,&b);printf(“a=%d,b=%d.”,a,b);}若輸入123456,則a=12,b=345.(二)scanf函數(shù)的使用③用分隔符分隔例9:main(){inta,b;scanf(“%d%d”,&a,&b);printf(“a=%d,a=%d”,a,b);}例10:main() {inta,b;scanf(“%d,%d”,&a,&b);printf(“a=%d,a=%d”,a,b);}例11:main() {inta,b;scanf(“a=%d,b=%d”,&a,&b);printf(“a=%d,a=%d”,a,b);}注意:如果需要連續(xù)輸入兩個(gè)字符數(shù)據(jù),這兩個(gè)字符中間要慎用空格、回車(chē)符等分隔。(二)scanf函數(shù)的使用

4、抑制字符*它的作用是按格式說(shuō)明讀入數(shù)據(jù)后,不送給任何變量。例12:main(){inta,b,c;scanf(“%2d%*3d%d”,&a,&b);printf(“\na=%d,b=%d.”,a,b);} 當(dāng)輸入1234567時(shí),a=12,b=67,讀出345沒(méi)有賦給任何變量。(三)、其他輸入輸出函數(shù)1、

getchar:從輸入設(shè)備讀入一個(gè)字符。2、

putchar:在輸出設(shè)備輸出一個(gè)字符。用法:getchar();putchar(ch);(三)、其他輸入輸出函數(shù)例13:main(){charc;c=getchar();putchar(c);}練習(xí):1、在scanf函數(shù)的格式控制中,格式說(shuō)明的類(lèi)型與輸入項(xiàng)的類(lèi)型應(yīng)該一一對(duì)應(yīng)匹配,如果類(lèi)型不匹配,系統(tǒng)將() A)不予接受B)并不給出出錯(cuò)信息,但得不到正確的數(shù)據(jù)C)能接收到正確的數(shù)據(jù)D)給出出錯(cuò)信息,不予接收數(shù)據(jù)2、下面程序的輸出結(jié)果是() main(){inta=4;floatb=9.5;printf(“\na=%d,b=%4.2f”,a,b);}A)4,9.5B)\na=%d,b=%fC)a=4,b=9.50D)a=4,b=9.5練習(xí):3、下面程序的輸出結(jié)果是() main(){intc1=’b’,c2=’e’,c3=’e’;printf(“%d,%c”,c2-c1,c3-32);} A)2,MB)3,EC)2,ED)不能確定【注】英文字母的ASCII碼是連續(xù)的,且大寫(xiě)與小寫(xiě)相差32(’a’-‘A’=32)。即一個(gè)大寫(xiě)字母+32即可轉(zhuǎn)換成對(duì)應(yīng)的小寫(xiě)字母;一個(gè)小寫(xiě)字母-32即可轉(zhuǎn)換成對(duì)應(yīng)的大寫(xiě)字母。故應(yīng)該選擇B。同樣,數(shù)字的ASCII碼也是連續(xù)的,即’8’-‘3’=5。4、設(shè)有定義:longx=123456L;則能正確輸出x的值的語(yǔ)句是() A)printf(“x=%d\n”,x);B)printf(“x=%ld\n”,x);C)printf(“x=%8d\n”,x);D)printf(“x=%Ld\n”,x);練習(xí):5、若變量已正確說(shuō)明為float類(lèi)型,要通過(guò)下列語(yǔ)句分別給變量a,b,c賦值為10.0,22.0,33.0,則不正確的輸入形式是() scanf(“%f%f%f”,&a,&b,&c);AA)10<回車(chē)>B)10.0,22.0,33.0〈回車(chē)〉C)10.0〈回車(chē)〉22〈回車(chē)〉22.033.0〈回車(chē)〉33〈回車(chē)〉D)102233〈回車(chē)〉6、以下對(duì)scanf函數(shù)的使用,敘述正確的是() A)輸入項(xiàng)可以是一個(gè)實(shí)型常量,如scanf(“%f”,3.5);B)只有格式控制,沒(méi)有輸入項(xiàng),也能正確輸入數(shù)據(jù)到內(nèi)存,如scanf(“a=%d,b=%d”);C)當(dāng)輸入一個(gè)實(shí)型數(shù)據(jù)時(shí),格式控制部分可以規(guī)定小數(shù)點(diǎn)后的位數(shù),如:scanf(“%4.2f”,&f);D)當(dāng)輸入數(shù)據(jù)時(shí),

溫馨提示

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