第02章-順序結(jié)構(gòu)程序設(shè)計(jì).ppt_第1頁
第02章-順序結(jié)構(gòu)程序設(shè)計(jì).ppt_第2頁
第02章-順序結(jié)構(gòu)程序設(shè)計(jì).ppt_第3頁
第02章-順序結(jié)構(gòu)程序設(shè)計(jì).ppt_第4頁
第02章-順序結(jié)構(gòu)程序設(shè)計(jì).ppt_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、2020/7/24,1,第2章 順序結(jié)構(gòu)程序設(shè)計(jì),程序在執(zhí)行時(shí)總是從main()函數(shù)開始,由上往下一條一條地執(zhí)行遇到的語句。除非遇到控制語句,程序才會(huì)按控制語句的控制關(guān)系進(jìn)行有選擇的跳轉(zhuǎn)。 語言的語句可分為種類型: 1、控制語句(條) 2、函數(shù)調(diào)用語句: 3、表達(dá)式語句 4、空語句 5、復(fù)合語句,2020/7/24,2,1、控制語句(條) (1)if( ) ; else ; (2)switch( ) ; (3)goto,2020/7/24,3,1、控制語句(條) (4)while( ) ; (5)do ; while( ) (6)for( ; ; ) ; ,2020/7/24,4,1、控制語句

2、(條) (7)continue ; (8)break; (9)return exp ;,2020/7/24,5,2、函數(shù)調(diào)用語句: 函數(shù)名(參數(shù)列表); 3、表達(dá)式語句:每一個(gè)合法的表達(dá)式后面加一個(gè)分號(hào)(;)便構(gòu)成了語言的語句。 4、空語句:只有一個(gè)單獨(dú)的分號(hào)構(gòu)成的語句。 作用主要用來調(diào)試程序。 5、復(fù)合語句:用一對(duì)花括號(hào)將若干語句括起來構(gòu)成一條復(fù)合語句。邏輯上可以把它當(dāng)成一條語句來理解。,2020/7/24,6,注: (1)只要是語句,則必須在其后有一個(gè)分號(hào)(但是if、switch、while、dowhile、for除外)。語句是沒有值的,而所有表達(dá)式都有一個(gè)確定的值。 (2)復(fù)合語句中不僅

3、可以有執(zhí)行語句,而且可以有定義語句。但定義語句必須在執(zhí)行語句前。 (3)復(fù)合語句可以嵌套。 (4)復(fù)合語句可以由一對(duì)單獨(dú)的花括號(hào) 組成,即在 內(nèi)可以沒有任何語句??盏囊彩菫榱擞脕碚{(diào)試程序。 (5);空語句與沒有語句是兩個(gè)不同的概念??照Z句表示有一條語句,只是該語句不做任何操作。,2020/7/24,7,函數(shù)體主要包括: (1)變量定義語句; (2)輸入語句; (3)運(yùn)算語句; (4)輸出語句。,2020/7/24,8,輸入、輸出語句,語言本身不提供輸入、輸出語句,輸入、輸出操作是由函數(shù)來實(shí)現(xiàn)的。 “標(biāo)準(zhǔn)輸入輸出函數(shù)”是以標(biāo)準(zhǔn)輸入輸出設(shè)備(即鍵盤和顯示器)為輸入輸出對(duì)象,它們都是一些庫函數(shù)。如:

4、 putchar() getchar() printf() scanf() puts() gets(),2020/7/24,9,輸入、輸出語句,使用庫函數(shù)時(shí)必須先用預(yù)編譯命令include將相應(yīng)的頭文件包含到所編程文件中。 預(yù)編譯命令include的功能:是將頭文件的代碼放到所編寫的程序文件中,以便在程序中能夠引用頭文件中的變量或函數(shù)。 printf()、scanf()對(duì)應(yīng)的頭文件可以省略。 include #include #include,2020/7/24,10,輸入、輸出語句,一、字符數(shù)據(jù)的輸入輸出 1)putchar( ) 格式:putchar(字符常量或字符變量) 功能:輸出一個(gè)字

5、符但不輸出單引號(hào)。其中“字符”可以是一切合法的字符型或整型數(shù)據(jù)(它會(huì)自動(dòng)將整型數(shù)據(jù)轉(zhuǎn)換成相應(yīng)字符后輸出) 如: putchar(a); putchar(n); putchar(100); putchar(100); 非法字符,2020/7/24,11,輸入、輸出語句,一、字符數(shù)據(jù)的輸入輸出 2)getchar() 格式:getchar() 功能:接收一個(gè)從鍵盤輸入的字符。 注: (1)此函數(shù)沒有任何參數(shù),函數(shù)的返回值就是輸入的字符。 (2)可以接收從鍵盤上輸入的任何字符包括回車符、空格符、制表符等。 (3)任何輸入都是在回車后按順序送入內(nèi)存中,即才能被函數(shù)所接收。 如:char a, b; a

