《C語言程序設(shè)計(jì)教程》課件第3章 順序結(jié)構(gòu)程序設(shè)計(jì)_第1頁
《C語言程序設(shè)計(jì)教程》課件第3章 順序結(jié)構(gòu)程序設(shè)計(jì)_第2頁
《C語言程序設(shè)計(jì)教程》課件第3章 順序結(jié)構(gòu)程序設(shè)計(jì)_第3頁
《C語言程序設(shè)計(jì)教程》課件第3章 順序結(jié)構(gòu)程序設(shè)計(jì)_第4頁
《C語言程序設(shè)計(jì)教程》課件第3章 順序結(jié)構(gòu)程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第三章順序結(jié)構(gòu)程序設(shè)計(jì)2第三章

順序結(jié)構(gòu)程序設(shè)計(jì)教學(xué)目標(biāo):了解程序控制的三種結(jié)構(gòu)掌握賦值語句的使用熟悉格式輸入輸出函數(shù)的用法教學(xué)重點(diǎn)與難點(diǎn):掌握格式輸入輸出函數(shù)的用法33.1程序控制的三種基本結(jié)構(gòu)

C語言是結(jié)構(gòu)化程序設(shè)計(jì)語言,主要有:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)三種。3.1.1結(jié)構(gòu)化算法1.程序程序是由軟件開發(fā)人員根據(jù)用戶需求設(shè)計(jì)的、用程序設(shè)計(jì)語言描述的指示計(jì)算機(jī)執(zhí)行操作的一組指令序列。程序一般包括兩個(gè)方面:數(shù)據(jù)結(jié)構(gòu)(對(duì)數(shù)據(jù)的描述)和算法(對(duì)操作的描述)。其中,算法是程序設(shè)計(jì)的核心部分。43.1.1結(jié)構(gòu)化算法2.算法為解決一個(gè)特定的問題而采取的方法和步驟稱為算法??梢园涯硞€(gè)相對(duì)復(fù)雜的活動(dòng)分解成為若干個(gè)相對(duì)簡單的部分。3.算法的描述描述算法的方法有多種,常用的有自然語言、傳統(tǒng)流程圖、N-S結(jié)構(gòu)圖等。

(1)自然語言:人們?nèi)粘J褂玫恼Z言,通俗易懂,通常是指一種自然地隨文化演化的語言。

(2)傳統(tǒng)流程圖:傳統(tǒng)流程圖由一些圖形框和流程線組成,如圖3.1所示。5圖3.1傳統(tǒng)流程圖符號(hào)3.1.1結(jié)構(gòu)化算法6起止框:表示程序的開始或結(jié)束。輸入輸出框:表示輸入或輸出數(shù)據(jù)。判斷框:表示按照給定的條件進(jìn)行判斷,根據(jù)條件是否成立來決定后續(xù)操作。判斷框中寫出判斷條件,并引出兩條或多條流程線表示進(jìn)行不同的處理。處理框:表示基本處理操作。流程線:表示程序的執(zhí)行流向,用于連接各流程圖符號(hào)。3.1.1結(jié)構(gòu)化算法7【例3.1】用傳統(tǒng)流程圖描述輸入的數(shù)據(jù)是否大于0。3.1.1結(jié)構(gòu)化算法8(3)N-S結(jié)構(gòu)圖3.1.1結(jié)構(gòu)化算法91.順序結(jié)構(gòu)順序結(jié)構(gòu)是最簡單的程序結(jié)構(gòu),按照語句出現(xiàn)的先后順序由上向下依次執(zhí)行。如圖3.5所示,先執(zhí)行語句塊A,再執(zhí)行語句塊B。

3.1.2程序的三種基本結(jié)構(gòu)102.選擇結(jié)構(gòu)選擇結(jié)構(gòu)又稱為分支結(jié)構(gòu),即根據(jù)給定的條件選擇執(zhí)行其中一個(gè)分支。選擇結(jié)構(gòu)有三種,單分支、雙分支和多分支結(jié)構(gòu),如圖3.6、圖3.7、圖3.8所示

3.1.2程序的三種基本結(jié)構(gòu)11圖3.8多分支選擇結(jié)構(gòu)

3.1.2程序的三種基本結(jié)構(gòu)123.循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)是根據(jù)條件來決定循環(huán)體是否反復(fù)執(zhí)行。按照循環(huán)控制條件出現(xiàn)的位置,可分為當(dāng)型循環(huán)和直到型循環(huán)兩種循環(huán)結(jié)構(gòu)。

當(dāng)型循環(huán):首先判斷條件,當(dāng)條件表達(dá)式為真時(shí),反復(fù)執(zhí)行循環(huán)語句,直到條件為假時(shí)終止循環(huán),如圖3.9所示。

