第3章+順序結(jié)構(gòu)程序設(shè)計_第1頁
第3章+順序結(jié)構(gòu)程序設(shè)計_第2頁
第3章+順序結(jié)構(gòu)程序設(shè)計_第3頁
第3章+順序結(jié)構(gòu)程序設(shè)計_第4頁
第3章+順序結(jié)構(gòu)程序設(shè)計_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C 程程 序序 設(shè)設(shè) 計計 2021-7-91 第3章 順序程序設(shè)計 C程序設(shè)計程序設(shè)計 C 程程 序序 設(shè)設(shè) 計計 2021-7-92 3.1 C語句概述 3.2 賦值語句 3.3 輸入/輸出函數(shù) 3.4 結(jié)構(gòu)化程序設(shè)計思想 3.5 順序結(jié)構(gòu)程序設(shè)計舉例 第三章 簡單的C程序設(shè)計 C 程程 序序 設(shè)設(shè) 計計 2021-7-93 C語句可分為以下5類 u表達式語句:由一個表達式構(gòu)成一個語句 u函數(shù)調(diào)用語句:由一次函數(shù)調(diào)用加一個分 號構(gòu)成一個語句 u控制語句(9種):完成一定控制功能。 u復(fù)合語句 u空語句 3.1 C語句的概述 C 程程 序序 設(shè)設(shè) 計計 2021-7-94 3.2 賦值語句

2、其一般形式為: 變量=表達式; 變量=(變量=表達式);是成立的。 int a=5,b=6; c=7;d=9; 二者是不同的。 在變量說明中,不允許連續(xù)給多個變量賦同一初值。 如:int a=b=b=3; if(x=y+5)0) z=x; 合法 if(x=y+5;)0) z=x; 非法 C 程程 序序 設(shè)設(shè) 計計 2021-7-95 3.3 輸入輸出函數(shù) u輸入:Input 輸出:Output uC語言沒有I/O語句,只有I/O函數(shù)。 u調(diào)用系統(tǒng)函數(shù)時,在程序的開頭要有頭文件 u # include “stdio.h” C 程程 序序 設(shè)設(shè) 計計 2021-7-96 一 、字符數(shù)據(jù)I/O 1

3、. putchar( )函數(shù)(字符輸出函數(shù)) 格式: putchar(c); 說明: c為參數(shù),為字符型或整型的常量、變量 或表達式。 作用: putchar( )函數(shù)的功能是向終端(顯示器) 輸出一個字符。 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-97 【例3-1】使用putchar函數(shù)輸出字符。 #include main() char x,y,z; x=B; y=Y; z=E; putchar(x); putchar(y); putchar(z); 結(jié)果:BYE 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-98 【例3-2】輸出控制字符的put

4、char( )函數(shù)。 #include main() char x,y,z; x=B; y=Y; z=E; putchar(x); putchar(n); putchar(y); putchar(n); putchar(z); 結(jié)果:B Y E 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-99 2、getchar( )函數(shù)(字符輸入函數(shù)) 格式:getchar( ); 說明:()內(nèi)無參數(shù) 作用:從鍵盤(或系統(tǒng)默認的輸入設(shè)備)輸入一個字符。 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-910 【例3-3】輸入/輸出單個字符。 #include main()

5、 char c; printf(input a charactern); c=getchar(); putchar(c); 3.3 輸入輸出函數(shù) 結(jié)果: input a character B B C 程程 序序 設(shè)設(shè) 計計 2021-7-911 注意: (1)getchar( )函數(shù)只能接受單個字符,輸入數(shù)字也按字符處 理。輸入多于一個字符時,只接收第一個字符。 【例3-4】輸入多個字符,輸出單個字符。 #include stdio.h main() int c; c=getchar(); printf(%c : %dn,c,c); 3.3 輸入輸出函數(shù) 結(jié)果: abc a : 97 C 程

