C語(yǔ)言程序的流程控制_第1頁(yè)
C語(yǔ)言程序的流程控制_第2頁(yè)
C語(yǔ)言程序的流程控制_第3頁(yè)
C語(yǔ)言程序的流程控制_第4頁(yè)
C語(yǔ)言程序的流程控制_第5頁(yè)
已閱讀5頁(yè),還剩12頁(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)介

第3C語(yǔ)言程序的流程控制對(duì)于那些復(fù)法(如用程序流程圖)本章將具體介紹進(jìn)行程序設(shè)計(jì)時(shí)使用的基本方C程序的流程控制。3.1程序設(shè)計(jì)的基本知識(shí)3.1.1程序流程圖在描述一個(gè)程序的基本結(jié)構(gòu)思想時(shí)有很多種方法,其中程序流程圖是最常用也是最基本的方法。1. 傳統(tǒng)程序流程圖傳統(tǒng)流程圖表示法的特點(diǎn)是用一些圖框線表示這些操作ANSI規(guī)國(guó)普遍采用。我國(guó)也有自己的國(guó)家標(biāo)準(zhǔn)GB1526-89與該標(biāo)準(zhǔn)基本相同,本書(shū)就參照ANSI圖所示。起止框 輸入輸出框 判斷框 處理框或 流程線 連接點(diǎn) 注釋框圖傳統(tǒng)流程圖表示法下面對(duì)其中一些主要符號(hào)作簡(jiǎn)要說(shuō)明:(1)起止框是用來(lái)標(biāo)識(shí)程序的開(kāi)始和結(jié)束位置的。規(guī)定流程圖以起止框開(kāi)始,以起止框結(jié)束。(2)輸入輸出框也叫數(shù)據(jù)框,其中可以注明數(shù)據(jù)名稱、來(lái)源、用途或其它的文字說(shuō)明。(3)菱形框的作用是對(duì)一個(gè)給定的條件進(jìn)行判斷,根據(jù)給定的條件是否成立來(lái)決定如何執(zhí)行其后的操作。(4)處理框用矩形表示各種處理功或其簡(jiǎn)要功能。(5)流程線用帶箭頭的直線表示程序的執(zhí)行順序。當(dāng)流程自左向右或自上向下時(shí)流程線可以不帶箭頭,其它情況應(yīng)加箭頭表示流程。(6)常用在圖形畫(huà)不下而需要分開(kāi)畫(huà)時(shí)。①①(7)更好的理解流程圖的作用。2. N-S流程圖靈活的流程線在程序設(shè)計(jì)中有它自己的優(yōu)點(diǎn),但也隱藏著許多導(dǎo)致錯(cuò)誤的禍根。因?yàn)樗试S用流程線使流程任意轉(zhuǎn)移,這對(duì)程序設(shè)計(jì)是一個(gè)隱患,它使程序流程看起來(lái)很年美國(guó)學(xué)者INassi和BShneiderman提出了一種N-S圖它的基本表示方法是用一個(gè)矩形框,把整個(gè)3.1.2程序的三種基本結(jié)構(gòu)結(jié)構(gòu)化的程序設(shè)計(jì)方法是面向過(guò)程的程1996Bobra和Jacopini提出了三種基本程序結(jié)構(gòu)。已經(jīng)證1.順序結(jié)構(gòu)語(yǔ)句組1