直到型循環(huán):先執(zhí)行循環(huán)語句,然后再判斷條件是否成立。如果條件表達(dá)式為真,則繼續(xù)執(zhí)行循環(huán)語句,直到條件為假時(shí),跳出循環(huán),如圖3.10所示。

3.1.2程序的三種基本結(jié)構(gòu)133.1.2程序的三種基本結(jié)構(gòu)143.2賦值語句順序結(jié)構(gòu)中常見的是賦值語句,由賦值表達(dá)式加分號(hào)構(gòu)成。其一般形式為:

變量=表達(dá)式;例如:a=8;/*將變量a賦值為8*/c=a+b;/*將表達(dá)式a+b的值賦給變量c*/15注意:賦值語句左側(cè)只能是變量,右側(cè)的表達(dá)式可以是常量、變量、數(shù)組元素、函數(shù)或其他表達(dá)式。(2)賦值號(hào)“=”與關(guān)系運(yùn)算符“==”是有區(qū)別的,后者用于判斷運(yùn)算符左右兩邊是否相等。(3)賦值運(yùn)算符“=”右邊的表達(dá)式可以是其他表達(dá)式,從而構(gòu)成嵌套形式,即:變量=(變量=表達(dá)式);(4)賦值語句允許連續(xù)賦值,而在變量聲明中,不允許連續(xù)給多個(gè)變量賦初值。3.2賦值語句163.3格式輸入輸出函數(shù)

C語言本身并不提供輸入輸出語句,輸入輸出是由函數(shù)實(shí)現(xiàn)的。在C標(biāo)準(zhǔn)函數(shù)庫中常用的輸入輸出函數(shù)有:printf()、scanf()、putchar()和getchar()等。在使用C語言庫函數(shù)時(shí),要用“#include”命令將有關(guān)的“頭文件”包括到用戶源文件中,這些頭文件包含了程序中調(diào)用函數(shù)的有關(guān)信息。因此,在調(diào)用輸入輸出庫函數(shù)時(shí),文件開頭應(yīng)包含以下命令:#include<stdio.h>或#include“stdio.h”17常用的頭文件及功能說明如表3.1所示3.3格式輸入輸出函數(shù)頭文件功能說明stdio.h標(biāo)準(zhǔn)輸入輸出函數(shù)math.h數(shù)學(xué)函數(shù)ctype.h字符處理函數(shù)string.h字符串處理函數(shù)conio.h屏幕處理函數(shù)time.h日期與時(shí)間函數(shù)stdlib.h動(dòng)態(tài)存儲(chǔ)分配函數(shù)18格式化輸出函數(shù)printf()的功能是按照指定的格式向計(jì)算機(jī)的終端(一般是顯示器)輸出若干任意類型的數(shù)據(jù)。語法格式為:printf("格式控制字符串",輸出列表);例如:printf(“Howareyou?”); printf("%d",a);1.格式控制字符串格式控制字符串是由雙引號(hào)括起來的字符串,用于指定輸出的格式。它由格式轉(zhuǎn)換說明符、控制字符和普通字符組成。3.3.1格式輸出函數(shù)printf()19

(1)格式轉(zhuǎn)換說明符

格式轉(zhuǎn)換說明符是以“%”開頭,在“%”后面跟有各種格式字符,以說明輸出數(shù)據(jù)的類型、形式、長度和小數(shù)位數(shù)等。常用的printf函數(shù)的格式說明符如表3.2所示。

3.3.1格式輸出函數(shù)printf()格式符功能說明%d,%i以帶符號(hào)的十進(jìn)制形式輸出整數(shù)%u以無符號(hào)的十進(jìn)制形式輸出整數(shù)%o以無符號(hào)的八進(jìn)制形式輸出整數(shù)%x,%X以無符號(hào)的十六進(jìn)制形式輸出整數(shù)%c輸出一個(gè)字符%s輸出字符串%f輸出小數(shù)形式的實(shí)數(shù),默認(rèn)為6位小數(shù)%e,%E輸出指數(shù)形式的實(shí)數(shù)20另外,在格式轉(zhuǎn)換說明符中,還可在“%”符號(hào)與格式字符間插入附加格式說明符,如表3.3所示。3.3.1格式輸出函數(shù)printf()附加字符功能說明l用于長整型,可加在格式符d、o、x、u的前面m(代表一個(gè)正整數(shù))數(shù)據(jù)最小寬度,若數(shù)據(jù)實(shí)際寬度大于m,則按實(shí)際寬度輸出;若實(shí)際寬度小于m,則在前面補(bǔ)0或空格.n(代表一個(gè)正整數(shù))若為實(shí)數(shù),則表示輸出n位小數(shù);若為字符串,則表示從左截取的字符個(gè)數(shù)+輸出的數(shù)字前帶有正負(fù)號(hào)-輸出的數(shù)據(jù)左對(duì)齊,默認(rèn)為右對(duì)齊21

