C語言程序設計(第三版)課件:學生成績統計分析-循環結構程序設計_第1頁
C語言程序設計(第三版)課件:學生成績統計分析-循環結構程序設計_第2頁
C語言程序設計(第三版)課件:學生成績統計分析-循環結構程序設計_第3頁
C語言程序設計(第三版)課件:學生成績統計分析-循環結構程序設計_第4頁
C語言程序設計(第三版)課件:學生成績統計分析-循環結構程序設計_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

知識目標:

掌握C語言的基本循環結構;深刻理解goto語句和if語句構成的循環、while語句、do-while語句、和for語句之間的區別及使用方法;理解各種循環之間的相同點和不同點。能力目標:能正確設計“學生成績管理系統”中學生成績的統計和循環結構程序的設計。學生成績統計分析-循環結構程序設計工作任務任務1

學生成績統計分析——總分、平均分的計算

循環結構是程序中一種很重要的結構,其特點是在判定條件成立時,反復執行某程序段,直到條件成立為止。所給的判定條件稱為循環條件,反復執行的程序段稱為循環體。它主要處理如學校學生成績,求若干個數的和,求一個數的階乘等等。C語言提供了多種循環語句以實現各種不同形式的循環結構。循環語句有goto語句和if語句構成的循環、while語句、do-while語句和for語句。并且各個語句之間還可以進行嵌套使用。“學生成績管理系統”中我們需要給學生的成績進計算,其中將用到循環語句。但是在對各種信息進行處理時,將有多種循環結構供我們選擇,那么我們要根據實際情況選擇適合的循環結構任務2

用循環語句實現項目主菜單的選擇執行設計任務目標:能設計“班級學生成績管理系統”中所涉及到的多種循環結構。

學生成績管理系統中有很多程序的語句是從上至下地被執行的。程序的控制結構在本系統中占有很大一部分,因此如何在本系統中采用合適的邏輯控制結構,選擇合適的循環結構,是設計的重點。1.1任務情境

“班級學生成績管理系統”中該項目實現如果輸入0~3之間的整型數字,將在屏幕上顯示學生的總成績和平均成績。具體如圖5-1所示。本任務的主要內容是對總分和平均分的計算,那么用什么方法才是得當,簡便又利于計算呢,這是本次任務需要掌握的要點。分數的計算是有規律、需要重復執行某些操作的。因此利用循環語句是最好的選擇。1.2知識必備

循環結構是程序中一種很重要的結構。其特點是,在給定條件成立時,反復執行某程序段,直到條件不成立為止。給定的條件稱為循環條件,反復執行的程序段稱為循環體。C語言提供了多種循環語句,可以組成各種不同形式的循環結構。用goto語句和if語句構成循環;

goto語句以及用goto語句構成循環

goto語句是一種無條件轉移語句,與BASIC中的goto語句相似。goto語句的使用格式為:goto語句標號;其中標號是一個有效的標識符,這個標識符加上一個“:”一起出現在函數內某處,執行goto語句后,程序將跳轉到該標號處并執行其后的語句。另外標號必須與goto語句同處于一個函數中,但可以不在一個循環層中。通常goto語句與if條件語句連用,當滿足某一條件時,程序跳到標號處運行。

goto語句通常不用,主要因為它將使程序層次不清,且不易讀,但在多層嵌套退出時,用goto語句則比較合理。1.2.1用goto語句和if語句構成循環,求

for語句在C語言中,for語句使用最為靈活,它完全可以取代while語句。它的一般形式為:for(表達式1;表達式2;表達式3)語句它的執行過程如下:先求解表達式1。求解表達式2,若其值為真(非0),則執行for語句中指定的內嵌語句,然后執行下面第3)步;若其值為假(0),則結束循環,轉到第5)步。求解表達式3。轉回上面第2)步繼續執行。循環結束,執行for語句下面的一個語句。1.2.2嵌套for循環求九九乘法表1.3任務實施