6、=getchar(); b=getchar(); 若輸入為: 則變量a 的值為字符1,變量b 的值為回車符。,2020/7/24,12,二、格式輸入輸出函數(shù),1. printf()函數(shù) 例 已知圓半徑radius=1.5,求圓周長(2r)和圓面積(r2) 。,2020/7/24,13,#include main( ) float r = 1.5, l, s, pi=3.14; l= 2 * pi * r; s= pi * r * r; printf(“r = %fn”, r); printf(“l(fā) = %7.2f, s=%7.2fn”, l, s); ,r= 1.500000,l= 9.42,

7、 s = 7.07,2020/7/24,14,printf()格式: (1) printf(“格式控制”,輸出列表) (2)printf(“格式控制”) 功能:按格式控制指定的格式輸出數(shù)據(jù)。 其中:“格式控制”是用雙引號(hào)括起來的字符串,其中包含以開始的“格式說明符”和原樣輸出的“普通字符”兩部分內(nèi)容。輸出列表是需要輸出的一批用逗號(hào)隔開的數(shù)據(jù)(常量、變量、表達(dá)式)。 如: printf(“c=%d, d=%d”,3,4+7); 輸出結(jié)果:c=3, d=11 注:這里并不表示c的值為,d的值為。c=和d=還有“,”是格式控制中要原樣輸出的普通字符,3和11是分別由兩個(gè)%d控制輸出的數(shù)據(jù)。,2020

8、/7/24,15,格式字符: (1)d或i 說明:控制輸入輸出帶符號(hào)的十進(jìn)制形式整數(shù),其中不輸出正號(hào)。 (2)u 說明:控制輸入輸出無符號(hào)的十進(jìn)制整數(shù) (3)o 說明:控制輸入輸出無符號(hào)的八進(jìn)制整數(shù) (4)X或x 說明:控制輸入輸出無符號(hào)的十六進(jìn)制形式整數(shù),不輸出前導(dǎo)符號(hào)0 x.輸出時(shí)小寫x對(duì)應(yīng)小寫a,b,c,d,e,f,大寫對(duì)應(yīng)A,B,C,D,E,F (5)c 說明:控制輸入輸出一個(gè)字符,不輸出單引號(hào)。,2020/7/24,16,格式字符: (6)s 說明:控制輸入輸出一個(gè)字符串。在輸入時(shí)以第一個(gè)非空字符開始接收,并以碰到的第一個(gè)空白字符(包括空格、回車符)結(jié)束,輸出時(shí)不輸出雙引號(hào)。 (7)