(2)控制字符控制字符即轉(zhuǎn)義字符,用于控制鍵盤上的動(dòng)作。以反斜杠“\”開頭,后面跟一個(gè)或多個(gè)字符,如回車換行符“\n”等

(3)普通字符普通字符是需要照原樣輸出的字符,一般用來描述輸出結(jié)果。其中包括雙引號(hào)內(nèi)的逗號(hào),等號(hào)、空格、普通字母、漢字等。3.3.1格式輸出函數(shù)printf()222.輸出列表輸出列表中列出的是需要輸出的數(shù)據(jù)項(xiàng),各數(shù)據(jù)項(xiàng)之間以“,”分隔,可以是變量、常量或表達(dá)式。3.使用printf函數(shù)的幾點(diǎn)說明(1)輸出列表中的各個(gè)輸出項(xiàng)要求和格式轉(zhuǎn)換說明符在數(shù)量、順序和類型上保持一一對(duì)應(yīng)和匹配。(2)當(dāng)多個(gè)輸出項(xiàng)為表達(dá)式時(shí),一般先按從右到左的順序計(jì)算各表達(dá)式的值,然后再按從左到右的順序輸出結(jié)果。(3)格式轉(zhuǎn)換說明符與輸出列表中參數(shù)不一致時(shí)可能產(chǎn)生錯(cuò)誤。3.3.1格式輸出函數(shù)printf()23【例3.3】printf()函數(shù)的簡單應(yīng)用。程序如下:#include<stdio.h>main(){inta=97,b=98;printf("%d,%d\n",a,b);/*以十進(jìn)制形式輸出a,b*/printf("%c,%c\n",a,b);/*以字符形式輸出a,b*/printf("a=%d,b=%d\n",a,b);}程序運(yùn)行結(jié)果:97,98a,ba=97,b=98

3.3.1格式輸出函數(shù)printf()24【例3.4】使用printf()函數(shù)輸出數(shù)值型數(shù)據(jù)。程序如下:#include<stdio.h>main(){inta=10,b=256,c=1024;floate=1234.567;

printf("%d,%d,%d\n",a,b,c);printf("%6d,%6d,%6d\n",a,b,c);/*數(shù)據(jù)的最小寬度為6*/printf("%o,%o,%o\n",a,b,c);/*以八進(jìn)制形式輸出a,b*/printf("%f,%8.2f,%-8.2f\n",e,e,e);}程序運(yùn)行結(jié)果:10,256,1024ㄩㄩㄩㄩ10,ㄩㄩㄩ256,ㄩㄩ102412,400,20001234.567017,ㄩ1234.57,1234.573.3.1格式輸出函數(shù)printf()25格式輸入函數(shù)scanf()的功能是按照指定的格式從鍵盤上輸入任意類型的數(shù)據(jù)。其語法的一般格式為:

scanf("格式控制字符串",地址列表);例如:scanf("%d,%d,%d",&a,&b,&c);

1.格式控制字符串格式控制字符串與printf函數(shù)中的“格式控制字符串”作用相同,也是由雙引號(hào)括起來,以“%”字符開始,以一個(gè)格式字符結(jié)束,中間可以插入附加說明字符。常用的scanf函數(shù)的格式說明符如表3.4所示。3.3.2格式輸入函數(shù)scanf()26格式符功能說明%d,%i以帶符號(hào)的十進(jìn)制形式輸入整數(shù)%u以無符號(hào)的十進(jìn)制形式輸入整數(shù)%o以無符號(hào)的八進(jìn)制形式輸入整數(shù)%x,%X以無符號(hào)的十六進(jìn)制形式輸入整數(shù)%c輸入一個(gè)字符%s輸入字符串%f輸入小數(shù)形式的實(shí)數(shù)%e,%E輸入指數(shù)形式的實(shí)數(shù)3.3.2格式輸入函數(shù)scanf()27同樣,還可在“%”符號(hào)與格式字符間插入附加格式說明符,如表3.5所示。3.3.2格式輸入函數(shù)scanf()附加字符功能說明L或l輸入長整型,可加在格式符d、o、x、u的前面;輸入double型,可加在格式符f或e的前面h輸入短整型,可加在格式符d、o、x、i的前面m表示輸入數(shù)據(jù)所占寬度(實(shí)型數(shù)據(jù)除外)*表示指定的輸入項(xiàng)在讀入后不賦值給相應(yīng)的變量282.地址列表地址列表中的地址是由地址運(yùn)算符“&”后跟變量名組成的,變量地址之間以逗號(hào)“,”分隔。用戶不必關(guān)心具體的地址是多少,直接使用即可。例如:scanf("%d,%d,%d",&a,&b,&c);3.使用scanf()函數(shù)時(shí)應(yīng)注意以下幾點(diǎn):(1)scanf函數(shù)地址列表中必須給出變量的地址,如果給出變量名則出錯(cuò)。例如:scanf("%d,%d",a,b);是非法的。應(yīng)改為:scanf("%d,%d",&a,&b);只有數(shù)組例外,具體見第六章數(shù)組。3.3.2格式輸入函數(shù)scanf()29(2)對(duì)于實(shí)型數(shù)據(jù),使用scanf函數(shù)輸入時(shí)不能控制其精度。例如:scanf("%10.2f",&a);是非法的。