通過相關理論學習后,我們可以對“學生成績管理系統”中學生課程的總分和平均分進行計算。并將現實中的數據處理成C語言能夠理解的數據。接下來我們來看一個系統執行的流程圖1.4知識擴展

1、break語句

break語句通常用在循環語句和開關語句中。當break用于開關語句switch中時,可使程序跳出switch而執行switch以后的語句;如果沒有break語句,則將成為一個死循環而無法退出。break在switch中的用法已在前面介紹開關語句時的例子中碰到,這里不再舉例。當break語句用于do-while、for、while循環語句中時,可使程序終止循環而執行循環后面的語句,通常break語句總是與if語句聯在一起。即滿足條件時便跳出循環。

2、continue語句

continue語句的作用是跳過循環本中剩余的語句而強行執行下一次循環。continue語句只用在for、while、do-while等循環體中,常與if條件語句一起使用,用來加速循環。其執行過程可用下圖表示。

while(表達式1){……if(表達式2)break;……}while(表達式1){……if(表達式2)continue;……}2.1任務情境

本任務主要是實現項目主菜單的選擇執行,在這里需利用多重循環即多重循環結構,也稱循環嵌套層,是指一個循環結構的內部又包含另一個完整的循環結構。這節重點掌握循環語句的執行過程,內外循環語句的位置安排等。循環控制結構(又稱重復結構)是程序中的另一個基本結構。在實際問題中,常常需要進行大量的重復處理,循環結構可以使我們只寫很少的語句,而讓計算機反復執行,從而完成大量類同的計算。“班級學生成績管理系統”中該項目實現如果輸入0~6之間的整型數字,將在屏幕上打印一句話或顯示相應的子菜單,可用多種循環語句實現。

2.2知識必備

除了上一任務中講的for循環和goto循環外還有另外兩種循環.例如:while語句當我們確定循環重復執行的次數時,會使用for循環。但是對于有些問題,無法事先知道循環該執行多少次才夠,此時,就可以考慮使用while循環及dowhile循環。

while語句的一般形式為:

while(表達式)語句其中表達式是循環條件,語句為循環體。

while語句的語義是:計算表達式的值,當值為真(非0)時,執行循環體語句。2.2.1用while語句求

注:使用while語句應注意以下幾點:while語句中的表達式一般是關系表達或邏輯表達式,只要表達式的值為真(非0)即可繼續循環。循環體如包括有一個以上的語句,則必須用{}括起來,組成復合語句。do-while語句do-while語句的一般形式為:do

語句

while(表達式);這個循環與while循環的不同在于:它先執行循環中的語句,然后再判斷表達式是否為真,如果為真則繼續循環;如果為假,則終止循環。因此,do-while循環至少要執行一次循環語句。

2.2.2用do-while語句求

2.3任務實施

由于實現循環選擇執行項目菜單是一種比較復雜結構,為了便于學習,我們首先用三種方法實現主菜單的循環選擇執行,即主菜單實現循環選擇,而子菜單暫時不實現循環選擇。1.用for循環實現已知循環次數的循環。該循環規定了循環執行的次數,當循環達到規定的次數后將會退出循環。學習者不要理解成for循環只能實現已知循環次數的循環,實際上for循環也能夠實現未知循環次數的循環。2.用while循環實現未知循環次數的循環。該循環只有輸入了0才會退出循環,但不能顯示“退出程序!”,即當輸入0后,循環再不執行,從而退出循環。3.用do~while循環實現未知次數的循環

該循環只有輸入0后循環才會結束,但可以顯示“退出程序!”,當輸入0后循環還是執行了最后一次

2.4知識擴展

一、while與do----while嵌套循環1、do----while嵌套循環do----while循環先執行,然后再判斷while后面的條件是不是成立do{do{...}while(...);}while(...);上面的語句相當與先執行一次外層do然后接著執行內曾的do-while循環體,當執行然內層的循環體之后,判斷外層的while條件2、while嵌套循環While(…)循環先判斷while后面的條件是不是成立{ While(…)如果外面的條件成立此時判斷這個while后面的條件是否成立.{};};上面的語句相當與先執行一次外層while然后接著執行判斷內曾的while后面的條件,如果為真執行內層的循環體.2.5任務小結