6、程 序序 設(shè)設(shè) 計計 2021-7-912 (2)在TC屏幕下運行含【例3-4】程序時,將退出TC屏幕, 進入用戶屏幕等待用戶輸入。輸入完畢后再返回TC屏 幕。 (3)【例3-4】程序最后兩行可用下面兩行的任意一行代替: putchar(getchar(); 或 printf(%c,getchar(); 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-913 二、格式輸入與輸出 1printf函數(shù)( )(格式輸出函數(shù)) (1) printf( )函數(shù)調(diào)用的一般形式 printf(“格式控制字符串格式控制字符串”,輸出表列);,輸出表列); u作用:按用戶指定的格式,把指定的數(shù)據(jù)

7、顯示到顯 示器屏幕上。 u說明: 格式控制字符串用于指定輸出格式,由格式字符 串和普通字符串組成。 輸出表列中給出了各個輸出項,要求格式字符串 和各輸出項在數(shù)量和類型上應(yīng)該一一對應(yīng)。 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-914 【例3-5】格式控制字符串的使用。 main() int a=98,b=99; printf(%d %dn,a,b); printf(%d,%dn,a,b); printf(%c,%cn,a,b); printf(a=%d,b=%d,a,b); 結(jié)果: 98 99 98,99 b,c a=98,b=99 3.3 輸入輸出函數(shù) C 程程 序序

8、設(shè)設(shè) 計計 2021-7-915 (2) 格式字符串 在Turbo C中格式字符串的一般形式為: %標(biāo)志輸出最小寬度.精度長度類型 其中,方括號 中的項為可選項 作用:指定輸出項的數(shù)據(jù)類型和輸出的格式 各項的意義介紹如下: %:表示格式字符串的起始符號,不可缺少。 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-916 類型: 類型字符用以表示 輸出數(shù)據(jù)的類型, 其格式符和意義如 右表所示: 格 式 字 符意 義 d 以十進制形式輸出帶符號整數(shù)(正數(shù) 不輸出符號) o 以八進制形式輸出無符號整數(shù)(不輸 出前綴0) x,X 以十六進制形式輸出無符號整數(shù)(不 輸出前綴Ox) u以十

9、進制形式輸出無符號整數(shù) f以小數(shù)形式輸出單、雙精度實數(shù) e,E以指數(shù)形式輸出單、雙精度實數(shù) g,G 以%f或%e中較短的輸出寬度輸出單、 雙精度實數(shù) c輸出單個字符 s輸出字符串 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-917 標(biāo)志:標(biāo)志字符為-、+、#、空格4種,其意義如下表所示: 標(biāo) 志意 義 -結(jié)果左對齊,右邊填空格 +輸出符號(正號或負號) 空格輸出值為正時冠以空格,為負時冠以負號 # 對c,s,d,u類無影響;對o類,在輸出時加前綴o;對 x類,在輸出時加前綴0 x;對e, g, f類,當(dāng)結(jié)果有小 數(shù)時才給出小數(shù)點 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè)

10、計計 2021-7-918 輸出最小寬度:用十進制整數(shù)來表示輸出的最少位 數(shù)。若實際位數(shù)多于定義的寬度,則按實際位數(shù)輸 出,若實際位數(shù)少于定義的寬度則補以空格或0。 精度:精度格式符以“.”開頭,后跟十進制整數(shù)。 本項的意義是:如果輸出的是數(shù)字,則表示小數(shù)的 位數(shù);如果輸出的是字符,則表示輸出字符的個數(shù); 若實際位數(shù)大于所定義的精度數(shù),則截去超過的部 分。 長度:長度格式符為h,l兩種,h表示按短整型量輸 出,l表示按長整型量輸出。 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-919 main() int a=15; float b=123.1234567; double

11、c=12345678.1234567; char d=p; printf(a=%d,%5d,%o,%xn,a,a,a,a); printf(b=%f,%lf,%5.4lf,%en,b,b,b,b); printf(c=%lf,%f,%8.4lfn,c,c,c); printf(d=%c,%8cn,d,d); 結(jié)果: a=15, 15, 1 7, f b=123,123459,123.123459,123.1235,1.23123e +02 c=12345678. 123457,12345678.123457,12345678.1235 d=p, p 【例3-6】printf( )函數(shù)的格式輸出

12、。 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-920 main() int i=8; printf(%dn%dn%dn%dn%dn%dn,+i,-i,i+,i-,- i+,-i-); 結(jié)果: 8 7 7 8 -7 -8 【例3-7】printf( )函數(shù)求值的順序。 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-921 main() int i=8; printf(%dn,+i); printf(%dn,-i); printf(%dn,i+); printf(%dn,i-); printf(%dn,-i+); printf(%dn,-i-); 結(jié)果: 9

13、 8 8 9 -8 -9 【例3-8】判斷變量的變化。 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-922 #include stdio.h main() int i=-6,x=5; float y=123.456; printf(%d,%dn,i); printf(%-4d,%f,i,y,x); 結(jié)果: -6,2509 -6 ,123.456001 【例3-9】printf( )輸出參數(shù)不一致產(chǎn)生的錯誤。 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-923 2scanf( )函數(shù)(格式輸入函數(shù)) uscanf( )函數(shù)的一般形式: scanf(“格式控

14、制字符串”,地址表列); 作用: 從鍵盤向程序中的變量輸入一個或若干個任意類 型的數(shù)據(jù)。 二、格式輸入與輸出 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-924 格式字符串的一般形式為: %*輸入數(shù)據(jù)寬度輸入數(shù)據(jù)寬度長度長度類型類型 其中,有方括號 的項為任選項。 類型:表示輸入數(shù)據(jù)的類型,其格式符意義如下表所示。 (2) 格式字符串 格 式字 符 意 義 d輸入十進制整數(shù) o輸入八進制整數(shù) x輸入十六進制整數(shù) u輸入無符號十進制整數(shù) f或e輸入實型數(shù)(用小數(shù)形式或指數(shù)形式) c輸入單個字符 s輸入字符串 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-92