(傳統(tǒng)流程圖表示語(yǔ)句組1 (N-S流程圖表示圖順序結(jié)構(gòu)流程圖語(yǔ)句組2

2. 語(yǔ)句2結(jié)構(gòu)成立條件P

不成立

條件P真 假(傳統(tǒng)流程圖表示)

(N-S流程圖表示)圖選擇結(jié)構(gòu)流句組1 語(yǔ)句組23. 循環(huán)結(jié)構(gòu)語(yǔ)句組1 語(yǔ)句組2while循環(huán)結(jié)構(gòu)條件P不成立 成立

當(dāng)條件P成立語(yǔ)句組(傳統(tǒng)流程圖表示) (N-S流程圖表示圖當(dāng)型循環(huán)結(jié)構(gòu)流程圖o…while語(yǔ)句組直到條件語(yǔ)句組直到條件P成立語(yǔ)句組條件P成立語(yǔ)句組條件P成立立傳統(tǒng)流程圖表示)圖直到型流程圖例畫(huà)出求s=1+2+3+…+100的傳統(tǒng)流程圖和N-S流程圖。開(kāi)始3.2

i1;s

言的基本語(yǔ)句

i=1;s=0;i<=100

s=s+i;3.2.1表達(dá)式語(yǔ)句s=s+i;i=i+1;

s

i=i+1;C語(yǔ)言是一種表達(dá)式語(yǔ)言,所有的操作運(yùn)算都00

過(guò)表達(dá)式來(lái)實(shí)現(xiàn)的。由表達(dá)式組成立語(yǔ)句稱為表達(dá)式語(yǔ)句,它是由一個(gè)表達(dá)式后接s

分號(hào)組成。這里要特別強(qiáng)調(diào),沒(méi)賦值語(yǔ)句賦值語(yǔ)句由賦值表達(dá)式加一個(gè)分號(hào)組成。例如:i=1;2. 函數(shù)調(diào)用語(yǔ)句函數(shù)調(diào)用語(yǔ)句由函數(shù)調(diào)用表達(dá)式后跟一個(gè)分號(hào)組成。例如:strcpy(s1,"student",4);printf("goodafternoon\n");3. 空語(yǔ)句空語(yǔ)句是只有一個(gè)分號(hào)而沒(méi)有其他表達(dá)式的語(yǔ)句。例如:;它不產(chǎn)生任何操作運(yùn)算,只作為形式上的語(yǔ)句,被填充在控制結(jié)構(gòu)之中。3.2.2復(fù)合語(yǔ)句C語(yǔ)言還允許把一組語(yǔ)句放在一對(duì)花括號(hào)要特別強(qiáng)調(diào)一點(diǎn),一例如:{c=getchar();b=b+c;putchar();}3.2.3流程控制語(yǔ)句選擇型結(jié)構(gòu)語(yǔ)句循環(huán)控制結(jié)構(gòu)語(yǔ)句流程轉(zhuǎn)向語(yǔ)句……3.3選擇結(jié)構(gòu)程序設(shè)計(jì)在C語(yǔ)言中實(shí)現(xiàn)選擇結(jié)構(gòu)的語(yǔ)句有兩大類:if語(yǔ)句和switch語(yǔ)句。3.3.1if語(yǔ)句if語(yǔ)句格式:if(表達(dá)式)語(yǔ)句;功能:如果表達(dá)式的值為真,則執(zhí)行其后的語(yǔ)句,否則不執(zhí)行該語(yǔ)句。其N-S流程圖如圖表示。表達(dá)式真if圖ifelse格式:if(表達(dá)式)1;else語(yǔ)句2;功能:如果表達(dá)式值為真,則執(zhí)行語(yǔ)句12表達(dá)式真 假ife2句流程圖例從鍵盤輸入任意一整數(shù),求其絕對(duì)值并輸出。#include<>{int x;printf("pleaseenteranumber:");scanf("%d",&x);if(x<0)x=-x;elsex=x;printf("numberabsisd%",x);}ififif語(yǔ)句時(shí),if以表示如下:if(表達(dá)式)if 語(yǔ)句else elseif 3;else 4;if一條復(fù)合語(yǔ)句,才能被完全執(zhí)行。例如:if(a>b){a++;b++;}else{a=10;b=100;}3.3.2switch語(yǔ)句switch且,其執(zhí)行效率要比同樣功能的階梯式if…elseif…else語(yǔ)句要高的多。1.switch語(yǔ)句的一般形式switch語(yǔ)句的一般形式如下:switch(表達(dá)式){case1:case2:··case常量表達(dá)式n:語(yǔ)句組default :語(yǔ)句組n+1;}2.switch語(yǔ)句的執(zhí)行過(guò)程系統(tǒng)首先計(jì)算“表達(dá)式”的值,并逐個(gè)switch結(jié)構(gòu)中后面的各語(yǔ)句。如果沒(méi)有任何一個(gè)casedefault(組例switch語(yǔ)句實(shí)現(xiàn)例3.4的功能。#include<>main(){int score;printf("pleaseinputscore(0-100):");scanf("%d",&score); /*生成績(jī)*/switch(score/10);{case10:case9:printf("excellent\n");break;case8:printf("good\n");break;case7:printf("medium\n");break;case6:printf("pass\n");break;default:printf("fail\n");}}3.4循環(huán)結(jié)構(gòu)程序設(shè)計(jì)C語(yǔ)言提供了循環(huán)控制的三種語(yǔ)句:while語(yǔ)句、do…whilefor語(yǔ)句。3.4.1while語(yǔ)句while制結(jié)構(gòu)如下:while(條件表達(dá)式循環(huán)體例計(jì)算并輸出從1加到100的和:s=1+2+3+┅100。#include<>main(){intsum=0,i=1;/*設(shè)置和與循環(huán)變量*/while(i<=100){sum=sum+i;i++;}printf("Sum=%d",sum);}程序執(zhí)行結(jié)果如下:Thesumof1to100equalsis:50503.4.2 do…whiledo…whileC到型”循環(huán)。其一般形式為:do循環(huán)體while(條件表達(dá)式例do…while1+2+3+…+100和。#include<>main(){inti=1,sum=0;do{sum=sum+i;i++;}while(i<=100);printf("sum=%d",sum);}3.4.3for循環(huán)語(yǔ)句for既可以用于未知的情況。for語(yǔ)句的一般形式如下:for(1;2;循環(huán)體如圖所示,for語(yǔ)句的執(zhí)行流程是:求解表達(dá)式1圖for語(yǔ)句的執(zhí)行流程例se表達(dá)式2

的所有因子。求一個(gè)整數(shù)ne1~n(

有因子可以采用窮舉nn的因子。由分析可知,這是求解表達(dá)式3for語(yǔ)句。#include<>main(){int n,k;printf("Pleaseinputapositiveinteger:");scanf("%d",&n);printf("Number%dFactors:",n);for(k=1;k<=n;k++)if(n%k==0)printf(" printf("\n");}程序某次的運(yùn)行結(jié)果如下:Pleaseinputapositiveinteger:36↙Number36Factors:1 2 3 4 6 12 18 363.4.4循環(huán)嵌套一個(gè)循環(huán)體內(nèi)又可以包含另外一個(gè)完整的循環(huán)結(jié)構(gòu),從而構(gòu)成多重循環(huán)結(jié)構(gòu),這就是循環(huán)的嵌套。3.4.5continuebreak語(yǔ)句1.continue語(yǔ)句continue語(yǔ)句可以出現(xiàn)在循環(huán)體中,其作用是結(jié)束本次循環(huán)它跳過(guò)循環(huán)體中下面尚未執(zhí)行的語(yǔ)句,直接進(jìn)行下一次是否執(zhí)行循環(huán)的判定。60~6009整除的數(shù)。#include<>main(){intm;for(m=60;m<=600;m++){if(m%9==0)continue;printf("%d\n",m);}}9continue語(yǔ)句結(jié)束本次循環(huán)(其后的輸出語(yǔ)句不執(zhí)行循環(huán)結(jié)構(gòu),接著對(duì)下一個(gè)數(shù)進(jìn)行判斷。2. break語(yǔ)句breakswitch結(jié)構(gòu)或循環(huán)結(jié)構(gòu),而不能用于其他結(jié)構(gòu)。但用在循環(huán)結(jié)(或終止它所在的循環(huán)而不能同時(shí)跳出(或終止)多層循環(huán)。本章小結(jié)從程序執(zhí)行的流程來(lái)看,程序可分為三手系統(tǒng)的介紹了這三種基本結(jié)構(gòu)。程序中執(zhí)行部分最基本的單位是語(yǔ)句。本章主要介紹了以下三種類型的語(yǔ)句:表達(dá)式語(yǔ)句,任何表達(dá)式末尾加語(yǔ)句為賦值語(yǔ)句。

溫馨提示

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