9、f 說明:控制輸入輸出一個(gè)實(shí)型數(shù)。輸入時(shí)可以用小數(shù)形式亦可用指數(shù)形式;輸出時(shí)以小數(shù)形式輸出,并隱含輸出位小數(shù)。 (8)E或e 說明:控制輸出指數(shù)形式的實(shí)型數(shù),輸入時(shí)與f相同。 (9)G或g 說明:控制輸出時(shí)自動(dòng)選用%f或%e格式中輸出寬度較短的一種格式,且不輸出無意義的0,輸入時(shí)與f相同。,2020/7/24,17,補(bǔ)充: 附加格式說明符表:(附加符寫在百分號(hào)與格式字符之間) (1)l 說明:用于輸入輸出長整型數(shù)據(jù)或雙精度數(shù)據(jù) (2) 說明:用于在輸出時(shí)靠左輸出,沒用該符號(hào)時(shí)采用靠右輸出 (3) 說明:用于輸出時(shí)輸出八進(jìn)制數(shù)的前導(dǎo),輸出十六進(jìn)制的前導(dǎo)0 x (4)* 用于表示輸入時(shí)本輸入項(xiàng)指定

10、的數(shù)據(jù)被跳過。,2020/7/24,18,printf( )函數(shù)舉例: (1)、d 、i格式: )d 按整型數(shù)據(jù)的實(shí)際長度輸出。 )md輸出項(xiàng)占用m列,若整數(shù)的實(shí)際長度小于m,則輸出時(shí)左邊用空格補(bǔ)足m列;若整數(shù)的實(shí)際長度大于m,則按整數(shù)的實(shí)際長度輸出。 )md輸出項(xiàng)占用m列,若整數(shù)的實(shí)際位數(shù)小于m,則輸出時(shí)右邊用空格補(bǔ)足m列;若整數(shù)的實(shí)際位數(shù)大于m,則按整數(shù)的實(shí)際輸出。 )ld用于輸出長整型數(shù)據(jù)。輸入輸出長整型數(shù)據(jù)時(shí)必須使用該格式。 (2)u格式: u以無符號(hào)的十進(jìn)制形式輸出整數(shù)。 printf(“%u”,-1); 結(jié)果:,2020/7/24,19,printf( )函數(shù)舉例: (3)o 格式

11、: o以無符號(hào)的八進(jìn)制形式輸出整數(shù)。不輸出前導(dǎo)符0. printf(“%d,%o”,-1,-1); 結(jié)果: (4)x或X: %x以無符號(hào)的十六進(jìn)制形式輸出整數(shù)。不輸出前導(dǎo)符0 x或oX,小寫對(duì)小寫,大寫對(duì)大寫。 printf(“%d,%x,%X”,-1,-1,0 xaBc); 結(jié)果:-1,ffff,ABC,2020/7/24,20,printf( )函數(shù)舉例: (5)c格式: d和c可以交換使用,它們會(huì)自動(dòng)進(jìn)行數(shù)據(jù)轉(zhuǎn)換。 printf(“c,%d”,a,a); printf(“%c,%d”,100,100); (6)s格式:string )s輸出字符串的有效字符。 printf(“%s”,“h

12、ina”); 2)%ms 輸出時(shí)共占m列,若實(shí)際長度小于m,則左端用空格補(bǔ)足,若實(shí)際長度大于m,則按字符實(shí)際長度輸出。 printf(“%5s,%-5s,%5s”,“LJL”,“LJL”,”4332567”) 3)%m.ns 輸出時(shí)共占m列,但只輸出字符串的左n個(gè)字符到m列的右端。 printf(“8.5s”,”zhaohaiying”);,2020/7/24,21,printf( )函數(shù)舉例: (7)f格式:按小數(shù)形式輸出一個(gè)實(shí)型數(shù)據(jù)。 1)%f 默認(rèn)輸出6位小數(shù)。 printf(“%f,%f”,123.4,123.4E-2) 2)m.nf 輸出時(shí)共占m列,其中有n位小數(shù)。若輸出數(shù)據(jù)超過m列

13、,則在確保n位小數(shù)后按實(shí)際輸出。 printf(“%7.3f,%-7.3f,%3.1f”,34.67893,34.67893,1234.567); (8)e格式:以指數(shù)形式輸出一個(gè)實(shí)數(shù)。輸出時(shí)以規(guī)范化指數(shù)形式輸出,即小數(shù)點(diǎn)前有且只有位非零數(shù)。共有位小數(shù),位指數(shù)。 printf(“%e,%e”,123.4,123.45e-7); (9)g格式: 自動(dòng)選用%f和%e 格式中輸出較短的一種輸出,對(duì)于小數(shù)部分不輸出無意義的零。 printf(“%g,%g,%g”,123.45,123.45e-2,123000000.0);,2020/7/24,22,printf( )函數(shù)舉例: 注: (1)格式說明均