通過本章的學習,要求能夠掌握while,do---while循環及while,do--while的嵌套循環結構。本次任務和上一任務均講述不同在循環結構。那么這幾種循環結構又有什么相同點和不同點呢?下面我們就來對幾種循環做詳細在比較。四種循環都可以用來處理同一個問題,一般可以互相代替。但一般不提倡用goto型循環。while和do-while循環,循環體中應包括使循環趨于結束的語句。for語句功能最強。用while和do-while循環時,循環變量初始化的操作應在while和do-while語句之前完成,而for語句可以在表達式1中實現循環變量的初始化。根據需要找到合適的循環:循環特性循環種類forwhiledowhile前端測試條件判斷是是否后端測試條件判斷否否是在循環主體中,需要自己更改循環控制變量的值是否否循環重復的次數已知已知已知最少執行循環主體的次數0次0次1次何時重復執行循環條件成立條件成立條件成立練習題一、選擇題1、循環語句for(i=0,j=0;(j!=25)&&(i<3);i++)的循環執行次數是()A.無限循環B.2次C.3次D.4次

2、循環語句for(i=0,j=0;(j!=4)||(i<3);j++,i++)的循環執行次數是()

A.無限循環B.2次C.3次D.4次

3、在與switch語句配套的case語句中所使用的表達式()

A只能是常量

B可以是變量或常量

C只能是常量或常量表達式

D無論是常量還是變量,只要在執行時已經有確定的值就可以了

4、if語句中用來作為判斷條件的表達式是()

A邏輯表達式B關系表達式C算術表達式D以上都是二、 填空題1. 在C語言中,單目運算符的結合方向(運算方向)是____________;唯一的一個三目運算符是____________。2. 能正確表示“當ch為小寫字母為真,否則為假”的表達式是。3. 循環語句for(;;)printf("OK\n");和do{printf("OK\n");}while(0);執行完畢循環,循環次數分別是________________和________________。4. 若有說明inti,j,k;則表達式i=10,j=20,k=30,k*=i+j的值為________________.結構化程序設計的三種基本結構是:選擇結構、循環結構和________________。三、 閱讀程序,寫出程序的運行結果1. 運行結果:_______________intfunc(intn){if(n==0)return0;elseif(n==1)return1;elsereturnn*n+func(n-2);}main(){printf("%5d%5d\n",func(4),func(5));}change(&a,b);printf("a=%d,b=%d\n",a,b);}2. 運行結果:_______________main(){inti=1;while(i<=10)if(++i%2!=0)continue;elseprintf(“%3d”,i);}運行結果:_______________Main(){intj;for(j=4;j>=2;j--)switch(j){case0:printf("%4s","ABC");case1:printf("%4s","DEF");case2:printf("%4s","GHI");breakcase3:printf("%4s","JKL");default:printf("%4s","MNO");}printf("\n");}五、 編程題1、編寫程序實現符號函數,即

1(x>0)

y= 0(x=0) -1(x<0)2、編寫程序輸出100以內的素數。3、編寫一個讀入兩個正整數值a和b,并顯示大于a小于b的所有偶數的程序。1.2.1用goto語句和if語句構成循環,求

010203040506070809101112Voidmain(){inti,sum=0;i=1;loop:if(i<=100){sum=sum+i;

i++;

gotoloop;}printf("%d\n",sum);}代碼貼士本程序中首先聲說了一個main()函數說明,這是寫C程序最基本的步驟。想必在前面的學習中大家已經明白!本程序定義一個Loop,以便后面的Goto進行調用。以此構成一個循環,直到條件不成立即i>100時停止循環。1.2.2嵌套for循環求九九乘法表01020304050607080910111213#include<stdio.h>intmain(void){inti,j;

for(i=1;i<=9;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論