15、5 格式字符串的一般形式說明: “*”符:用以表示該輸入項,讀入后不賦予相應(yīng) 的變量,即跳過該輸入值。例如: scanf(%d %*d %d, 當(dāng)輸入為:1 2 3時,把1賦予a,2被跳過,3賦予 b。 寬度:用十進制整數(shù)指定輸入數(shù)據(jù)的寬度(即字符 數(shù))。 長度:長度格式符為l和h。l表示輸入長整型數(shù)據(jù) (如%ld)和雙精度浮點數(shù)(如%lf);h表示輸入 短整型數(shù)據(jù)。 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-926 使用scanf( )函數(shù)還必須注意以下幾點: scanf( )函數(shù)中沒有精度控制。例如: scanf(%5.2f, /* 是非法的 */ 不能企圖使用此語句

16、限制輸入的數(shù)據(jù)為2位小數(shù)的實數(shù)。 scanf( )中要求給出變量地址,若給出變量名,則會出錯。 例如: scanf(%d,a); 是不對的,應(yīng)改為scanf(“%d”,才是合法的。這是C語言 與其他高級語言不同之處。許多初學(xué)者常在此出錯。 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-927 使用scanf( )函數(shù)還必須注意以下幾點: 在輸入多個數(shù)值數(shù)據(jù)時,若格式控制串中沒有非格式 字符作為輸入數(shù)據(jù)之間的間隔,則可用空格、Tab鍵 或回車鍵作為間隔。C語言編譯系統(tǒng)在遇到空格、 Tab鍵、回車鍵或非法數(shù)據(jù)(如對“%d”輸入“12A” 時,A即為非法數(shù)據(jù))時,即認為該數(shù)據(jù)結(jié)束。

17、 在輸入字符數(shù)據(jù)時,若格式控制串中無非格式字符, 則認為所有輸入的字符均為有效字符。 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-928 main() char a,b; printf(input character a,bn); scanf(%c%c, printf(%c,%cn,a,b); 運行結(jié)果: M N M, 【例3-11】沒有空格的輸入。 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-929 main() char a,b; printf(input character a,bn); scanf(%c %c, printf(n%c%cn,a,b

18、); 運行結(jié)果: M N MN 【例3-12】有空格的輸入。 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-930 使用scanf( )函數(shù)還必須注意以下幾點: 如果格式控制串中有非格式字符,則輸入時也要輸入 該非格式字符。例如: scanf(“%d,%d,%d”, 其中用非格式符“,”作為間隔符,故輸入時應(yīng)為: 5,6,7 當(dāng)輸入的數(shù)據(jù)與輸出的類型不一致時,雖然編譯能夠 通過,但結(jié)果將不正確。 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-931 main() int a; printf(input a numbern); scanf(%d, printf

19、(%ld,a); 運行結(jié)果: 8 524296 【例3-13】類型不統(tǒng)一出現(xiàn)的問題。 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-932 main() int a; printf(input a numbern); scanf(%d, printf(%ld,a); 運行結(jié)果: 8 524296 【例3-13】類型不統(tǒng)一出現(xiàn)的問題。 由于輸入數(shù)據(jù)類型為整型,而輸出語句的格式串中說明 為長整型,因此輸出結(jié)果和輸入數(shù)據(jù)不符。 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-933 main() int a; printf(input a long integern

20、); scanf(%ld, printf(%ld,a); 程序運行結(jié)果如下: input a long integer 1234567890 1234567890 【例3-14】統(tǒng)一類型后的變化。 在輸入數(shù)據(jù)改為長整型后,輸入數(shù)據(jù)與輸出數(shù)據(jù)相等。 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-934 main() char a,b,c; printf(input character a,b,cn); scanf(%c %c %c, printf(%d,%d,%dn%c,%c,%cn,a,b,c,a-32,b-32,c-32); 程序運行結(jié)果如下: s j k 115,106,

21、107 S,J,K 【例3-15】輸入3個小寫字母,輸出大寫字母。 3.3 輸入輸出函數(shù) C 程程 序序 設(shè)設(shè) 計計 2021-7-935 main() int a; long b; float f; double d; char c; printf(nint:%dnlong:%dnfloat:%dndouble:%dnchar:%dn , sizeof(a),sizeof(b),sizeof(f),sizeof(d),sizeof(c); 運行結(jié)果: int:2 long:4 float:4 double:8 char:1 【例3-16】輸出各種數(shù)據(jù)類型的字節(jié)長度。 3.3 輸入輸出函數(shù) C

22、 程程 序序 設(shè)設(shè) 計計 2021-7-936 3.4 結(jié)構(gòu)化程序設(shè)計思想 一、 結(jié)構(gòu)化程序設(shè)計的方法 “模塊化”的設(shè)計方法。將一個復(fù)雜的任務(wù),分 解成若干個功能單一、相對獨立的小任務(wù)來進行設(shè) 計,每個小任務(wù)就是一個模塊。每個模塊都僅由3種 基本結(jié)構(gòu)組成。 程序的設(shè)計過程采用“自頂向下,逐步求精”。 程序的設(shè)計風(fēng)格要以良好的可讀性為目標(biāo),以 用戶為中心。 C 程程 序序 設(shè)設(shè) 計計 2021-7-937 二、程序設(shè)計的步驟 分析問題,確定數(shù)據(jù)結(jié)構(gòu)。 確定算法。 編寫程序。 調(diào)試運行程序。 建立文檔資料。 3.4 結(jié)構(gòu)化程序設(shè)計思想 C 程程 序序 設(shè)設(shè) 計計 2021-7-938 三、程序設(shè)計

23、的風(fēng)格 程序設(shè)計風(fēng)格是指一個程序員在程序設(shè)計過程 中所表現(xiàn)的特點、結(jié)構(gòu)、邏輯思路等習(xí)慣和技術(shù)的 總稱,包括:程序結(jié)構(gòu)形式、程序正文格式、行文 格式等。 3.4 結(jié)構(gòu)化程序設(shè)計思想 C 程程 序序 設(shè)設(shè) 計計 2021-7-939 四、結(jié)構(gòu)化程序設(shè)計的工具 算法 針對各種類型的問題,擬定出有效的解決方法和步 驟,是程序設(shè)計的核心。 程序流程圖 用來表示一個算法。 u傳統(tǒng)流程圖 u結(jié)構(gòu)化流程圖 3.4 結(jié)構(gòu)化程序設(shè)計思想 C 程程 序序 設(shè)設(shè) 計計 2021-7-940 3.4.5 結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu) 1.順序結(jié)構(gòu) 順序結(jié)構(gòu)就是一組逐條執(zhí)行的可執(zhí)行語句。 在順序結(jié)構(gòu)中,要求順序地執(zhí)行按先

24、后順序排列 的每一個最基本的處理單元。如先執(zhí)行處理A, 再執(zhí)行處理B 。 3.4 結(jié)構(gòu)化程序設(shè)計思想 C 程程 序序 設(shè)設(shè) 計計 2021-7-941 2. 選擇結(jié)構(gòu) 先對給定條件進行判斷,并根據(jù)判斷的結(jié)果執(zhí)行相應(yīng)命令 的結(jié)構(gòu)。 3.4 結(jié)構(gòu)化程序設(shè)計思想 C 程程 序序 設(shè)設(shè) 計計 2021-7-942 3、循環(huán)結(jié)構(gòu) (1)當(dāng)型循環(huán)。當(dāng)邏輯條 件成立時,就反復(fù)執(zhí)行處理 A(循環(huán)體),直到邏輯條 件不成立時結(jié)束。 (2)直到型循環(huán)。反復(fù)執(zhí)行處 理A(循環(huán)體),直到邏輯條件 不成立時結(jié)束 。 3.4 結(jié)構(gòu)化程序設(shè)計思想 C 程程 序序 設(shè)設(shè) 計計 2021-7-943 3.5 順序結(jié)構(gòu)程序設(shè)計舉例 【例3-18】任意從鍵盤輸入一個3位整數(shù),要求分離 出它的個位、十位和百位,并分別在屏幕上輸出。 問題分析: 本例要求設(shè)計一個從3位整數(shù)中分離出它的個 位、十位和百位的程序。例如,輸入的是456,則應(yīng) 輸出4、5、6。最低位數(shù)字可用對10求余的方法得到, 如456%10=6。百位數(shù)字可用對100整除的方法得到, 如456/100=4。中間的數(shù)字可通過將其變換為最高位 后用整除的方法得到,如(456-4*100)/10=5。 C 程程 序序 設(shè)設(shè) 計計 2021-7-944 具體程序如下:具

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論