14、是以百分號(hào)%開頭,格式字符結(jié)束。若有兩個(gè)連續(xù)的% 則輸出一個(gè)%。 printf(“%d=%d”,6,5); 結(jié)果:%d=6 printf(“score=%d%”,50); score=50% (2)除格式x、e、g大寫小寫均可外,其它都只能用小寫字母。 printf(“%d=%D”,5,6); 結(jié)果:%D (3)輸出時(shí)格式說明符所能操作的數(shù)據(jù)類型與對(duì)應(yīng)的輸出項(xiàng)類型必須相同。但%d與%c 除外。 printf(“%d”,5.0); printf(“%f”,5); printf(“%c”,”a”);,2020/7/24,23,2、scanf( ) 函數(shù) 格式: scanf(“格式控制”,地址列表)

15、 功能:其中的“格式控制”與printf()中使用方法相同,地址列表是一些用逗號(hào)隔開的變量地址。取變量地址的方法是在變量名前面加上地址運(yùn)算符,2020/7/24,24,2、scanf( ) 函數(shù) 注: 1)可以指定數(shù)據(jù)所占的列數(shù),輸入后由系統(tǒng)自動(dòng)截取相應(yīng)的位數(shù)。 scanf(“%3d%2d”, 出現(xiàn)異常,2020/7/24,25,2、scanf( ) 函數(shù) 注: 4)”格式控制”中除格式說明符外,若還有其它字符,則在輸入時(shí)這些字符必須原樣輸入。 scanf(“%d ,%d”,2020/7/24,26,2、scanf( ) 函數(shù) 注: 6)由于%c格式可以將從鍵盤上輸入的任何按鍵作為有效字符賦給