(3)如果“格式控制字符串”中有非格式字符,則輸入數(shù)據(jù)時(shí)也要在對(duì)應(yīng)的位置輸入該非格式字符。例如:scanf("%d,%d,%d",&a,&b,&c);其中使用了非格式字符“,”,因此輸入時(shí)應(yīng)為:1,2,3↙又如:scanf("a=%d,b=%d",&a,&b);輸入時(shí)應(yīng)為:a=8,b=9↙3.3.2格式輸入函數(shù)scanf()30

(4)如果“格式控制字符串”中沒有非格式字符,則認(rèn)為輸入的字符均為有效字符,包括空格和轉(zhuǎn)義字符。例如:scanf("%c%c%c",&a,&b,&c);如果輸入“aㄩbㄩc↙”,則表示把字符‘a(chǎn)’賦給a,空格‘ㄩ’賦給b,字符‘b’賦給c。只有當(dāng)輸入為“abc”時(shí),才能將字符‘a(chǎn)’賦給a,‘b’‘賦給b,‘c’賦給c。(5)輸入多個(gè)數(shù)值型數(shù)據(jù)時(shí),若“格式控制字符串”中沒有非格式字符間隔,則可使用空格鍵、Tab鍵或Enter鍵間隔。C編譯系統(tǒng)在遇到空格鍵、Tab鍵、Enter鍵或非法數(shù)據(jù)(若使用“%d”對(duì)應(yīng)輸入“8C”時(shí),C為非法數(shù)據(jù))時(shí)則認(rèn)為該數(shù)據(jù)輸入結(jié)束。(6)若在格式控制符中出現(xiàn)“%*”,scanf函數(shù)讀入對(duì)應(yīng)的值后不賦給相應(yīng)的變量,即跳過該輸入值。3.3.2格式輸入函數(shù)scanf()313.4字符輸入輸出函數(shù)字符輸出函數(shù)putchar()的功能是向計(jì)算機(jī)的終端(一般是顯示器)輸出一個(gè)字符。其語法的一般格式為:putchar(c);其中,c可以是字符常量或字符變量。例如:putchar('A');/*輸出大寫字母A*/putchar(97);/*輸出小寫字母a,即ASCII碼為97對(duì)應(yīng)的字符*/32【例3.6】putchar()函數(shù)的應(yīng)用。程序如下:#include<stdio.h>main(){charx,y,z;intt;x='A';y='B';z='C';t=97;

程序運(yùn)行結(jié)果:ABCaA3.4.1字符輸出函數(shù)putchar()putchar(x);putchar(y);putchar(z);putchar('\n');putchar(t);putchar(t-32);}33字符輸入函數(shù)getchar()的功能是從鍵盤上輸入一個(gè)字符。其語法的一般格式為:

getchar();例如:charch;ch=getchar();/*將輸入的字符賦值給字符變量*/getchar()函數(shù)也可與putchar()函數(shù)一起使用,又如:putchar(getchar());/*輸出從鍵盤上輸入的一個(gè)字符*/3.4.2字符輸入函數(shù)getchar()34【例3.7】getchar()函數(shù)的應(yīng)用。程序如下:#include<stdio.h>main(){charch1,ch2;ch1=getchar();ch2=getchar();putchar(ch1);putchar(ch2);}

程序運(yùn)行結(jié)果:AB↙AB3.4.2字符輸入函數(shù)getchar()353.5程序綜合實(shí)例【例3.8】從鍵盤上輸入某名學(xué)生三門課(語文、數(shù)學(xué)、外語)考試成績,計(jì)算出該學(xué)生總成績和平均成績(保留2位小數(shù))。程序如下:#include<stdio.h>main(){floata,b,c,sum,average;printf("請(qǐng)輸入該名學(xué)生語文、數(shù)學(xué)和外語成績:\n");scanf("%f,%f,%f",&a,&b,&c);sum=a+b+c;average=sum/3;printf("總成績:%5.2f,平均成績:%5.2f\n",sum,average);}

程序運(yùn)行結(jié)果:請(qǐng)輸入該名學(xué)生語文、數(shù)學(xué)和外語成績:85.5,97.

溫馨提示

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