16、相應(yīng)的變量。所以即使兩個(gè)%c之間沒有其它字符,輸入時(shí)兩個(gè)字符之間不能用空格或回車來分隔。 scanf(“%c%c%c”,2020/7/24,27,小結(jié): (1)輸出列表和地址列表都不能出現(xiàn)“空項(xiàng)”,即不能出現(xiàn)多余的逗號(hào)。 printf(“%d,%d,%d”,a, ,b); (2)在輸出時(shí)若格式說明符個(gè)數(shù)多于輸出列表中的項(xiàng)數(shù),則多余說明符隨機(jī)輸出;若格式說明符個(gè)數(shù)少于輸出列表中的項(xiàng)數(shù),則輸出列表中多余的輸出項(xiàng)不輸出。(采用從左到右一一對(duì)應(yīng)的方式)。 printf(“%d,%d,%d”,1,2); printf(“%d,%d,%d”,1,2,3,4,5);,2020/7/24,28,小結(jié): (3)

17、在輸入時(shí)若格式說明符個(gè)數(shù)多于地址列表中的項(xiàng)數(shù),則運(yùn)行時(shí)出現(xiàn)異常;若格式說明符個(gè)數(shù)少于地址列表中的項(xiàng)數(shù),則多余的地址保留原值。 若有定義 int a=5,b=6; scanf(“%d”, 輸入: 輸出:a=30 b=6 (4)對(duì)于double,long double輸入時(shí)必須在格式字符(f,e,g)前加字母l,輸出時(shí)可以加也可以不加。 對(duì)于float在輸入時(shí)不能加字母l,輸出時(shí)可以加也可以不加。 對(duì)于long int 在輸入輸出時(shí)都必須在d格式字符前加字母l,int型輸出時(shí)不能在d前加l,輸入時(shí)最好不加。,2020/7/24,29,給計(jì)算機(jī)提供數(shù)據(jù),可以使用: (1)賦值語句。 只能解決1個(gè)特定

18、的問題。 (2)輸入函數(shù)scanf() 。 能解決1類特定的問題。 顯然,采用scanf( )函數(shù),使得程序具有更好的適應(yīng)性。,2020/7/24,30,3.2.2 數(shù)據(jù)輸入操作(假設(shè)num1=12、num2=36) 1默認(rèn)分隔符空格、 Tab鍵、回車 如果不指定分隔符(例如逗號(hào)、冒號(hào)),則使用默認(rèn)分隔符。 例如,scanf(%d%d, 正確的輸入操作為: 1236 或者:12 36,2020/7/24,31,2普通字符務(wù)必原樣輸入。 (1) scanf(%d ,%d, 正確的輸入操作為: num1=12 ,num2=36n 提示:scanf()格式字符串中,沒有轉(zhuǎn)義字符概念。 比較(1)、(

19、2)兩種設(shè)計(jì)方式的優(yōu)缺點(diǎn)?,2020/7/24,32,比較(1)、(2)兩種設(shè)計(jì)方式的優(yōu)缺點(diǎn)? (1) 僅輸入數(shù)據(jù),輸入量小,但人機(jī)交互性差(用戶不知道該輸入什么,以及輸入給誰)。 (2) 同時(shí)輸入說明和數(shù)據(jù),人機(jī)交互友好性好,但輸入量大。 思考:如何改進(jìn)設(shè)計(jì),既保持良好的人機(jī)交互性,又不增加輸入量?,2020/7/24,33,提高人機(jī)交互性的設(shè)計(jì)思路: 先用printf()函數(shù)輸出提示信息,再用scanf()函數(shù)進(jìn)行數(shù)據(jù)輸入。 scanf(num1=%d,num2=%dn,2020/7/24,34,3使用 “%c”輸入時(shí),空格和轉(zhuǎn)義字符均作為有效字符被輸入。 例如: scanf(%c%c%c

20、, 思考:假設(shè)輸入“ABC”,printf()輸出的內(nèi)容是什么? 輸出結(jié)果:ch1= A,ch2=,ch3= B 返回,2020/7/24,35,3.3 順序結(jié)構(gòu)程序設(shè)計(jì),順序結(jié)構(gòu)程序一般包括兩部分: 1程序開頭的編譯預(yù)處理命令。 如果要在程序中使用標(biāo)準(zhǔn)庫函數(shù),則必須使用編譯預(yù)處理命令#include,將相應(yīng)的頭文件包含進(jìn)來。,2020/7/24,36,2函數(shù)體主要包括: (1)變量定義語句; (2)輸入語句; (3)運(yùn)算語句; (4)輸出語句。 3 執(zhí)行流程:各語句是按照物理位置次序,被順序執(zhí)行,且每個(gè)語句都會(huì)被執(zhí)行到。,2020/7/24,37,案例 輸入3個(gè)整數(shù),求它們的和及平均值。 #

21、include “stdio.h” #include “conio.h” void main() int num1,num2,num3,sum; float aver; printf(Please input three numbers:); scanf(%d, %d, %d, ,2020/7/24,38,案例3.11 設(shè)計(jì)一個(gè)進(jìn)行加、減、乘、除和求余數(shù)運(yùn)算練習(xí)的程序。 對(duì)程序功能的基本要求如下: (1) 使用菜單驅(qū)動(dòng); (2) 隨機(jī)產(chǎn)生運(yùn)算所需的2個(gè)操作數(shù)(0-99); (3) 程序自動(dòng)判斷用戶的計(jì)算結(jié)果是否正確。 由于所學(xué)內(nèi)容的限制,本案例的設(shè)計(jì)要求將在本章,以及隨后的第4 第7章中分階段逐步實(shí)現(xiàn)并完善。 本案例首先實(shí)現(xiàn)設(shè)計(jì)要求(1) 。,2020/7/24,39,/*功能:菜單程序段*/ #include stdio.h #include conio.h void main() char options; clrscr( );/*清屏。函數(shù)原型在conio.h中*/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論